Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

ci: refactor CI to use mise for shared tool setup - #25727

#25727
Merged
ThomasK33 merged 15 commits into
maincoder/coder:mainfrom
codex/refactor-ci-to-use-misecoder/coder:codex/refactor-ci-to-use-miseCopy head branch name to clipboard
Jun 1, 2026
Merged

ci: refactor CI to use mise for shared tool setup#25727
ThomasK33 merged 15 commits into
maincoder/coder:mainfrom
codex/refactor-ci-to-use-misecoder/coder:codex/refactor-ci-to-use-miseCopy head branch name to clipboard

Conversation

@ThomasK33

Copy link
Copy Markdown
Member

Summary

  • Replace bespoke GitHub Actions tool setup with a centralized mise.toml-driven setup path.
  • Add shared CI helpers for mise, Go cache, and pnpm cache reuse so workflows can install from the same version source as local and dogfood environments.
  • Update CI, release, dogfood, and lint targets to use mise-managed tools directly, including actionlint, zizmor, syft, cosign, helm, nfpm, go-winres, sqlc, and shfmt.
  • Add version lockstep checks for mise alongside the existing Go version check, and document the mise requirement for DevContainers.

Testing

  • Lint and formatting checks passed locally, including workflow linting and shell checks.
  • Validation also confirmed the new mise version lockstep script and the action lint target run successfully.

@github-actions

Copy link
Copy Markdown

Docs preview

📖 View docs preview for docs/about/contributing/CONTRIBUTING.md

@ThomasK33 ThomasK33 changed the title Refactor CI to use mise for shared tool setup ci: Refactor CI to use mise for shared tool setup May 27, 2026
@ThomasK33 ThomasK33 changed the title ci: Refactor CI to use mise for shared tool setup ci: refactor CI to use mise for shared tool setup May 27, 2026
@ThomasK33
ThomasK33 force-pushed the codex/refactor-ci-to-use-mise branch from 880d238 to 00a7684 Compare May 27, 2026 13:13
@ThomasK33

Copy link
Copy Markdown
Member Author

@codex review
/coder-agents-review

@coder-agents-review

coder-agents-review Bot commented May 27, 2026

Copy link
Copy Markdown
Contributor

Chat: Spend limit reached | View chat
Requested: 2026-05-28 07:37 UTC by @ThomasK33
Spend: $100.15 / $100.00 (limit reached)

Review history
  • R1 (2026-05-27): 16 reviewers, 4 Nit, 1 Note, 8 P3, 1 P4, COMMENT. Review
  • R2 (2026-05-27): 12 reviewers, 6 Nit, 1 Note, 11 P3, 3 P4, APPROVE. Review
  • R3 (2026-05-28): 8 reviewers, 7 Nit, 1 Note, 13 P3, 4 P4, APPROVE. Review

deep-review v0.5.0 | Round 3 | 5991a2c..ca783e5

Last posted: Round 3, 25 findings (13 P3, 4 P4, 7 Nit, 1 Note), APPROVE. Review

Finding inventory

Findings

