Skip to content

chore(ci): use non-large runners for release builds#9786

Merged
jdx merged 1 commit into
mainfrom
claude/nifty-brahmagupta-845b64
May 11, 2026
Merged

chore(ci): use non-large runners for release builds#9786
jdx merged 1 commit into
mainfrom
claude/nifty-brahmagupta-845b64

Conversation

@jdx

@jdx jdx commented May 11, 2026

Copy link
Copy Markdown
Owner

Summary

  • Drop -large from the Linux and macOS Namespace runner profiles used by the release tarball jobs in .github/workflows/release.yml.
  • These jobs now use namespace-profile-endev-linux-amd64 and namespace-profile-endev-macos-arm64, matching what the rest of the workflows (test, registry, docs, etc.) already use.

Why

  • Release builds don't need the larger instance profile, so this reduces CI cost for tag pushes without changing what gets built.

Notes

  • hyperfine.yml still uses -large since it's a benchmarking workflow, not a release build — left untouched.

🤖 Generated with Claude Code


Note

Low Risk
Low risk CI-only change that just switches the runner profiles for the Linux and macOS release tarball jobs; main impact is potential runtime/performance differences on smaller runners.

Overview
Updates the release GitHub Actions workflow to run the Linux and macOS tarball build jobs on the standard Namespace runner profiles by removing the -large suffix.

This reduces resource usage/cost for release builds without changing build steps or artifacts.

Reviewed by Cursor Bugbot for commit 2535660. Bugbot is set up for automated code reviews on this repo. Configure here.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Note

Gemini is unable to generate a review for this pull request due to the file types involved not being currently supported.

@jdx jdx merged commit 0323cb8 into main May 11, 2026
20 of 21 checks passed
@jdx jdx deleted the claude/nifty-brahmagupta-845b64 branch May 11, 2026 18:27
@greptile-apps

greptile-apps Bot commented May 11, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

Two Namespace CI runner profiles for release tarball builds are switched from their -large variants to the standard profiles already used by the rest of the repo's workflows, reducing CI cost for tag pushes.

  • build-tarball-linux now runs on namespace-profile-endev-linux-amd64 (was …-large); existing 45-minute job/retry timeout is unchanged.
  • build-tarball-macos now runs on namespace-profile-endev-macos-arm64 (was …-large); existing 90-minute job/retry timeout is unchanged.
  • hyperfine.yml benchmarking workflow retains its -large runner, as noted in the PR description.

Confidence Score: 5/5

Straightforward CI cost-reduction change with no risk to release artifact correctness or build logic.

The only change is dropping -large from two runner profile strings. The same profiles are already proven to work for other workflows in this repo, so the risk of these builds failing due to resource constraints is low. The existing generous timeouts (45 min Linux, 90 min macOS) with 3-attempt retries provide a cushion if the non-large runners are modestly slower on a given run.

No files require special attention.

Important Files Changed

Filename Overview
.github/workflows/release.yml Downgraded two Namespace runner profiles from -large variants to standard profiles for the Linux and macOS tarball build jobs; no other logic changed.

Reviews (1): Last reviewed commit: "chore(ci): use non-large runners for rel..." | Re-trigger Greptile

@github-actions

Copy link
Copy Markdown

Hyperfine Performance

mise x -- echo

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2026.5.6 x -- echo 21.6 ± 1.4 18.6 26.8 1.00
mise x -- echo 23.0 ± 1.5 20.0 39.4 1.06 ± 0.10

mise env

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2026.5.6 env 21.7 ± 1.9 18.9 30.7 1.05 ± 0.12
mise env 20.7 ± 1.6 17.7 31.7 1.00

mise hook-env

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2026.5.6 hook-env 20.5 ± 1.0 18.4 25.5 1.01 ± 0.07
mise hook-env 20.2 ± 1.0 18.3 25.6 1.00

mise ls

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2026.5.6 ls 20.9 ± 3.9 14.4 27.9 1.28 ± 0.24
mise ls 16.3 ± 0.8 14.7 20.5 1.00
✅ Performance improvement for ls is 28%

