@@ -32,49 +32,17 @@ permissions:
3232 contents : read
3333
3434jobs :
35- # A release lands on main as a merge whose tree is identical to the staging head it merges, and
36- # that staging push already ran the checks on exactly this code. When a staging run of the merged
37- # parent passed `checks / ci`, main skips its own checks and the deploy chain gates on this proof
38- # instead. Any other shape, any error, or no green staging run falls back to the full checks.
39- proof :
40- name : proof
41- if : github.event_name == 'push' && github.ref == 'refs/heads/main'
42- runs-on : &runner-2vcpu ${{ (vars.CI_PROVIDER == '' || vars.CI_PROVIDER == 'blacksmith') && 'blacksmith-2vcpu-ubuntu-2404' || 'ubuntu-latest' }}
43- # Waits for a staging run still in progress for at most 40 minutes.
44- timeout-minutes : 45
45- permissions :
46- contents : read
47- actions : read
48- outputs :
49- proven : ${{ steps.proof.outputs.proven }}
50- steps :
51- - name : Checkout code
52- uses : actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v6
53- with :
54- fetch-depth : 2
55- persist-credentials : false
56-
57- - name : Look for a green staging run of this tree
58- id : proof
59- env :
60- GH_TOKEN : ${{ github.token }}
61- run : bash .github/scripts/staging-proof.sh >> "$GITHUB_OUTPUT"
62-
6335 checks :
6436 name : checks
65- needs : [proof]
66- if : >-
67- !cancelled() &&
68- (github.ref != 'refs/heads/dev' || github.event_name == 'pull_request') &&
69- needs.proof.outputs.proven != 'true'
37+ if : github.ref != 'refs/heads/dev' || github.event_name == 'pull_request'
7038 uses : ./.github/workflows/checks.yml
7139
7240 # Detect if this is a version release commit (e.g., "v0.5.24: ...")
7341 # Smallest runner on purpose: a few seconds of pure shell over the commit
7442 # message, no checkout and no install.
7543 version :
7644 name : version
77- runs-on : * runner-2vcpu
45+ runs-on : & runner-2vcpu ${{ (vars.CI_PROVIDER == '' || vars.CI_PROVIDER == 'blacksmith') && 'blacksmith-2vcpu-ubuntu-2404' || 'ubuntu-latest' }}
7846 timeout-minutes : 5
7947 if : github.event_name == 'push' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/staging' || github.ref == 'refs/heads/dev')
8048 outputs :
@@ -146,14 +114,14 @@ jobs:
146114 # migration sidecar)
147115 migrate :
148116 name : migrate
149- needs : [proof, checks]
117+ needs : [checks]
150118 # Explicit need results instead of the implicit success(): a skipped job
151119 # anywhere in the transitive needs chain silently fails implicit success()
152120 # and cascade-skips the deploy chain (migrate -> promote ->
153121 # CodeDeploy) — this bit us on 2026-07-23. State requirements explicitly.
154122 if : >-
155123 !cancelled() &&
156- ( needs.checks.result == 'success' || needs.proof.outputs.proven == 'true') &&
124+ needs.checks.result == 'success' &&
157125 github.event_name == 'push' &&
158126 (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/staging')
159127 uses : ./.github/workflows/migrate.yml
0 commit comments