# Sev Status Location Summary Round Reviewer Posted
CRF-1 P3 Author fixed (240b65c) scripts/check_mise_versions.sh:26 check_value self-comparison is tautological (mise_version) R1 Netero Yes
CRF-2 P4 Author fixed (240b65c) go.mod:659 actionlint Go tool dependency orphaned after mise migration R1 Netero Yes
CRF-3 Note Author contested; panel closed R2 (12/12 accept) .github/workflows/weekly-docs.yaml:57 Puppeteer cache steps unrelated to mise refactor (scope creep) R1 Netero Yes
CRF-4 P3 Author fixed (240b65c) scripts/check_mise_versions.sh:68 check_value self-comparison is tautological (linux_x64_checksum) R1 Bisky P3, Chopper P3, Hisoka P2, Kite P3, Luffy P3, Mafuuu P3, Meruem P3, Razor P3, Zoro P3 Yes
CRF-5 P3 Author fixed (240b65c) Makefile:823 TYPOS_VERSION eagerly shells out to mise current on every make invocation R1 Chopper P3, Hisoka P3, Luffy P3 Yes
CRF-6 P3 Author fixed (240b65c) .github/actions/setup-mise/action.yml:161 Token clearing sets empty string not unset; may suppress GITHUB_TOKEN fallback R1 Hisoka P3 Yes
CRF-7 P3 Author fixed (240b65c) scripts/check_mise_versions.sh:52 Duplicated awk TOML parser also lives in setup-mise/action.yml:85 R1 Robin P3, Meruem Nit Yes
CRF-8 P3 Author fixed (240b65c) .github/workflows/ci.yaml:1292 Go tool compilation in build-dylib and release lost retry wrapping R1 Kite P3, Zoro P3 Yes
CRF-9 P3 Author fixed (240b65c) Makefile:796 GH_TOKEN rationale for zizmor lost during migration from scripts/zizmor.sh R1 Leorio P3 Yes
CRF-10 P3 Author fixed (240b65c) Makefile:735 lint-light comment says no Go/Node but target now requires mise R1 Mafuuu Note, Hisoka Note Yes
CRF-11 Nit Author fixed (240b65c) scripts/check_mise_versions.sh:3 Header comment does not enumerate checked files or name source of truth R1 Leorio Nit Yes
CRF-12 Nit Dropped by orchestrator (redundant comment is style not defect; downgraded from Gon P2) .github/actions/setup-mise/checksums.toml:2 Comment restates what key names show R1 Gon P2 No
CRF-13 Nit Author fixed (240b65c) .github/actions/setup-mise/action.yml:4 install_args uses underscore while other inputs use kebab-case R1 Gon Nit Yes
CRF-14 Nit Author fixed (240b65c) .github/actions/setup-mise/action.yml:16 Description says "installer" but verifies the binary R1 Gon Nit Yes
CRF-15 Nit Author fixed (240b65c) .github/actions/setup-mise/action.yml:2 Description "optional trusted cache" is misleading R1 Leorio Nit Yes
CRF-16 P3 Author fixed (ca783e5) .github/workflows/ci.yaml:242 Stale typos remediation advice says cargo install; typos is now mise-managed R2 Chopper Yes
CRF-17 P3 Author fixed (ca783e5) .github/workflows/weekly-docs.yaml:70 Puppeteer version resolution fails silently on empty npm results R2 Hisoka Yes
CRF-18 P3 Author fixed (ca783e5) Makefile:748 lint/go requires mise-managed binaries; CONTRIBUTING.md non-DevContainer path omits mise R2 Mafuuu Yes
CRF-19 P4 Author fixed (ca783e5) .github/workflows/weekly-docs.yaml:62 Hardcoded linkspector@0.4.7 will diverge from action SHA pin R2 Mafuuu Yes
CRF-20 P4 Author fixed (d2c8809) scripts/check_mise_versions.sh:72 Lockstep check does not cross-validate hex SHA256 vs SRI base64 in flake.nix R2 Hisoka Yes
CRF-21 Nit Author fixed (d2c8809) mise.toml:1 Lockstep comment omits checksums.toml from sync list R2 Leorio, Mafuuu Yes
CRF-22 Nit Author fixed (d2c8809) scripts/mise_checksum.sh:3 Missing header/purpose comment R2 Leorio Yes
CRF-23 P3 Open scripts/check_mise_versions.sh:64 windows-x64 checksum not validated by lockstep script R3 Hisoka Yes
CRF-24 P3 Open docs/about/contributing/CONTRIBUTING.md:63 Manual setup tells reader to install Go/Node, then mise installs them again R3 Leorio Yes
CRF-25 P4 Open .github/actions/pnpm-install/action.yml:58 Relative path ../scripts/ assumes one-level-deep working directory R3 Hisoka Yes
CRF-26 Nit Open .github/workflows/weekly-docs.yaml:76 Puppeteer error message lacks input context for debugging R3 Leorio Yes

Contested and acknowledged

CRF-3 (Note, .github/workflows/weekly-docs.yaml:57) - Puppeteer cache steps unrelated to mise refactor

  • Finding: Puppeteer cache and Chrome install steps are a separate concern from the mise migration, making the diff harder to review and bisect.
  • Author defense: The steps fix the weekly docs/check-docs failure that this PR was also asked to address. They prevent the workflow from redownloading Chrome on every run.
  • Panel closure (R2, 12/12): All 12 reviewers accepted the author's defense. The Puppeteer changes address a real workflow failure within the PR's overall scope.

Round log

Round 1

