name: Build & deploy sandbox on: push: branches: [ "develop" ] permissions: contents: read jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: '8.3' - name: Check if composer.json exists id: check_files uses: andstor/file-existence-action@v1 with: files: 'composer.json' - name: Run composer install if composer.json exists if: steps.check_files.outputs.files_exists == 'true' run: composer validate --no-check-publish && composer install --prefer-dist --no-progress - name: Set up Node.js version uses: actions/setup-node@v3 with: node-version: '20.x' - name: npm install run: | npm install - name: Make envfile uses: SpicyPizza/create-envfile@v2.0 with: envkey_DBURL: ${{ secrets.SANDBOX_DBURL }} envkey_DBNAME: ${{ secrets.SANDBOX_DBNAME }} envkey_DBUSER: ${{ secrets.SANDBOX_DBUSER }} envkey_DBPASSWORD: ${{ secrets.SANDBOX_DBPASSWORD }} envkey_DBPREFIX: "sandbox_" envkey_BLOB_URL: "https://stockagehelloassoprod.blob.core.windows.net" envkey_BLOB_CONNECTION_STRING: ${{ secrets.SANDBOX_BLOB_CONNECTION_STRING }} envkey_HA_URL: "https://www.helloasso-sandbox.com" envkey_HA_IPS: ${{ vars.SANDBOX_HA_IPS }} envkey_HA_AUTH_URL: "https://auth.helloasso-sandbox.com" envkey_API_AUTH_URL: "https://api.helloasso-sandbox.com/oauth2/token" envkey_API_URL: "https://api.helloasso-sandbox.com/v5" envkey_CLIENT_ID: ${{ secrets.SANDBOX_CLIENT_ID }} envkey_CLIENT_SECRET: ${{ secrets.SANDBOX_CLIENT_SECRET }} envkey_ENCRYPTION_KEY: ${{ secrets.SANDBOX_ENCRYPTION_KEY }} envkey_WEBSITE_DOMAIN: ${{ vars.SANDBOX_WEBSITE_DOMAIN }} envkey_MANDRILL_API: ${{ secrets.SANDBOX_MANDRILL_API }} file_name: .env - name: Tar run : | tar czvf artifact.tar.gz migrations public src vendor .env - name: Upload run : | sshpass -p ${{ secrets.SANDBOX_SSH_PASSWORD }} scp -o StrictHostKeyChecking=no artifact.tar.gz ${{ secrets.SANDBOX_SSH_USER }}@${{ secrets.SANDBOX_SSH_HOST }}:/home/socialgo/www - name: Extract run : | sshpass -p ${{ secrets.SANDBOX_SSH_PASSWORD }} ssh -o StrictHostKeyChecking=no ${{ secrets.SANDBOX_SSH_USER }}@${{ secrets.SANDBOX_SSH_HOST }} "cd /home/socialgo/www && tar xzvf artifact.tar.gz && rm artifact.tar.gz && sudo cp -r artifact/* twitch-widget-sandbox/ && sudo rm -R artifact"