Skip to content

ci(repo): set up rust toolchain directly instead of via mise - #10

Merged
azlekov merged 1 commit into
developfrom
ci/setup-rust-toolchain-self-hosted
Jun 29, 2026
Merged

ci(repo): set up rust toolchain directly instead of via mise#10
azlekov merged 1 commit into
developfrom
ci/setup-rust-toolchain-self-hosted

Conversation

@azlekov

@azlekov azlekov commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

What

Set up the Rust toolchain directly in the Rust CI jobs instead of relying on mise.

Why

The self-hosted build runners don't ship rustup. mise's rust = "stable" therefore silently no-ops on them — it installs just/node/bun (those show up on PATH) but never cargo, so the Rust jobs fail with:

cargo: command not found
##[error]Process completed with exit code 127.

This is currently red across the open Renovate PRs (#2, #3, #4, #7, #8, #9) — any Rust job that lands on the self-hosted runner fails. (PR #5 happened to run on the GitHub-hosted fallback, where rustup is preinstalled, so it stayed green.)

Because the runners lack rustup, dtolnay/rust-toolchain (which assumes rustup is present) wouldn't fix it either — the step has to install rustup when it's missing.

Change

  • ci.yml (rust job) and build-release.yml (build job): replace jdx/mise-action@v4 with an explicit Set up Rust toolchain step that:
    • installs rustup via the official script when absent (adds ~/.cargo/bin to GITHUB_PATH),
    • pins stable (--profile minimal),
    • adds rustfmt + clippy (CI) / the matrix cross target (build-release).
  • Carry over RUST_BACKTRACE=1 (previously provided by mise.toml [env]) as a job-level env in ci.yml.

mise is unchanged for local dev and the release job (which runs on ubuntu-latest, where rustup is preinstalled).

Notes

Both workflows validated as well-formed YAML locally. End-to-end behavior can only be confirmed on a self-hosted runner — worth watching the first PR run that lands there.

The self-hosted `build` runners don't ship rustup, so mise's `rust = "stable"` silently
no-ops on them — it installs just/node/bun but never cargo, so the Rust jobs fail with
`cargo: command not found` (seen across the open renovate PRs).

Replace `jdx/mise-action` in the Rust jobs (ci.yml `rust`, build-release.yml `build`) with an
explicit toolchain step that installs rustup when missing, pins stable, and adds the needed
components/target. Carry over RUST_BACKTRACE=1 that mise.toml used to export. mise stays for
local dev and the release job.

Signed-off-by: Asen Lekov <asenlekoff@gmail.com>
@azlekov
azlekov merged commit 6696c25 into develop Jun 29, 2026
3 checks passed
@azlekov
azlekov deleted the ci/setup-rust-toolchain-self-hosted branch June 29, 2026 22:26
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