Panel. Netero first pass: 1 P3, 1 P4, 1 Note. Panel: 7 P3, 4 Nit new. 1 Nit dropped. Reviewed against 0c27224..00a7684.

Round 2

Churn guard: PROCEED. 14 addressed, 1 contested. Netero: no new findings. Panel: 3 P3, 2 P4, 2 Nit new. CRF-3 closed by panel (12/12 accept). Reviewed against 0c27224..240b65c.

Round 3

Churn guard: PROCEED. 7 addressed. Netero: no new findings. Panel: 2 P3, 1 P4, 1 Nit new. Reviewed against 5991a2c..ca783e5.

About deep-review

CRF = Coder Review Finding (P0-P4, Nit, Note)

Reviewer Focus
Bisky tests
Chopper ops/errors
Churn-guard change verification
Ging language modernization
Gon naming
Hisoka edge cases
Killua perf
Kite change integrity
Knov contracts
Knuckle SQL
Kurapika security
Leorio docs
Luffy product
Mafu-san process
Mafuuu contracts
Melody dispatch/pairing
Meruem structural
Nami frontend
Netero mechanical checks
Pariston premise testing
Pen-botter product gaps
Razor verification
Robin duplication
Ryosuke Go arch
Takumi concurrency
Zoro shape

🤖 Managed by Coder Agents.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Breezy!

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@coder-agents-review coder-agents-review Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Well-structured CI consolidation. Replacing 7 bespoke actions with 3 composable ones, centralizing tool versions in mise.toml, and adding a lockstep check script is a meaningful reduction in maintenance surface. The supply chain posture improved: SHA256-pinned mise binary replaces curl-piped remote scripts, and cache writes are restricted to main (preventing fork-based cache poisoning). CI passing across 29 jobs is strong evidence the migration is correct.

Severity count: 7 P3, 1 P4, 4 Nit, 1 Note.

The check_mise_versions.sh script has 10 check_value calls, but 2 of them (lines 26 and 68) compare a variable to itself, reducing to non-empty guards dressed as cross-validation. The PR testing section says the script "runs successfully," which is tautological for these inputs. A negative test (temporarily desync one file) would have surfaced this.

Meruem proposes a clean class fix: split check_value into check_not_empty(label, value) for source-of-truth extractions and check_equal(label, actual, expected) for cross-references. That makes intent visible at every call site and prevents future callers from copying the self-comparison pattern.

The lint-actions runner was upgraded from ubuntu-22.04 to ubuntu-24.04 without mention in the PR description. It works (CI passed), but a silent runner upgrade in a tooling PR can surprise reviewers.

"Two guards that guard nothing. Shall we see what they protect?" - Hisoka


go.mod:659

P4 [CRF-2] actionlint/cmd/actionlint Go tool dependency is now orphaned.

The Makefile lint/actions/actionlint target changed from go tool github.com/rhysd/actionlint/cmd/actionlint to mise exec actionlint -- actionlint. No remaining go tool or go install references for actionlint in the codebase. The go.mod tool entry and its go.sum entries are dead weight. (Netero)

🤖

🤖 This review was automatically generated with Coder Agents.

Comment thread scripts/check_mise_versions.sh Outdated
Comment thread scripts/check_mise_versions.sh Outdated
Comment thread Makefile Outdated
Comment thread .github/actions/setup-mise/action.yml Outdated
Comment thread scripts/check_mise_versions.sh Outdated
Comment thread .github/workflows/weekly-docs.yaml Outdated
Comment thread scripts/check_mise_versions.sh Outdated
Comment thread .github/actions/setup-mise/action.yml Outdated
Comment thread .github/actions/setup-mise/action.yml Outdated
Comment thread .github/actions/setup-mise/action.yml Outdated
@ThomasK33

Copy link
Copy Markdown
Member Author

Also addressed the non-inline CRF-2 item from the review body in 240b65c: the orphaned Go tool entries for actionlint were removed from go.mod/go.sum. The follow-up also moved paralleltestctx into mise.toml, so lint/go can call the mise-managed binary directly.

@ThomasK33

Copy link
Copy Markdown
Member Author

/coder-agents-review

@ThomasK33
ThomasK33 force-pushed the codex/refactor-ci-to-use-mise branch from 240b65c to d2c8809 Compare May 27, 2026 19:06

@coder-agents-review coder-agents-review Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

