Repository navigation
Release and deploy automatically on every merge to main - #7
Merged
Merged
Conversation
Adopt the org's two-pass push workflow. On a merge commit, push.yaml bumps package.json from the changelog fragment types, builds CHANGELOG.md with towncrier and commits "Update microcosm-runs" with the PolicyEngine GitHub App token. On that commit it runs every check, tags the commit with the bare version, then builds and deploys exactly that commit to Vercel production and checks the public homepage. pr.yaml adds actionlint, a typed changelog fragment check and a "Required checks" aggregate; ci.yml becomes a reusable workflow called by both. vercel.json turns off Vercel's own production deploys from main so production never skips the checks. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
anth-volk
marked this pull request as ready for review
October 14, 2026 19:57
This was referenced Oct 14, 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.
Fixes #9
Stacked on #1. This PR adopts the org's two-pass push workflow, matching
policyengine-coreand PolicyEngine/microcosm-emitter. It must merge into #1's branch before #1 merges. Otherwise Vercel's Git integration deploysmainto production on #1's merge, and the checks don't gate that deploy.Changes
push.yamlruns twice per merge tomain:versioningbumpspackage.jsonfrom the fragment types: a major bump for breaking, a minor bump for added or removed, and a patch bump otherwise. It buildsCHANGELOG.mdwith towncrier and commits "Update microcosm-runs" using the PolicyEngine GitHub App token. That push starts the second run, and the app bypasses themainruleset.verify(all ofci.yml), thentag(bare version, rerun-safe), thendeploy. The deploy job runsvercel pull→vercel build --prod→vercel deploy --prebuilt --prod, then checks the public homepage. Each step waits for the one before, and only one production deploy runs at a time.pr.yaml: actionlint, a typed changelog-fragment check, andci.yml, aggregated intoRequired checks.ci.yml: the existing format, lint, typecheck, test and build steps, now only as a reusable workflow.vercel.json:git.deploymentEnabled.main: false. PR previews still deploy.towncrier.toml(copied from ui-kit),changelog.d/, and a README "Releases" section. The manualvercel --prodinstruction is removed.Credentials and settings
versioning:APP_ID,APP_PRIVATE_KEYpush.yamltag:GITHUB_TOKENcontents: writeon that job onlydeploy:VERCEL_TOKENProductionenvironment (allows onlymain)environment: Production, passed to the deploy step'senvdeploy:VERCEL_ORG_ID,VERCEL_PROJECT_IDenv(not secret; same pattern as calibration-diagnostics)BLOB_STORE_ID,BLOB_READ_WRITE_TOKEN,VERCEL_OIDC_TOKENvercel pull --environment=production; injected at runtime by VercelORRERY_COLLECTOR_ORIGINis unset in production, so the app uses its built-in production collector.MICROCOSM_RUNS_LOCAL_DIRis unset, as production requires.The
mainruleset currently requires a check namedchecks. It needs to change toRequired checksbefore #1 can merge.Validation (local, macOS)
format:check, lint, typecheck,bun test(28 pass) andbun run buildall passed..github/update-version.shproduced 0.2.0 and collected the fragment intoCHANGELOG.md.format:check, andbun install --frozen-lockfilestill passes..github/publish-git-tag.shpushed0.2.0, and a rerun reported it as existing.main.🤖 Generated with Claude Code