bootstrap: add bootstrap step to run stdarch-gen checks in CI - #156674
bootstrap: add bootstrap step to run stdarch-gen checks in CI#156674xonx4l wants to merge 11 commits into
Conversation
|
|
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
cc @Amanieu, @folkertdev, @sayantn |
This comment has been minimized.
This comment has been minimized.
a594176 to
59674c1
Compare
|
This PR was rebased onto a different main commit. Here's a range-diff highlighting what actually changed. Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers. |
|
@bors try jobs=x86_64-gnu |
This comment has been minimized.
This comment has been minimized.
bootstrap: add bootstrap step to run stdarch-gen checks in CI try-job: x86_64-gnu
This comment has been minimized.
This comment has been minimized.
|
💔 Test for bb3dc02 failed: CI. Failed job:
|
This comment has been minimized.
This comment has been minimized.
|
@bors p=6 scheduling |
bootstrap: add bootstrap step to run stdarch-gen checks in CI This PR ports stdarch-gen checks into the bootstrap test runner as a step, so that we can run the stdarch-gen checks via x.py test. Changes -: -> Adds a new `StdarchGenCheck` bootstrap step. -> Mirrors `https://github.com/rust-lang/stdarch/blob/f71ac102d30d5d1957277cbffc6ba631b67bffd1/.github/workflows/main.yml#L309-L333` (check-stdarch-gen job) -> `stdarch-gen-arm` uses a nightly only feature (`#![feature(pattern)]`) but bootstrap's cargo runs on the beta toolchain thus we set `RUSTC_BOOTSTRAP=1` on the child process so it builds. -> The generators call out to `rustfmt` to format their output so `rustfmt` needs to be on `PATH`. So added bootstrap's rustfmt to `PATH` before each run. If rustfmt isn't available, the step fails early and tells the user to set `rustfmt = true` in `bootstrap.toml` . r? @Kobzol
This comment has been minimized.
This comment has been minimized.
|
💔 Test for 850bd26 failed: CI. Failed job:
|
|
A job failed! Check out the build log: (web) (plain enhanced) (plain) Click to see the possible cause of the failure (guessed by this bot) |
|
@bors retry Spurious |
This comment has been minimized.
This comment has been minimized.
bootstrap: add bootstrap step to run stdarch-gen checks in CI This PR ports stdarch-gen checks into the bootstrap test runner as a step, so that we can run the stdarch-gen checks via x.py test. Changes -: -> Adds a new `StdarchGenCheck` bootstrap step. -> Mirrors `https://github.com/rust-lang/stdarch/blob/f71ac102d30d5d1957277cbffc6ba631b67bffd1/.github/workflows/main.yml#L309-L333` (check-stdarch-gen job) -> `stdarch-gen-arm` uses a nightly only feature (`#![feature(pattern)]`) but bootstrap's cargo runs on the beta toolchain thus we set `RUSTC_BOOTSTRAP=1` on the child process so it builds. -> The generators call out to `rustfmt` to format their output so `rustfmt` needs to be on `PATH`. So added bootstrap's rustfmt to `PATH` before each run. If rustfmt isn't available, the step fails early and tells the user to set `rustfmt = true` in `bootstrap.toml` . r? @Kobzol
|
💔 Test for a4af1f8 failed: CI. Failed job:
|
|
@bors retry |
|
@bors p=0 |
|
@bors p=10 scheduling |
This comment has been minimized.
This comment has been minimized.
bootstrap: add bootstrap step to run stdarch-gen checks in CI This PR ports stdarch-gen checks into the bootstrap test runner as a step, so that we can run the stdarch-gen checks via x.py test. Changes -: -> Adds a new `StdarchGenCheck` bootstrap step. -> Mirrors `https://github.com/rust-lang/stdarch/blob/f71ac102d30d5d1957277cbffc6ba631b67bffd1/.github/workflows/main.yml#L309-L333` (check-stdarch-gen job) -> `stdarch-gen-arm` uses a nightly only feature (`#![feature(pattern)]`) but bootstrap's cargo runs on the beta toolchain thus we set `RUSTC_BOOTSTRAP=1` on the child process so it builds. -> The generators call out to `rustfmt` to format their output so `rustfmt` needs to be on `PATH`. So added bootstrap's rustfmt to `PATH` before each run. If rustfmt isn't available, the step fails early and tells the user to set `rustfmt = true` in `bootstrap.toml` . r? @Kobzol
|
The job Click to see the possible cause of the failure (guessed by this bot) |
|
💔 Test for 337f0e3 failed: CI. Failed job:
|
|
Looks like it doesn't work with vendoring. I think we encountered this in the past, but I don't remember what the exact cause/fix was. @bjorn3 if we run tests for a separate Cargo workspace, do we have to vendor it? I forgot where that is being done. |
|
Everything we build has to be vendored. Vendoring is probably blocked on rust-lang/stdarch#2202 to get a determinstic lockfile in the first place. And even with that, the lockfile wouldn't be available in the vendor step unless we run stdarch-gen inside the vendor step. The list of vendored workspaces is at rust/src/bootstrap/src/core/build_steps/vendor.rs Lines 21 to 32 in 0cfa1c4 |
View all comments
This PR ports stdarch-gen checks into the bootstrap test runner as a step, so that we can run the stdarch-gen checks via x.py test.
Changes -:
-> Adds a new
StdarchGenCheckbootstrap step.-> Mirrors
https://github.com/rust-lang/stdarch/blob/f71ac102d30d5d1957277cbffc6ba631b67bffd1/.github/workflows/main.yml#L309-L333(check-stdarch-gen job)->
stdarch-gen-armuses a nightly only feature (#![feature(pattern)]) but bootstrap's cargo runs on the beta toolchain thus we setRUSTC_BOOTSTRAP=1on the child process so it builds.-> The generators call out to
rustfmtto format their output sorustfmtneeds to be onPATH. So added bootstrap's rustfmt toPATHbefore each run. If rustfmt isn't available, the step fails early and tells the user to setrustfmt = trueinbootstrap.toml.r? @Kobzol