xtasks/test/perf

Command mise-2026.5.6 mise Variance
install (cached) 126ms 128ms -1%
ls (cached) 58ms 58ms +0%
bin-paths (cached) 62ms 64ms -3%
task-ls (cached) 545ms 552ms -1%

jdx added a commit that referenced this pull request May 12, 2026
## Summary
- Revert the Linux portion of
[#9786](#9786): switch
`build-tarball-linux` back to
`namespace-profile-endev-linux-amd64-large`.
- macOS runners are left on the smaller profile (those jobs succeeded).

## Why
All 6 Linux release-tarball jobs in run
[25739820241](https://github.com/jdx/mise/actions/runs/25739820241)
failed identically: `rustc` got `SIGKILL`'d during the final LTO link of
`mise`. The non-large Namespace runner reports as `4x8` (4 CPU / 8 GB
RAM) in the runner setup log, and the `serious` profile enables LTO,
which pushes the linker past available RAM. Output from a failed job:

```
error: could not compile `mise` (bin "mise")

Caused by:
  process didn't exit successfully: `rustc ... -C opt-level=3 -C lto ...` (signal: 9, SIGKILL: kill)
```

Windows and macOS builds were unaffected.

## Test plan
- [ ] Trigger a release workflow (next tag push, or manual dispatch of
`release.yml`) and confirm all Linux tarball jobs succeed.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Low Risk**
> Low risk CI-only change that just alters runner sizing; main impact is
build stability/cost rather than product behavior.
> 
> **Overview**
> Updates the `release.yml` workflow so `build-tarball-linux` runs on
`namespace-profile-endev-linux-amd64-large` instead of the smaller Linux
runner profile, improving reliability of release tarball builds under
memory-heavy Rust LTO linking.
> 
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
1549f91. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
mise-en-dev added a commit that referenced this pull request May 13, 2026
### 🐛 Bug Fixes

- **(backend)** use runtime paths for backend bin dirs by @risu729 in
[#9606](#9606)
- **(ci)** preserve vendor/aqua-registry/ in PPA publish workflow by
@jdx in [#9782](#9782)
- **(ci)** set UTF-8 locale in e2e Docker image by @jdx in
[#9820](#9820)
- **(ci)** pass UTF-8 locale through to e2e tests by @jdx in
[#9823](#9823)
- **(conda)** dedup repodata by archive identifier instead of URL by
@jdx in [#9831](#9831)
- **(github)** use default shell for credential command by @risu729 in
[#9664](#9664)
- **(settings)** distinguish unset known settings from unknown ones by
@jdx in [#9818](#9818)
- **(upgrade)** remove completed progress jobs to prevent duplicate
output by @jdx in [#9779](#9779)
- **(vfox)** resolve GitHub token lazily inside Lua plugins by @jdx in
[#9816](#9816)

### 🚜 Refactor

- **(config)** separate core and backend tool options by @risu729 in
[#9753](#9753)
- **(schema)** reuse env directive property schemas by @risu729 in
[#9651](#9651)

### 📚 Documentation

- **(aliases)** fix Aliased Versions example and drop stale asdf callout
by @jdx in [#9830](#9830)

### ⚡ Performance

- **(aqua)** use phf for baked registry lookups by @risu729 in
[#9763](#9763)
- **(task)** cache per-file content hashes for
source_freshness_hash_contents by @jdx in
[#9819](#9819)

### 🧪 Testing

- **(e2e)** pin aube to known-good version in npm package_manager test
by @jdx in [#9794](#9794)

### 📦 Registry

- replace unsupported exe options by @risu729 in
[#9587](#9587)
- update pi by @garysassano in
[#9792](#9792)

### Chore

- **(ci)** use non-large runners for release builds by @jdx in
[#9786](#9786)
- **(ci)** compare registry PRs from fork point by @risu729 in
[#9643](#9643)
- **(ci)** make build-copr.sh the single source of truth for COPR
chroots by @jdx in [#9788](#9788)
- **(ci)** use crates.io trusted publishing in release-plz by @jdx in
[#9793](#9793)
- **(ci)** remove autofix.ci workflow by @jdx in
[#9801](#9801)
- **(ci)** restore -large runner for Linux release builds by @jdx in
[#9815](#9815)
- **(ci)** add zizmor workflow for github actions security analysis by
@jdx in [#9804](#9804)
- **(ci)** assert mise run render produces no diff by @jdx in
[#9803](#9803)
- **(copr)** publish EL9 builds via centos-stream+epel-next-9 chroot by
@jdx in [#9787](#9787)

### Ci

- remove pull_request_target workflow by @jdx in
[#9799](#9799)
- remove caching from publishing workflows by @jdx in
[#9800](#9800)

### Security

- reject shell metacharacters in version strings and CI inputs by @jdx
in [#9814](#9814)

## 📦 Aqua Registry Updates

### New Packages (11)

- [`Code-Hex/Neo-cowsay`](https://github.com/Code-Hex/Neo-cowsay)
-
[`SonarSource/sonarqube-cli`](https://github.com/SonarSource/sonarqube-cli)
- [`earendil-works/pi`](https://github.com/earendil-works/pi)
- [`hylo-lang/hylo-new`](https://github.com/hylo-lang/hylo-new)
- [`jfernandez/bpftop`](https://github.com/jfernandez/bpftop)
- [`modem-dev/hunk`](https://github.com/modem-dev/hunk)
- [`npm/cli`](https://github.com/npm/cli)
- [`racket/racket/minimal`](https://github.com/racket/racket)
- [`slackapi/slack-cli`](https://github.com/slackapi/slack-cli)
- [`vectordotdev/vector`](https://github.com/vectordotdev/vector)
- [`wasilibs/go-yamllint`](https://github.com/wasilibs/go-yamllint)

### Updated Packages (10)

- [`DataDog/pup`](https://github.com/DataDog/pup)
- [`aquasecurity/trivy`](https://github.com/aquasecurity/trivy)
- [`astral-sh/uv`](https://github.com/astral-sh/uv)
- [`caarlos0/svu`](https://github.com/caarlos0/svu)
-
[`cargo-bins/cargo-binstall`](https://github.com/cargo-bins/cargo-binstall)
- [`foundry-rs/foundry`](https://github.com/foundry-rs/foundry)
- [`gastownhall/beads`](https://github.com/gastownhall/beads)
-
[`gruntwork-io/terragrunt`](https://github.com/gruntwork-io/terragrunt)
- [`pnpm/pnpm`](https://github.com/pnpm/pnpm)
- [`santosr2/TerraTidy`](https://github.com/santosr2/TerraTidy)
3PeatVR pushed a commit to 3PeatVR/mise that referenced this pull request May 14, 2026
### 🐛 Bug Fixes

- **(backend)** use runtime paths for backend bin dirs by @risu729 in
[jdx#9606](jdx#9606)
- **(ci)** preserve vendor/aqua-registry/ in PPA publish workflow by
@jdx in [jdx#9782](jdx#9782)
- **(ci)** set UTF-8 locale in e2e Docker image by @jdx in
[jdx#9820](jdx#9820)
- **(ci)** pass UTF-8 locale through to e2e tests by @jdx in
[jdx#9823](jdx#9823)
- **(conda)** dedup repodata by archive identifier instead of URL by
@jdx in [jdx#9831](jdx#9831)
- **(github)** use default shell for credential command by @risu729 in
[jdx#9664](jdx#9664)
- **(settings)** distinguish unset known settings from unknown ones by
@jdx in [jdx#9818](jdx#9818)
- **(upgrade)** remove completed progress jobs to prevent duplicate
output by @jdx in [jdx#9779](jdx#9779)
- **(vfox)** resolve GitHub token lazily inside Lua plugins by @jdx in
[jdx#9816](jdx#9816)

### 🚜 Refactor

- **(config)** separate core and backend tool options by @risu729 in
[jdx#9753](jdx#9753)
- **(schema)** reuse env directive property schemas by @risu729 in
[jdx#9651](jdx#9651)

### 📚 Documentation

- **(aliases)** fix Aliased Versions example and drop stale asdf callout
by @jdx in [jdx#9830](jdx#9830)

### ⚡ Performance

- **(aqua)** use phf for baked registry lookups by @risu729 in
[jdx#9763](jdx#9763)
- **(task)** cache per-file content hashes for
source_freshness_hash_contents by @jdx in
[jdx#9819](jdx#9819)

### 🧪 Testing

- **(e2e)** pin aube to known-good version in npm package_manager test
by @jdx in [jdx#9794](jdx#9794)

### 📦 Registry

- replace unsupported exe options by @risu729 in
[jdx#9587](jdx#9587)
- update pi by @garysassano in
[jdx#9792](jdx#9792)

### Chore

- **(ci)** use non-large runners for release builds by @jdx in
[jdx#9786](jdx#9786)
- **(ci)** compare registry PRs from fork point by @risu729 in
[jdx#9643](jdx#9643)
- **(ci)** make build-copr.sh the single source of truth for COPR
chroots by @jdx in [jdx#9788](jdx#9788)
- **(ci)** use crates.io trusted publishing in release-plz by @jdx in
[jdx#9793](jdx#9793)
- **(ci)** remove autofix.ci workflow by @jdx in
[jdx#9801](jdx#9801)
- **(ci)** restore -large runner for Linux release builds by @jdx in
[jdx#9815](jdx#9815)
- **(ci)** add zizmor workflow for github actions security analysis by
@jdx in [jdx#9804](jdx#9804)
- **(ci)** assert mise run render produces no diff by @jdx in
[jdx#9803](jdx#9803)
- **(copr)** publish EL9 builds via centos-stream+epel-next-9 chroot by
@jdx in [jdx#9787](jdx#9787)

### Ci

- remove pull_request_target workflow by @jdx in
[jdx#9799](jdx#9799)
- remove caching from publishing workflows by @jdx in
[jdx#9800](jdx#9800)

### Security

- reject shell metacharacters in version strings and CI inputs by @jdx
in [jdx#9814](jdx#9814)

## 📦 Aqua Registry Updates

### New Packages (11)

- [`Code-Hex/Neo-cowsay`](https://github.com/Code-Hex/Neo-cowsay)
-
[`SonarSource/sonarqube-cli`](https://github.com/SonarSource/sonarqube-cli)
- [`earendil-works/pi`](https://github.com/earendil-works/pi)
- [`hylo-lang/hylo-new`](https://github.com/hylo-lang/hylo-new)
- [`jfernandez/bpftop`](https://github.com/jfernandez/bpftop)
- [`modem-dev/hunk`](https://github.com/modem-dev/hunk)
- [`npm/cli`](https://github.com/npm/cli)
- [`racket/racket/minimal`](https://github.com/racket/racket)
- [`slackapi/slack-cli`](https://github.com/slackapi/slack-cli)
- [`vectordotdev/vector`](https://github.com/vectordotdev/vector)
- [`wasilibs/go-yamllint`](https://github.com/wasilibs/go-yamllint)

### Updated Packages (10)

- [`DataDog/pup`](https://github.com/DataDog/pup)
- [`aquasecurity/trivy`](https://github.com/aquasecurity/trivy)
- [`astral-sh/uv`](https://github.com/astral-sh/uv)
- [`caarlos0/svu`](https://github.com/caarlos0/svu)
-
[`cargo-bins/cargo-binstall`](https://github.com/cargo-bins/cargo-binstall)
- [`foundry-rs/foundry`](https://github.com/foundry-rs/foundry)
- [`gastownhall/beads`](https://github.com/gastownhall/beads)
-
[`gruntwork-io/terragrunt`](https://github.com/gruntwork-io/terragrunt)
- [`pnpm/pnpm`](https://github.com/pnpm/pnpm)
- [`santosr2/TerraTidy`](https://github.com/santosr2/TerraTidy)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant