ci: replace raven-actions/actionlint with Docker container action#1
Merged
derekmisler merged 2 commits intoJun 16, 2026
Merged
Conversation
raven-actions/actionlint internally runs npm install, which conflicts with pnpm's node_modules layout on cold caches. Replace with a Docker container step using the official rhysd/actionlint image pinned by its multi-arch digest (supports amd64 + arm64 runners). No curl, no tar, no checksum file needed — the digest pins the exact image. -shellcheck= disables shellcheck integration, matching the previous shellcheck: false behaviour. Image: rhysd/actionlint:1.7.12 Digest: sha256:b1934ee5f1c509618f2508e6eb47ee0d3520686341fec936f3b79331f9315667
|
You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool. What Enabling Code Scanning Means:
For more information about GitHub Code Scanning, check out the documentation. |
derekmisler
marked this pull request as ready for review
June 15, 2026 19:00
derekmisler
enabled auto-merge (squash)
June 15, 2026 19:03
docker-agent
left a comment
Contributor
There was a problem hiding this comment.
Assessment: 🟢 APPROVE
This PR cleanly replaces the raven-actions/actionlint composite action wrapper with a direct Docker container step using the official rhysd/actionlint:1.7.12 image.
All hypotheses verified as non-issues:
- ✅
docker://image:tag@sha256:digestformat — Valid Docker canonical reference syntax; GitHub Actions runner strips thedocker://prefix and passes the remainder directly to Docker, which supports this combined form. The digest pins the image while the tag serves as a human-readable hint. - ✅ SHA-256 digest length — The digest
b1934ee5f1c509618f2508e6eb47ee0d3520686341fec936f3b79331f9315667is exactly 64 hex characters (confirmed by direct measurement). - ✅
with: args:forwarding — For inlinedocker://steps (no companionaction.yml), the GitHub Actions runner source (ContainerActionHandler.cs) falls through toInputs.GetValueOrDefault("args"), correctly forwarding-shellcheck= -colorto the container entrypoint. - ✅
-shellcheck=flag — Confirmed valid: actionlint's-shellcheck stringflag accepts an empty string to disable shellcheck integration. - ✅
-colorflag in CI — Valid flag that forces ANSI color output; GitHub Actions workflow logs render ANSI codes as colored text. - ✅ Failure propagation — actionlint exits non-zero on lint errors by default; GitHub Actions propagates container exit codes, so CI will still fail on lint errors without needing an explicit
fail-on-errorwrapper.
The approach is correct and functionally equivalent to (or better than) the previous wrapper — no npm install, no indirect toolchain dependency, and the digest-pinned image provides reproducible builds.
aheritier
approved these changes
Jun 16, 2026
2 tasks
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.
What
Replace the
raven-actions/actionlintcomposite action with a Docker container step using the officialrhysd/actionlintimage.Why
raven-actions/actionlintinternally runsnpm installas part of its setup. This conflicts with pnpm'snode_moduleslayout on cold caches, causing intermittent CI failures in thelintjob.The Docker container approach is cleaner: no curl, no tar, no SHA file verification — the image is pinned by its multi-arch digest (supports both amd64 and arm64 runners). GitHub Actions automatically mounts the workspace and sets the working directory, so actionlint discovers
.github/workflows/automatically.Changes
.github/workflows/test.yml: swapuses: raven-actions/actionlintforuses: docker://rhysd/actionlint:1.7.12@sha256:b1934ee5f1c509618f2508e6eb47ee0d3520686341fec936f3b79331f9315667-shellcheck=disables shellcheck integration, matching the previousshellcheck: falsebehaviour