Conversation
The Docker action needs a daemon, so ubuntu-slim cannot use it. The workaround the docs carried reconstructed the release asset name by hand and got it wrong on macOS, where the assets say darwin rather than macos, and on Windows, where they are zip rather than tar.gz. It also ran the binary without a problem matcher, so nothing appeared as an annotation. The new action installs actionlint with mise, which selects the asset for the runner itself, and ships the generated matcher so callers no longer copy actionlint-matcher.json into their own repository. "make matcher" now writes both copies of that generated file, and the existing up-to-date guard covers them.
|
Important Review skippedAuto reviews are limited based on label configuration. 🏷️ Required labels (at least one) (1)
🚫 Excluded labels (none allowed) (2)
Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Essentials Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
Rewriting the daemon-less section split the sentence across two lines, so the bump-version rule that matches it found no occurrence and TestDeclaredTargetsMatchRepository failed.
The action installs the published actionlint, which is older than this branch, so pointing it at the repository reported the self-repository "uses:" syntax, "concurrency.queue" and the parallel step keywords as errors. Those are features the release does not carry yet. A fixture workflow written to the runner's temp directory keeps the job about what it is meant to prove: that the action installs actionlint on a runner without a Docker daemon and runs it.
This branch has not been 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.
The Docker action needs a reachable daemon, so
ubuntu-slimcannot use it. The workaround the docs carried until now reconstructed the release asset name in shell, and it was wrong on two of the three runner platforms.Measured, the old snippet against the real assets
The snippet built its pattern as
actionlint_*_${RUNNER_OS,,}_${asset_arch}.tar.gz. On a macOS runnerRUNNER_OSismacOS, so that lowercases tomacoswhile the assets saydarwin. On Windows the assets are.zip, so the pattern matches nothing andtar -xzfcould not have unpacked it anyway. It also ranactionlint -colorwith no problem matcher registered, so problems stayed in the step log and never became annotations.This adds
action/cli, a composite action that installs actionlint with mise and registers the problem matcher.mise picks the release asset itself, which removes the hand-written OS and architecture mapping entirely. No
asset_patternis needed for our naming.Measured, mise against our releases
minimum_release_agedefaults to 24 hours, so the action sets it to0sin its inlinemise_toml. Without that a fresh actionlint release is not installable for a day.shellcheckresolves through the registry;pyflakesis not in it and goes throughpipx:pyflakes.The action ships its own copy of the generated matcher. Until now docs/usage.md told readers to copy
actionlint-matcher.jsoninto their own repository before annotations worked, which the action can simply do for them.That copy is generated, not hand-maintained.
make matcherwrites both files fromscripts/generate-actionlint-matcher/main.mjs, and the existing up-to-date guard in.github/workflows/matcher.yamlcompares the whole tree, so it covers both without further changes.actionlint/Makefile
Lines 113 to 116 in 7dc7818
A new CI job runs the action on
ubuntu-slim, the runner the Docker action cannot reach. That reference also puts the action under actionlint's own composite-step validation, which I confirmed by breaking it on purpose.Measured, the action is actually validated
Reverted afterwards. With the file restored,
./actionlint -color -shellcheck 'shellcheck -o all',check-readme,check-checksanddprint checkall pass.The
flagsinput is split on whitespace withread -rarather than an unquoted expansion, so it needs noshellcheck disablecomment and does not glob.Not in this PR
action/compat, a variant that downloads a second release binary to reach full input and output parity with the Docker action, plus the.goreleaser.yamlchange that would publish that binary. Both sit uncommitted pending a separate decision on whether one action or two is the right answer.