about summary refs log tree commit diff
path: root/src/ci/docker
AgeCommit message (Collapse)AuthorLines
2025-07-17Rollup merge of #143964 - nikic:docker-script-arg, r=marcoieniLeón Orell Valerian Liehr-37/+30
Fix handling of SCRIPT_ARG in docker images Instead of making this a build parameter, pass the SCRIPT as an environment variable. To this purpose, normalize on always referring to a script in `/scripts`. For i686-gnu-nopt-2 I had to create a separate script, because Docker seems to be really terrible at command line argument parsing, so it's not possible to pass an environment variable that contains whitespace. Fixes https://github.com/rust-lang/rust/issues/143962. try-job: `dist-x86_64-linux` try-job: `i686-gnu-nopt-*` try-job: `i686-gnu-*` try-job: `x86_64-gnu-llvm-19-*` try-job: `x86_64-gnu-llvm-20-*`
2025-07-17Rollup merge of #143851 - lolbinarycat:bootstrap-node_modules, r=KobzolLeón Orell Valerian Liehr-20/+0
ci cleanup: rustdoc-gui-test now installs browser-ui-test this removes the need for --unsafe-perm in the Dockerfile. cc ```@GuillaumeGomez``` ```@Kobzol```
2025-07-15ci cleanup: rustdoc-gui-test now installs browser-ui-testbinarycat-20/+0
this removes the need for --unsafe-perm in the Dockerfile.
2025-07-15Fix handling of SCRIPT_ARG in docker imagesNikita Popov-37/+30
Instead of making this a build parameter, pass the SCRIPT as an environment variable. To this purpose, normalize on always referring to a script in `/scripts`. For i686-gnu-nopt-2 I had to create a separate script, because Docker seems to be really terrible at command line argument parsing, so it's not possible to pass an environment variable that contains whitespace.
2025-07-11Fix fallback for CI_JOB_NAMENikita Popov-1/+1
If CI_JOB_NAME is not specified, it's supposed to fall back to the image name, which is `$image`, not `$IMAGE`. Failing to set the correct CI_JOB_NAME causes failures when running `dist-ohos-*` images locally.
2025-07-07Rollup merge of #143415 - Gelbpunkt:cleanup-dist-ppc64le-toolchain, r=marcoieni许杰友 Jieyou Xu (Joe)-90/+7
Get rid of build-powerpc64le-toolchain.sh The dist-powerpc64le-linux-musl runner never actually used the toolchain that the script produced, it instead used the one from crosstool-ng. The dist-powerpc64le-linux-gnu runner did use it, from what I can tell mainly to get a glibc 2.17 version with ppc64le support backported. Since crosstool-ng has the necessary patches, we can just use crosstool-ng to get an appropriate toolchain. While at it, use kernel 3.10 headers since that's the version documented in platform support for this target. try-job: dist-powerpc64le-linux-gnu try-job: dist-powerpc64le-linux-musl
2025-07-06Fix CIJakub Beránek-3/+3
2025-07-04Get rid of build-powerpc64le-toolchain.shJens Reidel-90/+7
The dist-powerpc64le-linux-musl runner never actually used the toolchain that the script produced, it instead used the one from crosstool-ng. The dist-powerpc64le-linux-gnu runner did use it, from what I can tell mainly to get a glibc 2.17 version with ppc64le support backported. Since crosstool-ng has the necessary patches, we can just use crosstool-ng to get an appropriate toolchain. While at it, use kernel 3.10 headers since that's the version documented in platform support for this target. Signed-off-by: Jens Reidel <adrian@travitia.xyz>
2025-07-03Rollup merge of #143384 - GuillaumeGomez:update-browser-ui-test, r=kobzolGuillaume Gomez-1/+1
Update browser-ui-test version to `0.21.1` One day I'll find time and motivation to use `package.json` instead. :laughing: r? `@Kobzol`
2025-07-03Update browser-ui-test version to `0.21.1`Guillaume Gomez-1/+1
2025-07-03Auto merge of #143294 - ChrisDenton:rename-mingw, r=Kobzolbors-64/+64
Rename `mingw-*` CI jobs to `pr-*` The name `mingw` confuses people because these CI jobs now do much more than just cross-compile to mingw. This is basically a find/replace. I chose the name `pr-` because it's job is to do general PR checks,
2025-07-02Rollup merge of #142886 - Enselic:aarch64-panic, r=cuviperMatthias Krüger-2/+1
ci: aarch64-gnu: Stop skipping `panic_abort_doc_tests` The skipped test passes since `nightly-2024-11-29`. See https://github.com/rust-lang/rust/issues/123733#issuecomment-2928770365 and https://github.com/rust-lang/rust/issues/123733#issuecomment-2929091266 for more info. Let's stop skipping it to increase the chance of detecting a regression. r? ``````@cuviper`````` who added the skip in https://github.com/rust-lang/rust/pull/123828 Also see https://github.com/rust-lang/rust/pull/142304 for an alternative regression test that I am hoping to also land in the near future to complement the test we now stop skipping, but I need to investigate that setup more.
2025-07-02Rename mingw-check-tidy to tidyChris Denton-2/+2
2025-07-01Rename mingw-* CI jobs to pr-*Chris Denton-64/+64
2025-06-28Rollup merge of #142963 - Kobzol:try-build-skip, r=jieyouxuMatthias Krüger-1/+4
Skip unnecessary components in x64 try builds We unnecessarily rebuild `wasm-component-ld`, `llvm-bitcode-linker` and Cranelift during the intermediate PGO builds several times times, which is unnecessarily and increases the duration of try builds. This PR also disables some unnecessary dist components. r? `````@jieyouxu`````
2025-06-26Rollup merge of #143010 - GuillaumeGomez:update-browser-ui-test, r=KobzolMichael Goulet-1/+1
Update `browser-ui-test` version to `0.20.7` This new version fixes some bugs and improve error messages. r? `````@Kobzol`````
2025-06-26Auto merge of #142581 - Kobzol:bootstrap-std-method, r=jieyouxubors-2/+2
Enforce in bootstrap that build must have stage at least 1 This PR is a step towards https://rust-lang.zulipchat.com/#narrow/channel/326414-t-infra.2Fbootstrap/topic/Proposal.20to.20cleanup.20stages.20and.20steps.20after.20the.20redesign/with/523586917. It's very hard or me to make self-contained changes to bootstrap at this moment, so this PR kind of does several things: 1) (first two commits) Try to reduce the usage of `Std::new` in bootstrap, and replace it with a `Builder::std` method (similar to `Builder::compiler`). This is mostly to remove executions of the `Std` step for stage 0, which doesn't make a lot of sense; I'd like to ideally have the invariant that when a step is invoked, it actually builds or does something. Eventually, I'd like for everything to go through `Builder::std`. (Note: I'm not totally married to this idea, if you don't like it, we can remove it from this PR. I mostly did it right now to remove stage 0 std steps from snapshot tests, which shouldn't be there, but we can also filter them out in a different way) 2) Make sure that when you pass `x build compiler`, only the `Assemble` root level step will be invoked, and not the `Rustc` step. Before, both were invoked, which actually ran `Rustc` twice, once with all `crates` filled, and once with no crates (but both actually represent the same situation). Since the `Rustc::make_run` step actually requests a compile that is one stage below it, this actually made `build compiler --stage 0` work, which we don't want to have anymore. 3) Enforce a bootstrap-global invariant that all `build` commands are always on stage `>=1`. If you try to `build` anything on stage 0, it will print a warning and exit bootstrap. This follows the intuition from the new staging rules after the stage redesign; artifacts that are "stage 0" come outside of bootstrap, and we can't really build something for which we don't have source (although we can still test it, but that's for another PR). Now the logic for build should be quite simple. For pretty much everything except for `Std`, you first use the stage0 compiler to build stage 1. Then you can build a stage 2 <something> using the previously built stage 1 (and then you can continue to stage 3 etc.). And that's it. The default build stage for everything is 1 (modulo download-ci-rustc, but that's a separate can of worms). The snapshot test infra isn't super nice at the moment, as one of next steps I want to create some simple Builder pattern that will allow us to configure the bootstrap invocations in a more "forward-compatible" way (e.g. now it's not possible to modify the config passed to `configure_with_args`). There are some things not yet fully resolved for build stage 0: 1) Cargo is still a `ModeRustc` tool, even though it doesn't really have to be, it is buildable with the stage0 compiler 2) bootstrap tools (`opt-dist`, `build-manifest` etc.) are still called stage0 tools, and in the bootstrap output it says something like "stage 0 rustc builds stage 0 opt-dist". Which is a bit weird, but functionally there's no difference, it's just a slightly inconsistent output. We still haven't decided if we should make these tools ignore staging altogether (which is IMO the right choice) or if we want to allow building stage 1/2/3/... bootstrap tools. r? `@jieyouxu` try-job: x86_64-rust-for-linux
2025-06-25Do not build GCC in fast try buildsJakub Beránek-1/+4
2025-06-25Update `browser-ui-test` version to `0.20.7`Guillaume Gomez-1/+1
2025-06-23Move error code explanation removal check into tidyGuillaume Gomez-23/+0
2025-06-23Remove `build --stage 0` from CI scriptsJakub Beránek-2/+2
2025-06-22ci: aarch64-gnu: Stop skipping `panic_abort_doc_tests`Martin Nordholts-2/+1
The skipped test passes since nightly-2024-11-29. Let's stop skipping it to increase the chance of detecing a regression.
2025-06-19Auto merge of #142245 - marcoieni:split-gnu-tools, r=Kobzolbors-55/+119
ci: split x86_64-gnu-tools job try-job: x86_64-gnu-tools try-job: x86_64-gnu-miri try-job: aarch64-gnu
2025-06-18{aarch64,x86_64}-pc-windows-gnullvm: build host toolsMateusz Mikuła-18/+112
2025-06-16Fix `-nopt` CI jobsJakub Beránek-9/+1
They were using `--config` instead of `--set`, which overrides too much stuff.
2025-06-13Pre-install eslint in `mingw-check-tidy` DockerfileJakub Beránek-2/+4
2025-06-11put flag check at the end of command chain in mingw-check-2bit-aloo-4/+5
2025-06-11add comment over ci changebit-aloo-1/+3
2025-06-11add tracing flag in bootstrap check cmd in mingw-check-2 ci workflowbit-aloo-1/+1
2025-06-10ci: split x86_64-gnu-tools jobMarcoIeni-55/+119
2025-06-08CI: rfl: move job forward to Linux v6.16-rc1Miguel Ojeda-2/+1
Remove the comment on top as well, since that issue is now fixed in this new tag. Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2025-06-07Rollup merge of #142076 - Kobzol:doc-bootstrap-ci, r=marcoieniJacob Pratt-0/+1
Check documentation of bootstrap in PR CI It's annoying when wrong doc comments in bootstrap [break](https://github.com/rust-lang/rust/pull/141272#issuecomment-2943614152) `auto` CI. This has happened a few times recently, and documenting bootstrap with the stage0 compiler should be pretty quick, so let's add it to PR CI. r? ``@marcoieni``
2025-06-05Check documentation of bootstrap in PR CIJakub Beránek-0/+1
2025-06-05Rollup merge of #141777 - Kobzol:dist-linux-alt-no-pgo-bolt, r=marcoieniMatthias Krüger-8/+28
Do not run PGO/BOLT in x64 Linux alt builds Should unblock https://github.com/rust-lang/rust/pull/131077 and also reduce our CI costs. It seems to run ~1.5h on the x64 larger runner (free runner runs out of disk space, sadly). Discussed [here](https://rust-lang.zulipchat.com/#narrow/channel/131828-t-compiler/topic/Utility.20of.20the.20.60dist-x86_64-linux-alt.60.20job/with/521324477). r? ``@marcoieni`` try-job: `dist-x86_64-linux*`
2025-06-04Rollup merge of #138699 - psumbera:solaris-ci-build3, r=marcoieniMatthias Krüger-169/+274
build dist for x86_64-pc-solaris and sparcv9-sun-solaris try-job: dist-sparcv9-solaris try-job: dist-x86_64-solaris try-job: dist-various-2 try-job: dist-x86_64-illumos
2025-06-03run `x check` on mingw-check-2onur-ozkan-0/+1
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-06-02Auto merge of #119899 - onur-ozkan:redesign-stage0-std, ↵bors-19/+48
r=albertlarsan68,jieyouxu,mark-simulacrum,kobzol,jyn514,Noratrieb,WaffleLapkin,RalfJung,bjorn3 redesign stage 0 std ### Summary **Blog post: https://blog.rust-lang.org/inside-rust/2025/05/29/redesigning-the-initial-bootstrap-sequence/** This PR changes how bootstrap builds the stage 1 compiler by switching to precompiled stage 0 standard library instead of building the in-tree one. The goal was to update bootstrap to use the beta standard library at stage 0 rather than compiling it from source (see the motivation at https://github.com/rust-lang/compiler-team/issues/619). Previously, to build a stage 1 compiler bootstrap followed this path: ``` download stage0 compiler -> build in-tree std -> compile stage1 compiler with in-tree std ``` With this PR, the new path is: ``` download stage0 compiler -> compile stage1 compiler with precompiled stage0 std ``` This also means that `cfg(bootstrap)`/`cfg(not(bootstrap))` is no longer needed for library development. ### Building "library" Since stage0 `std` is no longer in-tree `x build/test/check library --stage 0` is now no-op. The minimum supported stage to build `std` is now 1. For the same reason, default stage values in the library profile is no longer 0. Because building the in-tree library now requires a stage1 compiler, I highly recommend library developers to enable `download-rustc` to speed up compilation time. <hr> **Blog post: https://blog.rust-lang.org/inside-rust/2025/05/29/redesigning-the-initial-bootstrap-sequence/** If you encounter a bug or unexpected results please open a topic in the [#t-infra/bootstrap](https://rust-lang.zulipchat.com/#narrow/channel/326414-t-infra.2Fbootstrap) Zulip channel or create a [bootstrap issue](https://github.com/rust-lang/rust/issues/new?template=bootstrap.md). (Review thread: https://rust-lang.zulipchat.com/#narrow/channel/326414-t-infra.2Fbootstrap/topic/Review.20thread.3A.20stage.200.20redesign.20PR/with/508271433) ~~Blocked on https://github.com/rust-lang/rust/pull/122709~~ try-job: dist-x86_64-linux try-job: `x86_64-msvc*` try-job: `x86_64-apple-*` try-job: `aarch64-apple` try-job: x86_64-gnu try-job: `x86_64-gnu-llvm*`
2025-06-01Rollup merge of #141277 - RalfJung:miri-ci, r=oli-obkJacob Pratt-3/+3
Miri CI: test aarch64-apple-darwin in PRs instead of the x86_64 target The aarch64 target is more important, and also this ensures we cover all main architectures (x86_64, i686, aarch64) in PR CI.
2025-05-31Rollup merge of #141646 - jieyouxu:distcheck, r=Mark-SimulacrumMatthias Krüger-0/+12
Document what `distcheck` is intended to exercise Or at least attempt to. Closes rust-lang/rust#141387. cc `@marcoieni` (re. [#t-infra/bootstrap > Speed up distcheck](https://rust-lang.zulipchat.com/#narrow/channel/326414-t-infra.2Fbootstrap/topic/Speed.20up.20distcheck/with/520208870)) r? `@Mark-Simulacrum` (as you may have some clues about if this is accurate)
2025-05-30Do not run PGO/BOLT in x64 Linux alt buildsJakub Beránek-8/+28
Signed-off-by: Jakub Beránek <berykubik@gmail.com>
2025-05-30fix fs bug on CI and update ming-check-1 Dockerfileonur-ozkan-0/+1
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-05-30split `mingw-check` into twoonur-ozkan-19/+47
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-05-30use stage 1 for std on CIonur-ozkan-5/+5
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-05-30build dist for x86_64-pc-solaris and sparcv9-sun-solarisPetr Sumbera-169/+274
2025-05-29Rollup merge of #141705 - GuillaumeGomez:eslint-tidy, r=KobzolGuillaume Gomez-5/+10
Add eslint as part of `tidy` run Rustdoc uses `eslint` to run lints on the JS files. Currently you need to run it by hand since it's not part of any `x.py` command. This PR makes it part of `test tidy`. However, to prevent having all rust developers to install `npm` and `eslint`, I made it optional: if `eslint` is not installed, then the check is simply skipped (but will tell that it is being skipped). The second commit removes the manual checks from the docker file since `eslint` is run as part of tidy. cc `@lolbinarycat,` [#t-rustdoc > eslint seems to only be run in CI](https://rust-lang.zulipchat.com/#narrow/channel/266220-t-rustdoc/topic/eslint.20seems.20to.20only.20be.20run.20in.20CI/with/520761477)
2025-05-29Fix npm install errorGuillaume Gomez-3/+2
2025-05-29Centralize the eslint version between tidy and dockerGuillaume Gomez-1/+3
2025-05-29Install eslint in host-x86_64 DockerfileGuillaume Gomez-0/+7
2025-05-28Remove checks that are run with `tidy`Guillaume Gomez-3/+0
2025-05-28Auto merge of #141576 - marcoieni:pr-free-runners-aarch, r=Kobzolbors-2/+60
ci: move tests from x86_64-gnu-llvm-19 job to aarch64