All 14 R1 findings addressed. Every fix verified at root cause: check_value split into check_not_empty/check_equal, TYPOS_VERSION eager eval removed entirely, awk parser extracted to shared mise_checksum.sh, Go tool retry wrapping restored, GH_TOKEN rationale comment added, lint-light and action descriptions corrected, orphaned go.mod entries removed. Clean, thorough follow-up.

CRF-3 (Puppeteer scope) closed by panel (12/12 accept). The author explained the steps fix a weekly-docs failure this PR was scoped to address.

R2 severity count: 3 P3, 2 P4, 2 Nit. Nothing blocking.

The lint/go target now runs bare golangci-lint and paralleltestctx via mise shims, but CONTRIBUTING.md's non-DevContainer setup path doesn't mention mise as a prerequisite. Worth updating before merge so contributors don't hit a cryptic "command not found" on make lint.

"What happens when you set a variable to nothing? Is it absent, or is it an empty answer?" - Hisoka, R1 (before the author removed the step entirely)

🤖 This review was automatically generated with Coder Agents.

Comment thread .github/workflows/ci.yaml
Comment thread .github/workflows/weekly-docs.yaml Outdated
Comment thread Makefile
Comment thread .github/workflows/weekly-docs.yaml Outdated
Comment thread scripts/check_mise_versions.sh
Comment thread mise.toml Outdated
Comment thread scripts/mise_checksum.sh
@ThomasK33

Copy link
Copy Markdown
Member Author

/coder-agents-review

@ThomasK33
ThomasK33 force-pushed the codex/refactor-ci-to-use-mise branch from ca783e5 to f8343ae Compare May 28, 2026 07:46
@ThomasK33

Copy link
Copy Markdown
Member Author

/coder-agents-review

@coder-agents-review coder-agents-review Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

All 7 R2 findings addressed. The SRI hash cross-validation (CRF-20) was particularly well done: the author added an sri_sha256_to_hex function and loops over all four Nix targets comparing decoded hashes against checksums.toml. CONTRIBUTING.md now documents mise for manual setup. Puppeteer version guard added with exactly the suggested pattern.

R3 severity count: 2 P3, 1 P4, 1 Nit. Nothing blocking.

The lockstep script now validates 5 of 6 checksum platforms (linux-x64, linux-arm64, macos-x64, macos-arm64 via SRI cross-check; linux-x64 again via dogfood). The windows-x64 entry is the one gap. The CONTRIBUTING.md wording creates a confusing double-install path for new contributors.

🤖 This review was automatically generated with Coder Agents.

Comment thread scripts/check_mise_versions.sh
Comment thread docs/about/contributing/CONTRIBUTING.md Outdated
Comment thread .github/actions/pnpm-install/action.yml Outdated
Comment thread .github/workflows/weekly-docs.yaml Outdated
@ThomasK33

Copy link
Copy Markdown
Member Author

/coder-agents-review

@ThomasK33

Copy link
Copy Markdown
Member Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 5e694d04ce

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread Makefile

Copy link
Copy Markdown
Member Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Breezy!

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@ThomasK33
ThomasK33 marked this pull request as ready for review May 28, 2026 09:44
@ThomasK33
ThomasK33 force-pushed the codex/refactor-ci-to-use-mise branch from f87f7fb to df9fd40 Compare June 1, 2026 09:39

Copy link
Copy Markdown
Contributor

Could we adjust the weekly-docs Puppeteer setup before merging?

The new flow resolves Puppeteer dynamically via npm view and then executes it with npx --yes in a job that has pull-requests: write and later contains secret-bearing notification logic. That means mutable third-party npm code runs outside the repo lockfile in a higher-trust job than necessary.

Suggested fix: pin the Puppeteer/browser installer version through repo-controlled config/lockfile, or hard-pin the exact version instead of resolving it at runtime. Ideally, keep the browser install/cache prep in a read-only context and reserve pull-requests: write only for the Linkspector reporting step.

🤖 This comment was generated by Coder Agents.

@ThomasK33
ThomasK33 merged commit fe25766 into main Jun 1, 2026
38 checks passed
@ThomasK33
ThomasK33 deleted the codex/refactor-ci-to-use-mise branch June 1, 2026 13:55
@github-actions github-actions Bot locked and limited conversation to collaborators Jun 1, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

Morty Proxy This is a proxified and sanitized view of the page, visit original site.