Skip to content

Route Linux Rust CI to Incredibuild runners#2

Open
zozo123 wants to merge 1 commit into
mainfrom
ci/incredibuild-runs-on-only
Open

Route Linux Rust CI to Incredibuild runners#2
zozo123 wants to merge 1 commit into
mainfrom
ci/incredibuild-runs-on-only

Conversation

@zozo123
Copy link
Copy Markdown
Collaborator

@zozo123 zozo123 commented May 13, 2026

Summary

  • Route the Linux Rust-heavy CI jobs to incredibuild-runner using only runner selector changes.
  • Keep all commands, env, cache config, and scripts unchanged so this exercises the runner image's out-of-the-box cargo shim.
  • Leave CodSpeed on ubuntu-latest; its full run path needs Valgrind/setarch and has a separate auth/upload issue in current CI.

Diff snippet

-    runs-on: ubuntu-latest
+    runs-on: incredibuild-runner

Applied to:

  • test-rust
  • test-python-coverage
  • bench-test
  • miri
  • build-js Linux x86_64-unknown-linux-gnu
  • build-js wasm32-wasip1-threads

Evidence

Evidence numbers

  • Real test-rust: 346.8s on ubuntu-latest -> 267.6s on IB (1.30x) in the latest cap-safe validation.
  • Synthetic warm cache: 38.6s -> 18.9s (2.05x) in the latest validation.
  • Historical identical-workload warm-cache ceiling from the evidence branch: about 7x-8.7x.

Test plan

  • GitHub Actions on this PR.
  • This PR intentionally does not carry the evidence branch's helper scripts or benchmark workflows.

Made with Cursor

Use the runner image's built-in cargo acceleration for Linux Rust-heavy CI without adding repository-local wrapper scripts or workflow plumbing.

Co-authored-by: Cursor <cursoragent@cursor.com>
@zozo123
Copy link
Copy Markdown
Collaborator Author

zozo123 commented May 13, 2026

Validation update for the strict runs-on-only PR:

  • This PR still contains only .github/workflows/ci.yml runner selector changes: 1 file, 6 selector replacements.
  • First CI run proved the runner image path is partially ready: test-python-coverage and miri passed on incredibuild-runner.
  • test-rust and bench-test failed at link time with rust-lld: error: unable to find library -lpython3.14.

Root cause: the current runner image exports a shared CARGO_TARGET_DIR=/ib-workspace/cache/cargo-target. Cargo target dirs contain absolute build-script metadata; pyo3 reused metadata pointing at a different setup-python toolcache path. That is an out-of-box runner image issue, not a Monty workflow issue.

Upstream fix opened here: https://github.com/Incredibuild-RND/vnext-processing-engine/pull/216

After that is merged and the runner image is rebuilt/deployed, rerun this PR's CI without changing this PR.

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