akiomik / akiomik/mado

CI jobs rely on native toolchains the runner image happens to carry

Open
#428 3 comments 0 reactions 0 assignees View on GitHub
ci
Dominant language
Rust
Stars
407
Forks
12
Avg merge
5h 45m
Merged PRs (30d)
30

Description

Every job runs on `ubuntu-latest` and none of them asks for the compilers they need.

`tikv-jemalloc-sys` builds C, so `cargo test`, `cargo doc`, `cargo llvm-cov` and the CD build all need a C compiler. Nothing installs one; `ubuntu-latest` ships it. That has been true since before the workspace change and is not visible anywhere in the workflow files.

#426 added the same shape in C++ — `libfuzzer-sys` compiles a vendored libFuzzer, and `cargo clippy --all-targets` reaches it — and defused that one with an explicit `apt-get install -y g++` on the Clippy job, since the requirement was new and #426's to own. The rest is older and broader.

Two ways to settle it:

- ask for what each job needs, the way the Clippy job now does
- decide that the image is the contract, say so once in the workflow, and drop the Clippy job's install for consistency

Either is fine. What is not is one job asking and the others not, which is where #426 leaves it.

Worth checking the CD matrix separately: it cross-compiles five targets through `houseabsolute/actions-rust-cross`, so what a C dependency needs there is not the same question.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.