Skip to content

Pin bin/ci's tool versions in .mise.toml - #649

Open
jeremy wants to merge 2 commits into
mainfrom
mise-pin-ci-tools
Open

Pin bin/ci's tool versions in .mise.toml#649
jeremy wants to merge 2 commits into
mainfrom
mise-pin-ci-tools

Conversation

@jeremy

@jeremy jeremy commented Aug 22, 2026

Copy link
Copy Markdown
Member

bin/ci fails cold in a fresh worktree. mise shims for actionlint, shellcheck, and pwsh exist machine-wide but the project pins no versions, so each shim dies with "No version is set for shim". shellcheck isn't even a repo tool — actionlint shells out to it to lint workflow run: blocks, so its broken shim takes actionlint down with it. And zizmor is a fourth gap: make lint-actions hard-fails without it, and make tools can't install it (brew/pacman only).

This pins all four in [tools] so mise install makes bin/ci self-sufficient:

Tool Pin Sync note
actionlint 1.7.12 matches the rhysd/actionlint pin in .github/workflows/test.yml
shellcheck 0.11.0 actionlint's dependency; CI uses the runner's preinstall
powershell 7.6.5 no CI pin to mirror (runners preinstall pwsh); the three fail-closed-in-CI installer.bats pwsh tests now run locally instead of skipping
zizmor 1.29.0 also pinned via the action's version: input in the workflow — its default floats to latest, so the SHA-pinned action still selected a floating zizmor release

Each pin carries a sync comment mirroring the existing goreleaser convention. No Makefile changes. The workflow's zizmor step gains version: "1.29.0" so CI and local runs use the same binary.

Verified: mise install then a full bin/ci run in a fresh worktree, green with no MISE_*_VERSION env workaround — actionlint and zizmor 1.29.0 ran, and the pwsh installer tests executed rather than skipping.

Copilot AI balanced review requested due to automatic review settings August 22, 2026 08:17

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Pins local development tools in mise so bin/ci works in fresh worktrees.

Changes:

  • Pins actionlint, ShellCheck, PowerShell, and zizmor.
  • Documents CI synchronization expectations.

Tip

If you aren't ready for review, convert to a draft PR.
Click "Convert to draft" or run gh pr ready --undo.
Click "Ready for review" or run gh pr ready to reengage.


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread .mise.toml Outdated
bin/ci fails cold in a fresh worktree: mise shims for actionlint, shellcheck,
and pwsh exist machine-wide but no version is pinned for this project, so each
one dies with "No version is set for shim". shellcheck isn't even invoked by
the repo directly — actionlint shells out to it to lint workflow run: blocks,
so the broken shim takes actionlint down with it. zizmor is worse than
unpinned: make lint-actions hard-fails without it and make tools can't install
it (brew/pacman only).

Pin all four in [tools] so mise install makes bin/ci self-sufficient:

* actionlint 1.7.12 — matches the .github/workflows/test.yml action pin
* shellcheck 0.11.0 — actionlint's dependency; CI uses the runner's preinstall
* powershell 7.6.5 — no CI pin to mirror (runners preinstall pwsh); turns the
  three fail-closed-in-CI installer.bats pwsh tests into locally-running tests
* zizmor 1.29.0 — pinned in the workflow too: zizmor-action's version input
  defaults to "latest", so the SHA-pinned action still selected a floating
  zizmor release. Now the action and mise pin the same binary version.

Each pin carries a sync comment mirroring the existing goreleaser convention.
Copilot AI review requested due to automatic review settings August 22, 2026 08:35
@jeremy
jeremy force-pushed the mise-pin-ci-tools branch from fbd6848 to 10a4f19 Compare August 22, 2026 08:35
@github-actions

Copy link
Copy Markdown

Sensitive Change Detection (shadow mode)

This PR modifies control-plane files:

  • .github/workflows/test.yml

Shadow mode — this check is informational only. When activated, changes to these paths will require approval from a maintainer.

@github-actions github-actions Bot added the ci CI/CD workflows label Aug 22, 2026

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

Comment thread .github/workflows/test.yml Outdated
Comment thread .mise.toml
The zizmor-action resolves its version input — including the "latest"
default — through a digest map checked in at the action's pinned SHA, so CI
was never running a floating release; "latest" at v0.6.2 maps to the same
digest as 1.29.0. The explicit version pin still earns its keep: it stops the
release from shifting when the action SHA is bumped and matches the .mise.toml
pin so local bin/ci runs the same zizmor CI does. Reword both comments to
describe that mechanism instead of a runtime float.
Copilot AI review requested due to automatic review settings August 22, 2026 19:14

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated no new comments.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci CI/CD workflows

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants