summary refs log tree commit diff
path: root/src/ci
AgeCommit message (Collapse)AuthorLines
2024-04-28Prepare 1.78 releaseMark Rousskov-1/+1
2024-03-28Update ninja on WindowsNilstrieb-1/+1
Errors started showing up, and I read somewhere that this might be because of old ninja versions. This ninja version is indeed *ancient*. ``` multiple outputs aren't (yet?) supported by depslog; bring this up on the mailing list if it affects you ``` (cherry picked from commit b546764cbef7ac449cbad86636b4ca8daa9f5ef6)
2024-03-17Bump CI channel to betaMark Rousskov-1/+1
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 #112268 - lqd:osx-1cgu, r=Kobzolbors-1/+1
Build `rustc` with 1CGU on `x86_64-apple-darwin` Distribute `x86_64-apple-darwin` artifacts built with `rust.codegen-units=1`, like we already do on Linux. 1) effect on code size on `x86_64-apple-darwin`: it's a 11.14% reduction on `librustc_driver.dylib` - before, [`41d97c8a5dea2731b0e56fe97cd7cb79e21cff79`](https://ci-artifacts.rust-lang.org/rustc-builds/41d97c8a5dea2731b0e56fe97cd7cb79e21cff79/rustc-nightly-x86_64-apple-darwin.tar.xz): 161232048 - after, [`7549dbdc09f0c4f6cc84002ac03081828054784b`](https://ci-artifacts.rust-lang.org/rustc-builds/7549dbdc09f0c4f6cc84002ac03081828054784b/rustc-nightly-x86_64-apple-darwin.tar.xz): 143256928 2) time it took on CI: - the [first `try` build](https://github.com/rust-lang-ci/rust/actions/runs/8155512915/job/22291187124) took: 1h 33m - the [second `try` build](https://github.com/rust-lang-ci/rust/actions/runs/8157057880/job/22295839911) took: 1h 45m 3) most recent perf results on (a noisy) x64 mac are [here](https://github.com/rust-lang/rust/pull/112268#issuecomment-1575635073). Related tracking issue for build configuration: #103595
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-11Auto merge of #112267 - lqd:win-1cgu, r=Kobzolbors-0/+1
Build `rustc` with 1CGU on `x86_64-pc-windows-msvc` Distribute `x86_64-pc-windows-msvc` artifacts built with `rust.codegen-units=1`, like we already do on Linux. 1) effect on code size on `x86_64-pc-windows-msvc`: it's a 3.67% reduction on `rustc_driver.dll` - before, [`41d97c8a5dea2731b0e56fe97cd7cb79e21cff79`](https://ci-artifacts.rust-lang.org/rustc-builds/41d97c8a5dea2731b0e56fe97cd7cb79e21cff79/rustc-nightly-x86_64-pc-windows-msvc.tar.xz): 137605632 - after, [`704aaa875e4acccc973cbe4579e66afbac425691`](https://ci-artifacts.rust-lang.org/rustc-builds/704aaa875e4acccc973cbe4579e66afbac425691/rustc-nightly-x86_64-pc-windows-msvc.tar.xz): 132551680 2) time it took on CI - the [first `try` build](https://github.com/rust-lang-ci/rust/actions/runs/8155647651/job/22291592507) took: 1h 31m - the [second `try` build](https://github.com/rust-lang-ci/rust/actions/runs/8157043594/job/22295790552) took: 1h 32m 3) most recent perf results: - on a slightly noisy desktop [here](https://github.com/rust-lang/rust/pull/112267#issuecomment-1575758155) - ChrisDenton's results [here](https://github.com/rust-lang/rust/pull/112267#issuecomment-1583295338) Related tracking issue for build configuration: #103595
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-10Rollup merge of #122125 - majaha:mingw_ci_new, r=Mark-SimulacrumMatthias Krüger-6/+8
Revert back to Git-for-Windows for MinGW CI builds Following discussion in https://github.com/rust-lang/rust/pull/121182 it was decided to revert using MSYS2 Git for mingw builds.
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/+64
2024-03-07Revert back to Git-for-Windows for MinGW CI buildsMatt Harding-6/+8
In https://github.com/rust-lang/rust/pull/121182 the mingw build was changed to use MSYS2's version of Git. This commit reverts that, as it was considered too slow.
2024-03-06Build libgccjit for all CI testsuites using itGuillaume Gomez-4/+22
2024-03-06Build libgccjit in CIGuillaume Gomez-3/+40
2024-03-05build rustc with 1CGU on x86_64-pc-windows-msvcRémy Rakic-0/+1
2024-03-05build rustc with 1CGU on x86_64-apple-darwinRémy Rakic-1/+1
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/+113
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-25Auto merge of #121182 - majaha:mingw_ci_new, r=Mark-Simulacrumbors-15/+63
Improvements to building and CI for mingw/msys I was getting error messages when trying to follow the build instructions the mingw build for Rust, and managed to track the issue down to an incomparability of Rust's bootstrap program with MSYS2's version of git. Essentially, the problem is that MSYS2's git works in emulated unix-y paths, but bootstrap expects a Windows path. I found a workaround for this by using relative paths instead of absolute paths. Along with that fix, this PR also updates the build instructions for MinGW to be compatible with modern versions of MSYS2, and some changes to CI to make sure that MSYS2's version of git is tested. In particular, I'm suggesting using the [MSYS2 github action](https://github.com/marketplace/actions/setup-msys2) specially made for this purpose, which is much less hacky than the old approach and gives us more control of what packages are installed. I also cleaned up as many alternate versions of key tools as I could find from PATH, to avoid accidental usage, and cleaned up some abuses of the `CUSTOM_MINGW` environment variable. This fixes https://github.com/rust-lang/rust/issues/105696 and fixes https://github.com/rust-lang/rust/issues/117567
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-16Changes to CI related to mingw and MSYSMatt Harding-15/+63
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-10Require that SELECT_XCODE is set.Eric Huss-3/+1
Allowing the Xcode version to "float" based on whatever default GitHub selects creates an unreliable environment. When GitHub changes the default, we can have multiple jobs in the same run using different versions as it rolls out across machines. It can also cause oscillation between runs as different machines are used. It also causes unpredictable timing when the updates happen. This change helps ensure that the version that is used is pinned. The downside is that it requires manually bumping the version, and the risk that if we take too long, older Xcodes will be removed and that will break the build.
2024-02-10Downgrade Xcode from the default (15.0) to 14.3.1.Eric Huss-4/+5
This seems to fix two sporadic errors that have been appearing in CI. One is an issue with cmake being unable to verify that cmake is able to build a simple test program. The other is a `invalid r_symbolnum` linking error when trying to build one of cranelift's tests. This is intended as a temporary fix until we can figure out how to resolve those issues.
2024-02-09Print image input file and checksum in CI onlyDianQK-3/+4
2024-02-07Rollup merge of #120726 - saethlin:no-bashism, r=Mark-SimulacrumGuillaume Boisseau-1/+1
Don't use bashism in checktools.sh `if [[` doesn't work because this is a `/bin/sh` script. We were never running the success side of this `if` at all.
2024-02-06Don't use bashism in checktools.shBen Kimock-1/+1
2024-02-04Use new publicly-available M1 runnersJake Goulding-1/+1
https://github.blog/changelog/2024-01-30-github-actions-introducing-the-new-m1-macos-runner-available-to-open-source/
2024-02-04Re-enable M1 runners on GitHub ActionsJake Goulding-14/+22
This reverts commit 0f9844d10cc8210f1c0ef784ef8d67a1e073c3c1.
2024-01-31CI: Use ninja on apple buildersEric Huss-4/+5
2024-01-31Auto merge of #120358 - tmandry:bump-fuchsia-8c-tests, r=Mark-Simulacrumbors-5/+11
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