Skip to content

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

Open
jeremy wants to merge 1 commit into
mainfrom
mise-pin-ci-tools
Open

Pin bin/ci's tool versions in .mise.toml#649
jeremy wants to merge 1 commit 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
powershell = "7.6.5"
# Keep roughly in sync with .github/workflows/test.yml zizmor-action pin,
# which pins the action version (v0.6.2), not a zizmor binary version.
zizmor = "1.28.0"
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 on lines +98 to +100
# The action's default version floats to the latest zizmor release.
# Keep in sync with the .mise.toml zizmor pin.
version: "1.29.0"
Comment thread .mise.toml
powershell = "7.6.5"
# Keep in sync with the zizmor-action `version:` input in
# .github/workflows/test.yml (the action's default floats to latest).
zizmor = "1.29.0"
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