diff --git a/.github/scripts/verifyDeploy.sh b/.github/scripts/verifyDeploy.sh index 0a8fd3c97bcf9..59f188d14d367 100755 --- a/.github/scripts/verifyDeploy.sh +++ b/.github/scripts/verifyDeploy.sh @@ -1,15 +1,8 @@ #!/bin/bash -ENV="$1" +URL="$1" EXPECTED_VERSION="$2" -BASE_URL="" -if [[ "$ENV" == 'staging' ]]; then - BASE_URL='https://staging.new.expensify.com' -else - BASE_URL='https://new.expensify.com' -fi - sleep 5 ATTEMPT=0 MAX_ATTEMPTS=10 @@ -17,7 +10,7 @@ while [[ $ATTEMPT -lt $MAX_ATTEMPTS ]]; do ((ATTEMPT++)) echo "Attempt $ATTEMPT: Checking deployed version..." - DOWNLOADED_VERSION="$(wget -q -O /dev/stdout "$BASE_URL"/version.json | jq -r '.version')" + DOWNLOADED_VERSION="$(wget -q -O /dev/stdout "$URL"/version.json | jq -r '.version')" if [[ "$EXPECTED_VERSION" == "$DOWNLOADED_VERSION" ]]; then echo "Success: Deployed version matches local version: $DOWNLOADED_VERSION" diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index eee7160ff44e1..eae6703a2601e 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -268,12 +268,7 @@ jobs: DESKTOP_CERTIFICATE_PASSWORD: "op://${{ vars.OP_VAULT }}/Desktop Certificates.p12/CSC_KEY_PASSWORD" - name: Build desktop app - run: | - if [[ ${{ env.SHOULD_DEPLOY_PRODUCTION }} == 'true' ]]; then - npm run desktop-build - else - npm run desktop-build-staging - fi + run: ${{ env.SHOULD_DEPLOY_PRODUCTION == 'true' && 'npm run desktop-build' || 'npm run desktop-build-staging' }} env: CSC_LINK: ${{ steps.load-credentials.outputs.DESKTOP_CERTIFICATE_BASE64 }} CSC_KEY_PASSWORD: ${{ steps.load-credentials.outputs.DESKTOP_CERTIFICATE_PASSWORD }} @@ -283,6 +278,7 @@ jobs: AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} GCP_GEOLOCATION_API_KEY: ${{ secrets.GCP_GEOLOCATION_API_KEY_PRODUCTION }} + S3_BUCKET: ${{ env.SHOULD_DEPLOY_PRODUCTION == 'true' && vars.PRODUCTION_S3_BUCKET || vars.STAGING_S3_BUCKET }} - name: Upload desktop sourcemaps artifact # v4 @@ -504,20 +500,22 @@ jobs: aws s3 cp --acl public-read --content-type 'application/json' --metadata-directive REPLACE ${{ env.S3_URL }}/.well-known/apple-app-site-association ${{ env.S3_URL }}/.well-known/apple-app-site-association aws s3 cp --acl public-read --content-type 'application/json' --metadata-directive REPLACE ${{ env.S3_URL }}/.well-known/apple-app-site-association ${{env.S3_URL }}/apple-app-site-association env: - S3_URL: s3://${{ env.SHOULD_DEPLOY_PRODUCTION != 'true' && 'staging-' || '' }}expensify-cash + S3_URL: s3://${{ env.SHOULD_DEPLOY_PRODUCTION != 'true' && 'staging-' || '' }}${{ vars.PRODUCTION_S3_BUCKET }} - name: Purge Cloudflare cache - run: /home/runner/.local/bin/cli4 --verbose --delete hosts=["${{ env.SHOULD_DEPLOY_PRODUCTION != 'true' && 'staging.' || '' }}new.expensify.com"] /zones/:9ee042e6cfc7fd45e74aa7d2f78d617b/purge_cache + run: | + /home/runner/.local/bin/cli4 --verbose --delete hosts=["$HOST"] /zones/:9ee042e6cfc7fd45e74aa7d2f78d617b/purge_cache env: CF_API_KEY: ${{ secrets.CLOUDFLARE_TOKEN }} + SHOULD_DEPLOY_PRODUCTION: ${{ env.SHOULD_DEPLOY_PRODUCTION }} + HOST: ${{ env.SHOULD_DEPLOY_PRODUCTION == 'true' && vars.WEB_PRODUCTION_HOST || vars.WEB_STAGING_HOST }} - - name: Verify staging deploy - if: ${{ !fromJSON(env.SHOULD_DEPLOY_PRODUCTION) }} - run: ./.github/scripts/verifyDeploy.sh staging ${{ needs.prep.outputs.APP_VERSION }} - - - name: Verify production deploy - if: ${{ fromJSON(env.SHOULD_DEPLOY_PRODUCTION) }} - run: ./.github/scripts/verifyDeploy.sh production ${{ needs.prep.outputs.APP_VERSION }} + - name: Verify deploy + run: | + ./.github/scripts/verifyDeploy.sh "$HOST" "${{ needs.prep.outputs.APP_VERSION }}" + env: + SHOULD_DEPLOY_PRODUCTION: ${{ env.SHOULD_DEPLOY_PRODUCTION }} + HOST: ${{ env.SHOULD_DEPLOY_PRODUCTION == 'true' && vars.WEB_PRODUCTION_HOST || vars.WEB_STAGING_HOST }} - name: Upload web sourcemaps artifact # v4 diff --git a/config/electronBuilder.config.js b/config/electronBuilder.config.js index 5bfa9b75c463e..130db8c647896 100644 --- a/config/electronBuilder.config.js +++ b/config/electronBuilder.config.js @@ -3,9 +3,9 @@ const {version} = require('../package.json'); const pullRequestNumber = process.env.PULL_REQUEST_NUMBER; const s3Bucket = { - production: 'expensify-cash', - staging: 'staging-expensify-cash', - adhoc: 'ad-hoc-expensify-cash', + production: process.env.S3_BUCKET || 'expensify-cash', + staging: process.env.S3_BUCKET || 'staging-expensify-cash', + adhoc: process.env.S3_BUCKET || 'ad-hoc-expensify-cash', }; const s3Path = {