Repository navigation
Conversation
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. |
This branch has not been deployed
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.
Details
Implement the Bedrock CI/release/image portion of the independent Authrock/Webrock QA cutover.
Companion BackupManager PR: https://github.com/Expensify/ExpensifyBackupManager/pull/188
.github/workflows/bedrock.yml) torelease: published. This covers stable releases and prereleases, including draft-to-published prereleases, without subscribing to both publication events.bedrockto the event's exact release tag and explicitly pass its prerelease flag. The pinnedsoftprops/action-gh-releaseversion supports both inputs. Grant the uploadercontents: write.publish-expensidev-bedrock-image.yml: production pushes publish only the matching role, with the exact pushed Bedrock SHA. Manual runs rebuild both roles from their mapped production refs. QA pushes cannot trigger production-image publication.expensify_prodproductionproductionexpensify_prod_webrockproduction-webrockproductionBoth images use Expensidev
mainfor their Dockerfiles and publish amd64/arm64 images plus the matching multi-architecturelatestmanifest.Cutover sequencing: create/protect the deployment branches manually; land additive dependencies first; merge these repository CI changes into
mainduring the C++ deploy freeze before the finalmain→qa-authrock/qa-webrockpromotion PRs. Synchronizeexpensify_prod_webrockfrom the currentexpensify_prodthrough a protected PR, then activate the coordinated Ops/Salt mappings and Webrock Jenkins switches. The first production-first cycle promotes each cluster's QA candidate to production; only after production completes does that cluster advance QA frommain.Outstanding rollout prerequisite: confirm Bedrock can use an organization-provided
MELVIN_GH_TOKENorCODE_EXPENSIFY_TOKENwith private dependency checkout and GHCR publishing access. Repository-level secret listing returned no entries; the Actions permissions endpoint returned 403, so inherited organization access could not be established. This PR uses the same token fallback as the existing role-image publishers.Fixed Issues
For https://github.com/Expensify/Expensify/issues/639785
Tests
AI Tests
Verified on 2026-10-06 at head
b551fc8d569f23c629c2bd778221d140295030e6(base5ee6fc6b8b8e2659e21b6283a71213a957b20f3a). GitHub PR checks tested the synthetic merge0f6b51ec56d5cd94cd852e4b362d62491efdba0a.git diff --check origin/main...HEAD.Manual rollout blockers and checks
Read-only prerequisite checks on 2026-10-06 confirmed that Bedrock
expensify_prod_webrockand BackupManagerproduction-webrockdo not exist. The mapped Authrock refs and the other pluginproductionrefs exist. Token access remains unverified as described above; an empty repository secret list does not establish whether organization secrets are inherited.bedrockto the same tag, and leaves the release a prerelease without changing the latest stable release.bedrock.ymland the exact tag. The routing portion passed static checks; the end-to-end rollout remains manual.No deployment branches/protections, secrets, promotions, deployments, live images, releases, or PR merges were changed during verification. No production-image workflow was dispatched and no shared VM/services were modified.
Internal Testing Reminder: when changing bedrock, please compile auth against your new changes