Skip to content

fix(ci): reconcile actions.lock so the lockfile validates - #103

Merged
hyperpolymath merged 1 commit into
mainfrom
fix/lockfile-reconcile
Sep 21, 2026
Merged

hyperpolymath merged 1 commit into
mainfrom
fix/lockfile-reconcile

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Workflows fail at creation with The lockfile could not be validated. Regenerate it by running gh actions-lock / Workflow must use a lockfile. This regenerates the manifest with the official extension (github/gh-actions-lock), completes the workflows: map so every workflow file has an entry, and pins the SHA-form transitive deps reached via called reusables. Proof before push: every workflow re-parses, gh actions-lock --verify rc=0, and every uses: ref resolves to a pin.

…s here fail at creation with 'The lockfile could not be validated. Regenerate it by running gh actions-lock' (or 'Workflow must use a lockfile'). This runs the official extension, completes the workflows: map so every onboarded file has an entry (the shape healthy repos carry), and adds the SHA-form transitive pins reached through called reusables. Every workflow re-parses before commit; gh actions-lock --verify is rc=0.
@hyperpolymath
hyperpolymath merged commit cdd4321 into main Sep 21, 2026
2 of 3 checks passed
@hyperpolymath
hyperpolymath deleted the fix/lockfile-reconcile branch September 21, 2026 12:37
hyperpolymath pushed a commit that referenced this pull request Sep 25, 2026
## What

`main` is red — and has been since PR #104 — for a reason unrelated to
any open issue:

| Workflow | Result on `main` | Cause |
|---|---|---|
| CI | `startup_failure` (0 steps) | workflow rejected before any step
runs |
| Publish Image | `startup_failure` (0 steps) | same |
| GitHub Pages | `startup_failure` (0 steps) | same |
| Governance | fail — job `Actions lockfile verify` | authoritative
verifier rejects the lock |
| Workflow Security Linter | fail — `Check actions lockfile coverage` |
refs missing from the lock |

`.github/workflows/actions.lock` is keyed **by workflow path** and
enforced at startup, so a workflow whose refs have drifted is rejected
before a single step executes — exactly the failure mode this repo
documents in `STATE.a2ml` (`actions-lockfile-enforcement`) and in the
`label-triage.yml` header. Dependabot bumped six actions in #104; the
lockfile was not regenerated.

This PR registers the four bumped refs:

| Action | from | to | workflows |
|---|---|---|---|
| `haskell-actions/setup` | v2.12.0 | v2.12.1 | `ci.yml`,
`casket-pages.yml` |
| `github/codeql-action` | v4.38.0 | v4.38.1 | `ci.yml` (upload-sarif) |
| `docker/setup-buildx-action` | v4.3.0 | v4.4.1 | `publish-image.yml` |
| `docker/build-push-action` | v7.3.0 | v7.4.0 | `publish-image.yml` |

Commit SHAs are resolved from the tag objects via the API (annotated
tags dereferenced; docker's tags are lightweight), and the entries
mirror the exact shape of the existing ones.

## Why additive

The previous repair of this same class (#103) was purely additive — it
added the transitive pins and completed the `workflows:` map without
deleting entries. This follows it: nothing is removed, so a verifier
that tolerates extra entries keeps passing, and one that regenerates can
be diffed from the re-run rather than from a guess.

## Evidence (this PR's own runs)

- `CI` — must stop being `startup_failure` and reach a real conclusion.
- `Governance / Actions lockfile verify` — the authoritative verifier
(`gh actions-lock --verify-local` via the standards gate).
- `Workflow Security Linter / Check actions lockfile coverage` — the
coverage check that names each uncovered ref.
- `Publish Image` / `GitHub Pages` — must stop being `startup_failure`
on the merge commit.

Until this lands, no other change in this repository can be validated by
CI at all, which is why it goes first and alone.

Co-authored-by: Arena Agent <agent@arena.ai>
Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant