Repository navigation
ci(web): release sdp-web production with each prod API deploy - #2164
Merged
Merged
Conversation
Contributor
|
multipletwigs
marked this pull request as draft
September 30, 2026 16:23
Release commits, web-only merges behind a held API merge, and a disabled continuous prod deploy all passed the gate before the API was live. The shared step now releases only main's head, and only when it has no API changes past the commit production just deployed; web-only merges inherit their parent's gate, and the release flow releases after its API deploy.
multipletwigs
marked this pull request as ready for review
October 5, 2026 09:09
Contributor
|
React Doctor found 3 new issues in 2 files · 3 warnings · score 75 / 100 (Needs work) · 25 fixed · vs 3 warnings
Reviewed by React Doctor for commit |
Migrations ship as standalone pull requests, so an API merge is never held on them; the remaining lead of web over the API deploy is minutes. Drop the production gate workflow, its callers, and its tests.
Vercel holds every main commit's production web build on the sdp-web production gate Deployment Check. The prod API deploy posts that status for its commit with GITHUB_TOKEN once traffic is on it, so web and API go live from the same commit, API first, with no Vercel token. Web-only changes now run the same pipeline.
…one prod path release-web inherited success() over the skipped smoke job, so it never ran; it now checks deploy directly, posts only on a run's first attempt, and retries the post. Release commits and docs-only merges deploy through deploy.yml like any push, and release-please no longer deploys prod. The runbook pauses web before an API rollback and documents held builds.
…ploy Release commits now deploy through the merge path, whose 30-minute wait was shorter than release-images.yml's 60-minute publish timeout. Match the release path's 65-minute wait.
…op the release path release-web now compares the revision /health/ready reports against the one this run promoted instead of refusing reruns, so a rerun after a flaky smoke still releases web and a superseded commit never does. The deploy result in Slack reports web-held when the API is live but web was not released. With release-please no longer deploying, the release_sha path, its smoke job, and the release-identity script are removed.
G1de0n
approved these changes
Oct 6, 2026
This branch was successfully 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.
sdp-web production ships from the same commit as the production API, seconds after that API serves traffic, with no Vercel token.
flowchart LR M["push X"] --> W["Vercel: web X built, held"] M --> S["stage API X + smoke"] --> G{"pending migrations?"} G -- yes --> A["approval run"] --> P G -- no --> P["prod API X live"] P --> R["release-web: gate status = success"] --> V["Vercel promotes web X"] W -.-> VGoal: sdp-api stays backwards compatible with production web, because the API always goes live first.
apps/sdp-web/vercel.json; Vercel holds each build on thesdp-web production gateDeployment Checkrelease-webindeploy-sdp-api-gcp-prod.ymlposts it withGITHUB_TOKENafter a merge or approved-migration deploy, only while/health/readystill reports that run's revision; otherwise Slack saysweb heldBefore merge (Vercel Owner/project admin): add the Deployment Check, then confirm a build held past 10 minutes still promotes.
Verification: workflow contract tests 35/35; actionlint clean. Not run: a live Vercel hold.