summary refs log tree commit diff
path: root/src/ci/docker
AgeCommit message (Collapse)AuthorLines
2024-03-16Rollup merge of #122401 - ChrisDenton:check-tier1, r=Mark-SimulacrumChris Denton-0/+4
Check library crates for all tier 1 targets in PR CI Let's try checking all tier 1 targets. Shouldn't take much time. Not sure if this is the right place to put it or not but let's see if it works first.
2024-03-15Rollup merge of #122563 - Kobzol:ci-pr-caching, r=Mark-SimulacrumMatthias Krüger-12/+29
CI: cache PR CI Docker builds An attempt to restore Docker caching for PR CI workflows that share the Docker image with an auto/try workflow. This was broken by my previous [PR](https://github.com/rust-lang/rust/pull/119290) that changed how we cache the Docker builds. [Before](https://github.com/rust-lang/rust/pull/122545): ![image](https://github.com/rust-lang/rust/assets/4539057/05e0d347-af64-4e85-bc99-0e4ac07192ec) After: ![image](https://github.com/rust-lang/rust/assets/4539057/2f657d60-b242-45eb-ac61-d8f71787edda) r? ``@ghost``
2024-03-15CI: cache PR CI Docker buildsJakub Beránek-12/+29
2024-03-15Build GCC with as many threads as availableGuillaume Gomez-3/+3
2024-03-15Greatly reduce GCC build logsGuillaume Gomez-7/+14
2024-03-14Add comments explaining tier 1 PR checksChris Denton-1/+3
2024-03-14Check all tier 1 targets in PR CIChris Denton-0/+2
2024-03-12Auto merge of #122170 - alexcrichton:rename-wasi-threads, r=petrochenkovbors-3/+3
Rename `wasm32-wasi-preview1-threads` to `wasm32-wasip1-threads` This commit renames the current `wasm32-wasi-preview1-threads` target to `wasm32-wasip1-threads`. The need for this rename is a bit unfortunate as the previous name was chosen in an attempt to be future-compatible with other WASI targets. Originally this target was proposed to be `wasm32-wasi-threads`, and that's what was originally implemented in wasi-sdk as well. After discussion though and with the plans for the upcoming component-model target (now named `wasm32-wasip2`) the "preview1" naming was chosen for the threads-based target. The WASI subgroup later decided that it was time to drop the "preview" terminology and recommends "pX" instead, hence previous PRs to add `wasm32-wasip2` and rename `wasm32-wasi` to `wasm32-wasip1`. So, with all that history, the "proper name" for this target is different than its current name, so one way or another a rename is required. This PR proposes renaming this target cold-turkey, unlike `wasm32-wasi` which is having a long transition period to change its name. The threads-based target is predicted to see only a fraction of the traffic of `wasm32-wasi` due to the unstable nature of the WASI threads proposal itself. While I was here I updated the in-tree documentation in the target spec file itself as most of the documentation was copied from the original WASI target and wasn't as applicable to this target. Also, as an aside, I can at least try to apologize for all the naming confusion here, but this is hopefully the last WASI-related rename.
2024-03-12Auto merge of #122036 - alexcrichton:test-wasm-with-wasi, r=oli-obkbors-3/+14
Test wasm32-wasip1 in CI, not wasm32-unknown-unknown This commit changes CI to no longer test the `wasm32-unknown-unknown` target and instead test the `wasm32-wasip1` target. There was some discussion of this in a [Zulip thread], and the motivations for this PR are: * Runtime failures on `wasm32-unknown-unknown` print nothing, meaning all you get is "something failed". In contrast `wasm32-wasip1` can print to stdout/stderr. * The unknown-unknown target is missing lots of pieces of libstd, and while `wasm32-wasip1` is also missing some pieces (e.g. threads) it's missing fewer pieces. This means that many more tests can be run. Overall my hope is to improve the debuggability of wasm failures on CI and ideally be a bit less of a maintenance burden. This commit specifically removes the testing of `wasm32-unknown-unknown` and replaces it with testing of `wasm32-wasip1`. Along the way there were a number of other archiectural changes made as well, including: * A new `target.*.runtool` option can now be specified in `config.toml` which is passed as `--runtool` to `compiletest`. This is used to reimplement execution of WebAssembly in a less-wasm-specific fashion. * The default value for `runtool` is an ambiently located WebAssembly runtime found on the system, if any. I've implemented logic for Wasmtime. * Existing testing support for `wasm32-unknown-unknown` and Emscripten has been removed. I'm not aware of Emscripten testing being run any time recently and otherwise `wasm32-wasip1` is in theory the focus now. * I've added a new `//@ needs-threads` directive for `compiletest` and classified a bunch of wasm-ignored tests as needing threads. In theory these tests can run on `wasm32-wasi-preview1-threads`, for example. * I've tried to audit all existing tests that are either `ignore-emscripten` or `ignore-wasm*`. Many now run on `wasm32-wasip1` due to being able to emit error messages, for example. Many are updated with comments as to why they can't run as well. * The `compiletest` output matching for `wasm32-wasip1` automatically uses "match a subset" mode implemented in `compiletest`. This is because WebAssembly runtimes often add extra information on failure, such as the `unreachable` instruction in `panic!`, which isn't able to be matched against the golden output from native platforms. * I've ported most existing `run-make` tests that use custom Node.js wrapper scripts to the new run-make-based-in-Rust infrastructure. To do this I added `wasmparser` as a dependency of `run-make-support` for the various wasm tests to use that parse wasm files. The one test that executed WebAssembly now uses `wasmtime`-the-CLI to execute the test instead. I have not ported over an exception-handling test as Wasmtime doesn't implement this yet. * I've updated the `test` crate to print out timing information for WASI targets as it can do that (gets a previously ignored test now passing). * The `test-various` image now builds a WASI sysroot for the WASI target and additionally downloads a fixed release of Wasmtime, currently the latest one at 18.0.2, and uses that for testing. [Zulip thread]: https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/Have.20wasm.20tests.20ever.20caused.20problems.20on.20CI.3F/near/424317944
2024-03-11Update test-various docker image to test `wasm32-wasip1`Alex Crichton-3/+14
Drop testing of `wasm32-unknown-unknown` and instead only test a WASI target which enables more debugging utilities such as printing.
2024-03-11Rename `wasm32-wasi-preview1-threads` to `wasm32-wasip1-threads`Alex Crichton-3/+3
This commit renames the current `wasm32-wasi-preview1-threads` target to `wasm32-wasip1-threads`. The need for this rename is a bit unfortunate as the previous name was chosen in an attempt to be future-compatible with other WASI targets. Originally this target was proposed to be `wasm32-wasi-threads`, and that's what was originally implemented in wasi-sdk as well. After discussion though and with the plans for the upcoming component-model target (now named `wasm32-wasip2`) the "preview1" naming was chosen for the threads-based target. The WASI subgroup later decided that it was time to drop the "preview" terminology and recommends "pX" instead, hence previous PRs to add `wasm32-wasip2` and rename `wasm32-wasi` to `wasm32-wasip1`. So, with all that history, the "proper name" for this target is different than its current name, so one way or another a rename is required. This PR proposes renaming this target cold-turkey, unlike `wasm32-wasi` which is having a long transition period to change its name. The threads-based target is predicted to see only a fraction of the traffic of `wasm32-wasi` due to the unstable nature of the WASI threads proposal itself. While I was here I updated the in-tree documentation in the target spec file itself as most of the documentation was copied from the original WASI target and wasn't as applicable to this target. Also, as an aside, I can at least try to apologize for all the naming confusion here, but this is hopefully the last WASI-related rename.
2024-03-11Bootstrap: Add argument for building llvm bitcode linkerKjetil Kjeka-1/+1
2024-03-10Auto merge of #122042 - GuillaumeGomez:subtree-update_cg_gcc_2024-03-05, ↵bors-7/+59
r=MarkSimulacrum Subtree update cg gcc 2024 03 05 Reopening of #121390. r? `@ghost`
2024-03-10Use full commit hash and remove `libgccjit.version` fileGuillaume Gomez-5/+2
2024-03-09Auto merge of #120985 - Kobzol:linux-update-host-llvm, r=Mark-Simulacrumbors-1/+1
Update host LLVM on x64 Linux to LLVM 18 Updates host LLVM on Linux to `18.1.0`.
2024-03-09Merge remote-tracking branch 'upstream/master' into HEADGuillaume Gomez-2/+4
2024-03-08Update host LLVM on x64 Linux to LLVM 18Jakub Beránek-1/+1
2024-03-07ci: add a runner for vanilla LLVM 18Josh Stone-0/+59
2024-03-06Build libgccjit for all CI testsuites using itGuillaume Gomez-4/+22
2024-03-06Build libgccjit in CIGuillaume Gomez-3/+40
2024-03-04Auto merge of #120468 - alexcrichton:start-wasm32-wasi-rename, r=wesleywiserbors-2/+4
Add a new `wasm32-wasip1` target to rustc This commit adds a new target called `wasm32-wasip1` to rustc. This new target is explained in these two MCPs: * https://github.com/rust-lang/compiler-team/issues/607 * https://github.com/rust-lang/compiler-team/issues/695 In short, the previous `wasm32-wasi` target is going to be renamed to `wasm32-wasip1` to better live alongside the [new `wasm32-wasip2` target](https://github.com/rust-lang/rust/pull/119616). This new target is added alongside the `wasm32-wasi` target and has the exact same definition as the previous target. This PR is effectively a rename of `wasm32-wasi` to `wasm32-wasip1`. Note, however, that as explained in rust-lang/compiler-team#695 the previous `wasm32-wasi` target is not being removed at this time. This change will reach stable Rust before even a warning about the rename will be printed. At this time this change is just the start where a new target is introduced and users can start migrating if they support only Nightly for example.
2024-03-02Promote OpenHarmony targets to tier 2Amanieu d'Antras-0/+110
MCP: rust-lang/compiler-team#719
2024-03-02Add a new `wasm32-wasip1` target to rustcAlex Crichton-2/+4
This commit adds a new target called `wasm32-wasip1` to rustc. This new target is explained in these two MCPs: * https://github.com/rust-lang/compiler-team/issues/607 * https://github.com/rust-lang/compiler-team/issues/695 In short, the previous `wasm32-wasi` target is going to be renamed to `wasm32-wasip1` to better live alongside the [new `wasm32-wasip2` target](https://github.com/rust-lang/rust/pull/119616). This new target is added alongside the `wasm32-wasi` target and has the exact same definition as the previous target. This PR is effectively a rename of `wasm32-wasi` to `wasm32-wasip1`. Note, however, that as explained in rust-lang/compiler-team#695 the previous `wasm32-wasi` target is not being removed at this time. This change will reach stable Rust before even a warning about the rename will be printed. At this time this change is just the start where a new target is introduced and users can start migrating if they support only Nightly for example.
2024-02-17Update cargoWeihang Lo-0/+2
perl-core is added for building OpenSSL v3 See https://github.com/openssl/openssl/blob/openssl-3.2.1/NOTES-PERL.md
2024-02-13`cargo update`clubby789-2/+2
2024-02-13Use system clang for wasm32_unknown_unknown on x86-gnu-integrationNikita Popov-0/+4
Fuchsia clang does not include the wasm32 target, so instead install and use system clang for this purpose.
2024-02-13Set wasm32_unknown_unknown compiler in test-variousNikita Popov-0/+1
2024-02-13Add missing riscv32imafc_unknown_none_elf env vars to dist-various-1Nikita Popov-0/+2
These are necessary now that compiler-builtins requires a working C compiler for riscv.
2024-02-11Gate PR CI on clippy correctness lintsJakub Beránek-5/+1
2024-02-09Print image input file and checksum in CI onlyDianQK-3/+4
2024-02-06Don't use bashism in checktools.shBen Kimock-1/+1
2024-01-31Auto merge of #120358 - tmandry:bump-fuchsia-8c-tests, r=Mark-Simulacrumbors-1/+5
Bump Fuchsia, build tests, and use 8 core bots - Build Fuchsia on 8 cores instead of 16 - Skip building cranelift for Fuchsia - Bump Fuchsia (includes building tests) This includes a change to the upstream build_fuchsia_from_rust_ci script that builds a minimal set of tests, to improve coverage on this builder. This would have caught https://github.com/rust-lang/rust-clippy/issues/11952 and #119593. See prior discussion on #119400 about building on 8 cores instead of 16. This PR combines changes from that and #119399, plus clean up. r? `@Mark-Simulacrum`
2024-01-28Print image input file and Docker versionJakub Beránek-0/+5
2024-01-26Bump Fuchsia (includes building tests)Tyler Mandry-1/+2
This includes a change to the upstream build_fuchsia_from_rust_ci script that builds a minimal set of tests, to improve coverage on this builder.
2024-01-26Skip building cranelift for FuchsiaTyler Mandry-0/+3
This refactors run.sh to never override an explicit $CODEGEN_BACKENDS if set in the build.
2024-01-22Cache CI Docker images in ghcr registryJakub Beránek-57/+52
2024-01-07Auto merge of #119556 - onur-ozkan:optimized-compiler-builtins, r=onur-ozkanbors-0/+3
Reland optimized-compiler-builtins config Copy of #102579 PR. From #102579: > No concerns on my side. Currently, Jyn isn't actively working on the project. I will close this PR; open another one to cherry-pick the commits, resolve conflicts, and then r+ it. > Fixes https://github.com/rust-lang/rust/issues/102560. Fixes https://github.com/rust-lang/rust/issues/101172. Helps with https://github.com/rust-lang/rust/issues/105065 (although there's some weirdness there - it's still broken when optimized-compiler-builtins is set to true). Fixes https://github.com/rust-lang/rust/issues/102560. Fixes https://github.com/rust-lang/rust/issues/101172. Helps with https://github.com/rust-lang/rust/issues/105065 r? ghost
2024-01-07add a new `optimized_compiler_builtins` optionjyn-0/+3
in particular, this makes the `c` feature for compiler-builtins an explicit opt-in, rather than silently detected by whether `llvm-project` is checked out on disk. exposing this is necessary because the `cc` crate doesn't support cross-compiling to MSVC, and we want people to be able to run `x check --target foo` regardless of whether they have a c toolchain available. this also uses the new option in CI, where we *do* want to optimize compiler_builtins. the new option is off by default for the `dev` channel and on otherwise.
2024-01-06Run Miri and mir-opt tests without a target linkerBen Kimock-2/+0
2023-12-29Enable profiler in dist-powerpc-linuxQiu Chaofan-1/+1
2023-12-25Auto merge of #119283 - GuillaumeGomez:warning-block-pos, r=notriddlebors-1/+1
Fix display of warning block if it is first element of the top doc block It fixes the display of the warning block "i" element in case it is the first element: ![Screenshot from 2023-12-23 11-15-48](https://github.com/rust-lang/rust/assets/3050060/99b6796e-2a09-4053-813e-84288ce76c4c) It now looks like this: ![image](https://github.com/rust-lang/rust/assets/3050060/306b4cf1-3a7d-4681-b0cf-3e721186bfe8) The update for the `browser-ui-test` framework is because it didn't detect correctly pseudo elements if they ended with a digit or a dash. r? `@notriddle`
2023-12-24Update browser-ui-test version to 0.16.11Guillaume Gomez-1/+1
2023-12-24allow devs to turn-off read-only modeonur-ozkan-1/+9
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2023-12-20if source is git, make /checkout dir safe for gitonur-ozkan-3/+12
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2023-12-18ci: docker: dist-various-1: Include RISC-V C compilersAlistair Francis-8/+30
The compiler-builtins for RISC-V are missing some key functions, such as __bswapsi2 [1]. We can't just pull in the LLVM compiler-rt builtins as the rust-lang/rust distribution container doesn't have a C compiler [2]. This patch adds RISC-V C compilers to the CI Dockerfile as the first step towards enabling LLVM compiler-rt builtins for RISC-V Rust. 1: https://github.com/rust-lang/compiler-builtins/issues/350 2: https://github.com/rust-lang/compiler-builtins/commit/e4f46b91ca843297fc065e20f1591e4971ae608c Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
2023-12-16test `x clippy --stage 0` in ciJoshua Nelson-0/+6
2023-12-12Rollup merge of #118445 - ferrocene:jp-support-reuse-in-submodules, ↵Matthias Krüger-1/+1
r=Mark-Simulacrum Let `reuse` look inside git submodules Changes `collect-license-metadata` and `generate-copyright` so they can now look at the git submodules. Unfortunately `reuse` chokes on the LLVM submodule - it finds the word "Copyright" or the unicode copyright symbol in all kinds of places, including UTF-8 test cases. The `reuse` tool expressly won't let you ignore folders, so we let it scan everything and then strip out the LLVM sub-folder in post. Instead, we add in a hand-curated list of copyright information gleaned by reading the LLVM codebase carefully, which is stored in `.reuse/dep5` in Debian format where `reuse` can find and use it. The `.reuse/dep5` continues to track copyright info for files in the tree that do not have SPDX metadata in them (i.e. all of them)
2023-12-07Build Fuchsia in CITyler Mandry-9/+135
2023-12-07Auto merge of #118463 - cuviper:restore-cg_gcc-ci, r=cuviper,GuillaumeGomezbors-7/+8
Re-enable `rustc_codegen_gcc` tests in CI When #117947 dropped llvm-15 from CI, we neglected to copy #117313's changes to enable `rustc_codegen_gcc` testing to the new base llvm-16. This is now restored, as well as copying the setup to llvm-17 as well so we hopefully won't miss it next time. In addition, due to case mismatch in `$extra_env` updates in `docker/run.sh`, I think it wasn't actually getting enabled before, but this should now be fixed. I also avoided the linker hack for `libgccjit.so` that was present before, because that's not needed if the version matches the base `gcc` used for linking. r? GuillaumeGomez
2023-12-05Add riscv32 imafc bare metal targetScott Mabin-0/+1
- riscv32imac-unknown-none-elf - Add platform support docs for rv32