Repository navigation
[No QA] Require the staging Cloudflare Worker deploy and verify staging there - #104394
Merged
Merged
Conversation
Once staging.new.expensify.com is routed to the staging Worker, the S3 job's version check would race the Worker deploy, and a failed Worker deploy would leave the old build live without failing the staging deploy. The staging Worker now deploys in its own job after the S3 upload, verifies the staging host, and counts towards the web deploy result. test-staging stays an optional trial job, and the S3 job only verifies production.
justinpersaud
requested review from
a team,
AndrewGable and
roryabraham
as code owners
October 19, 2026 18:59
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
AndrewGable
approved these changes
Oct 19, 2026
roryabraham
approved these changes
Oct 19, 2026
Contributor
|
🚧 justinpersaud has triggered a test Expensify/App build. You can view the workflow run here. |
Contributor
|
🧪🧪 Use the links below to test this adhoc build on Android, iOS, and Web. Happy testing! 🧪🧪
|
Contributor
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
OSBotify
pushed a commit
that referenced
this pull request
Oct 19, 2026
…rker-deploy [No QA] Require the staging Cloudflare Worker deploy and verify staging there (cherry picked from commit b9039c7) (cherry-picked to staging by AndrewGable)
47 of 72 tasks
Contributor
|
🚀 Cherry-picked to staging by https://github.com/AndrewGable in version: 9.5.14-1 🚀
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Explanation of Change
Prepares the staging deploy for
staging.new.expensify.combeing served by the staging Cloudflare Worker instead of S3. The route switch itself happens later in the Cloudflare dashboard; this PR works before and after it.webDeployStagingWorker, which runs after the S3 upload and has nocontinue-on-error. If the deploy fails, the staging deploy fails instead of silently leaving the old build live.verifyDeploy.shagainstWEB_STAGING_HOST. The S3 job now only verifies production: after the switch, its check of the staging host would race the Worker deploy. Until the switch, the Worker job's check still reads the S3 copy, which is already in place because the job runs after the S3 upload.checkDeploymentSuccessreports a staging web failure if the Worker deploy didn't succeed, and the failure and cancellation Slack jobs include it. Production is unchanged.webDeployTestStaging,continue-on-error).Fixed Issues
For https://github.com/Expensify/Expensify/issues/688126
PROPOSAL:
Tests
.github/workflows/deploy.ymland verify it reports nothing new compared withmain.WEB_RESULTlogic incheckDeploymentSuccessfor each case and verify: staging with S3 and Worker both succeeding issuccess; a failed Worker or failed S3 deploy isfailure; a cancelled Worker deploy iscancelled; production ignores the skipped Worker job.Deploy Web to the staging Cloudflare Workerruns afterDeploy Web to S3, uploads to the previous builds bucket, deploys, and passesVerify deployagainststaging.new.expensify.com.Deploy Web to S3skipsVerify deployon staging, and still runs it on the next production deploy.Offline tests
N/A. Deploy pipeline only.
QA Steps
// TODO: These must be filled out, or the issue title must include "[No QA]."
No QA. Deploy pipeline only; how staging and production are served doesn't change.
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectionAvatar, I verified the components usingAvatarare working as expected)npm run compress-svg)Avataris modified, I verified thatAvataris working as expected in all cases)Designlabel and/or tagged@Expensify/designso the design team can review the changes.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.Screenshots/Videos
Android: Native
Android: mWeb Chrome
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari