Skip to content

Commit 5eefde8

Browse files
fix(ci): the lockfile regenerator must merge, not rebuild
Merging #242 took the Pages deploy on `main` down: `casket-pages` concluded `failure` in **Set up job**, with one annotation — lockfile missing pin for actions/upload-artifact@bbbca2d Same workflow, same pins, same commit as before: the only thing that changed was `actions.lock`. `pin-workflow-uses.py` rebuilt the `dependencies:` section from the `uses:` lines it could see, so it deleted (a) the action that `actions/upload-pages-artifact` resolves for itself at run time and (b) every tag-keyed alias block `gh actions-lock` had written. GitHub validates the lockfile at job setup, so the workflow died before its first step and the message named an action no file of ours mentions. Regeneration now MERGES into the committed `dependencies:` blocks: existing entries are preserved verbatim (their `ref`, `commit`, `owner_id`, `repo_id` and `uses:` lists), and only missing keys are added, inheriting identity from the blocks already there. `--check` is idempotent over the merged form, so CI detects drift without being the thing that destroys the file. The blocks the earlier regeneration removed are restored. Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
1 parent f773804 commit 5eefde8

3 files changed

Lines changed: 241 additions & 54 deletions

File tree

‎.github/workflows/actions.lock‎

Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,73 +107,219 @@ dependencies:
107107
commit: 'sha1-55cc8345863c7cc4c66a329aec7e433d2d1c52a9'
108108
owner_id: 44036562
109109
repo_id: 215566462
110+
'actions/cache@v6.1.0':
111+
ref: 'v6.1.0'
112+
commit: 'sha1-55cc8345863c7cc4c66a329aec7e433d2d1c52a9'
113+
owner_id: 44036562
114+
repo_id: 215566462
110115
'actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1':
111116
ref: 'v7.0.1'
112117
commit: 'sha1-3d3c42e5aac5ba805825da76410c181273ba90b1'
113118
owner_id: 44036562
114119
repo_id: 197814629
120+
'actions/checkout@v7.0.1':
121+
ref: 'v7.0.1'
122+
commit: 'sha1-3d3c42e5aac5ba805825da76410c181273ba90b1'
123+
owner_id: 44036562
124+
repo_id: 197814629
115125
'actions/configure-pages@45bfe0192ca1faeb007ade9deae92b16b8254a0d':
116126
ref: 'v6.0.0'
117127
commit: 'sha1-45bfe0192ca1faeb007ade9deae92b16b8254a0d'
118128
owner_id: 44036562
119129
repo_id: 513659658
130+
'actions/configure-pages@v6.0.0':
131+
ref: 'v6.0.0'
132+
commit: 'sha1-45bfe0192ca1faeb007ade9deae92b16b8254a0d'
133+
owner_id: 44036562
134+
repo_id: 513659658
120135
'actions/dependency-review-action@a1d282b36b6f3519aa1f3fc636f609c47dddb294':
121136
ref: 'v5.0.0'
122137
commit: 'sha1-a1d282b36b6f3519aa1f3fc636f609c47dddb294'
123138
owner_id: 44036562
124139
repo_id: 476372928
140+
'actions/dependency-review-action@v5.0.0':
141+
ref: 'v5.0.0'
142+
commit: 'sha1-a1d282b36b6f3519aa1f3fc636f609c47dddb294'
143+
owner_id: 44036562
144+
repo_id: 476372928
125145
'actions/deploy-pages@368f82528645a54fb793d4d04e342629a3f51346':
126146
ref: 'v5.0.1'
127147
commit: 'sha1-368f82528645a54fb793d4d04e342629a3f51346'
128148
owner_id: 44036562
129149
repo_id: 438112499
150+
'actions/deploy-pages@v5.0.1':
151+
ref: 'v5.0.1'
152+
commit: 'sha1-368f82528645a54fb793d4d04e342629a3f51346'
153+
owner_id: 44036562
154+
repo_id: 438112499
130155
'actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333':
131156
ref: 'v8.0.2'
132157
commit: 'sha1-9000827ccba6bdab643e8b6fd33ac0654aef8333'
133158
owner_id: 44036562
134159
repo_id: 192626254
160+
'actions/download-artifact@v8.0.2':
161+
ref: 'v8.0.2'
162+
commit: 'sha1-9000827ccba6bdab643e8b6fd33ac0654aef8333'
163+
owner_id: 44036562
164+
repo_id: 192626254
165+
'actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f':
166+
ref: 'v7.0.0'
167+
commit: 'sha1-bbbca2ddaa5d8feaa63e36b76fdaad77386f024f'
168+
owner_id: 44036562
169+
repo_id: 192625955
135170
'actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9':
136171
ref: 'v7.0.2'
137172
commit: 'sha1-cf430e030ddbb5b0abf93d22962f4752f3646cd9'
138173
owner_id: 44036562
139174
repo_id: 192625955
175+
'actions/upload-artifact@v7.0.2':
176+
ref: 'v7.0.2'
177+
commit: 'sha1-cf430e030ddbb5b0abf93d22962f4752f3646cd9'
178+
owner_id: 44036562
179+
repo_id: 192625955
140180
'actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9':
141181
ref: 'v5.0.0'
142182
commit: 'sha1-fc324d3547104276b827a68afc52ff2a11cc49c9'
143183
owner_id: 44036562
144184
repo_id: 496012378
185+
'actions/upload-pages-artifact@v5.0.0':
186+
ref: 'v5.0.0'
187+
commit: 'sha1-fc324d3547104276b827a68afc52ff2a11cc49c9'
188+
owner_id: 44036562
189+
repo_id: 496012378
190+
uses:
191+
- 'actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f'
192+
'denoland/setup-deno@22d081ff2d3a40755e97629de92e3bcbfa7cf2ed':
193+
ref: 'v2.0.5'
194+
commit: 'sha1-22d081ff2d3a40755e97629de92e3bcbfa7cf2ed'
195+
owner_id: 42048915
196+
repo_id: 356423100
145197
'dtolnay/rust-toolchain@683b588c487a69d01f6c6ddf40f036ff682cc2c8':
146198
ref: 'v1'
147199
commit: 'sha1-683b588c487a69d01f6c6ddf40f036ff682cc2c8'
148200
owner_id: 1940490
149201
repo_id: 260749683
202+
'dtolnay/rust-toolchain@v1':
203+
ref: 'v1'
204+
commit: 'sha1-683b588c487a69d01f6c6ddf40f036ff682cc2c8'
205+
owner_id: 1940490
206+
repo_id: 260749683
207+
'editorconfig-checker/action-editorconfig-checker@51f63319f592f97930c73d9c46184d20bd206393':
208+
ref: 'v3.0.0'
209+
commit: 'sha1-51f63319f592f97930c73d9c46184d20bd206393'
210+
owner_id: 26415196
211+
repo_id: 297874902
212+
'erlef/setup-beam@54075bcc5e249e4758d363f27d099f55d843f124':
213+
ref: 'v1.24.1'
214+
commit: 'sha1-54075bcc5e249e4758d363f27d099f55d843f124'
215+
owner_id: 47606891
216+
repo_id: 331103973
150217
'github/codeql-action@6f2ac81f5cd81fe351a197ba0b00d91d03cd2aee':
151218
ref: 'v4.39.0'
152219
commit: 'sha1-6f2ac81f5cd81fe351a197ba0b00d91d03cd2aee'
153220
owner_id: 9919
154221
repo_id: 259445878
222+
'github/codeql-action@b96794f015dfd88f77b49b1c93e0fa7110f94c63':
223+
ref: 'v4.38.0'
224+
commit: 'sha1-b96794f015dfd88f77b49b1c93e0fa7110f94c63'
225+
owner_id: 9919
226+
repo_id: 259445878
227+
'github/codeql-action@v4.39.0':
228+
ref: 'v4.39.0'
229+
commit: 'sha1-6f2ac81f5cd81fe351a197ba0b00d91d03cd2aee'
230+
owner_id: 9919
231+
repo_id: 259445878
232+
'goto-bus-stop/setup-zig@abea47f85e598557f500fa1fd2ab7464fcb39406':
233+
ref: 'v2.2.1'
234+
commit: 'sha1-abea47f85e598557f500fa1fd2ab7464fcb39406'
235+
owner_id: 1006268
236+
repo_id: 212984112
155237
'haskell-actions/setup@0f8e8c99d88aeb3fbfd523f1ef2c6f762d10d64d':
156238
ref: 'v2.12.1'
157239
commit: 'sha1-0f8e8c99d88aeb3fbfd523f1ef2c6f762d10d64d'
158240
owner_id: 75048950
159241
repo_id: 623796603
242+
'haskell-actions/setup@v2.12.1':
243+
ref: 'v2.12.1'
244+
commit: 'sha1-0f8e8c99d88aeb3fbfd523f1ef2c6f762d10d64d'
245+
owner_id: 75048950
246+
repo_id: 623796603
160247
'hyperpolymath/smtp-notify-action@c1c9fa07992a02c1fd3d67a0dc1b08cccb852aef':
161248
ref: 'v0.5.0'
162249
commit: 'sha1-c1c9fa07992a02c1fd3d67a0dc1b08cccb852aef'
163250
owner_id: 6759885
164251
repo_id: 1352485172
252+
'hyperpolymath/smtp-notify-action@v0.5.0':
253+
ref: 'v0.5.0'
254+
commit: 'sha1-c1c9fa07992a02c1fd3d67a0dc1b08cccb852aef'
255+
owner_id: 6759885
256+
repo_id: 1352485172
257+
'hyperpolymath/standards@333b06a01db1874ffedb2de1bfabb195640927c7':
258+
ref: '333b06a01db1874ffedb2de1bfabb195640927c7'
259+
commit: 'sha1-333b06a01db1874ffedb2de1bfabb195640927c7'
260+
owner_id: 6759885
261+
repo_id: 1116521501
262+
uses:
263+
- 'actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9'
264+
- 'actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1'
265+
- 'actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9'
266+
- 'denoland/setup-deno@22d081ff2d3a40755e97629de92e3bcbfa7cf2ed'
267+
- 'dtolnay/rust-toolchain@683b588c487a69d01f6c6ddf40f036ff682cc2c8'
268+
- 'editorconfig-checker/action-editorconfig-checker@51f63319f592f97930c73d9c46184d20bd206393'
269+
- 'erlef/setup-beam@54075bcc5e249e4758d363f27d099f55d843f124'
270+
- 'github/codeql-action@b96794f015dfd88f77b49b1c93e0fa7110f94c63'
271+
- 'goto-bus-stop/setup-zig@abea47f85e598557f500fa1fd2ab7464fcb39406'
272+
- 'ossf/scorecard-action@fa7117db83c52d787ae5a89f350999701505d78e'
273+
- 'oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6'
274+
- 'swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6'
275+
- 'webfactory/ssh-agent@e83874834305fe9a4a2997156cb26c5de65a8555'
276+
'ossf/scorecard-action@fa7117db83c52d787ae5a89f350999701505d78e':
277+
ref: 'v2.5.0'
278+
commit: 'sha1-fa7117db83c52d787ae5a89f350999701505d78e'
279+
owner_id: 67707773
280+
repo_id: 421101922
281+
'oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6':
282+
ref: 'v2.2.0'
283+
commit: 'sha1-0c5077e51419868618aeaa5fe8019c62421857d6'
284+
owner_id: 108928776
285+
repo_id: 512644635
165286
'peter-evans/repository-dispatch@28959ce8df70de7be546dd1250a005dd32156697':
166287
ref: 'v4.0.1'
167288
commit: 'sha1-28959ce8df70de7be546dd1250a005dd32156697'
168289
owner_id: 18365890
169290
repo_id: 220359305
291+
'peter-evans/repository-dispatch@v4.0.1':
292+
ref: 'v4.0.1'
293+
commit: 'sha1-28959ce8df70de7be546dd1250a005dd32156697'
294+
owner_id: 18365890
295+
repo_id: 220359305
170296
'softprops/action-gh-release@efb35369e0ad2afab669f228072c1b0d510eae64':
171297
ref: 'v3.0.3'
172298
commit: 'sha1-efb35369e0ad2afab669f228072c1b0d510eae64'
173299
owner_id: 2242
174300
repo_id: 204253808
301+
'softprops/action-gh-release@v3.0.3':
302+
ref: 'v3.0.3'
303+
commit: 'sha1-efb35369e0ad2afab669f228072c1b0d510eae64'
304+
owner_id: 2242
305+
repo_id: 204253808
306+
'swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6':
307+
ref: 'v2.9.2'
308+
commit: 'sha1-6323deb102c322ba6fcbdcafc7e3dddab59af2b6'
309+
owner_id: 580492
310+
repo_id: 298565987
175311
'swatinem/rust-cache@d1527c8f67ef9af357290475d4af4b0fab8f12e0':
176312
ref: 'v2.9.3'
177313
commit: 'sha1-d1527c8f67ef9af357290475d4af4b0fab8f12e0'
178314
owner_id: 580492
179315
repo_id: 298565987
316+
'swatinem/rust-cache@v2.9.3':
317+
ref: 'v2.9.3'
318+
commit: 'sha1-d1527c8f67ef9af357290475d4af4b0fab8f12e0'
319+
owner_id: 580492
320+
repo_id: 298565987
321+
'webfactory/ssh-agent@e83874834305fe9a4a2997156cb26c5de65a8555':
322+
ref: 'v0.10.0'
323+
commit: 'sha1-e83874834305fe9a4a2997156cb26c5de65a8555'
324+
owner_id: 135788
325+
repo_id: 208510314

‎docs/CI-CD.adoc‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,16 @@ python3 scripts/ci/pin-workflow-uses.py --map .github/workflows/action-pins.json
151151
on the day it was taken, so a reviewer can tell an intentional bump from a
152152
silent re-point.
153153

154+
One hard-won rule about `actions.lock`: it is a **superset** of what `grep
155+
uses:` finds. `gh actions-lock` also records actions that composite actions
156+
resolve internally — `actions/upload-pages-artifact` runs
157+
`actions/upload-artifact@bbbca2dd…` itself — and GitHub validates the lockfile
158+
at *job setup*. A regenerator that rebuilds the file from the workflows deletes
159+
those entries, and the only symptom is `lockfile missing pin for …` in a job
160+
that never runs a step. `scripts/ci/pin-workflow-uses.py` therefore MERGES its
161+
`dependencies:` section instead of rebuilding it, and `--check` (which CI runs)
162+
is idempotent over the merged form.
163+
154164
== Testing: evidence-graded, not declared
155165

156166
`proven/ledger.json` grades this repository's suite on

0 commit comments

Comments
 (0)