about summary refs log tree commit diff
path: root/src/ci
AgeCommit message (Collapse)AuthorLines
2021-03-28ci: docker: x86_64: specify host explicitlyTom Eccles-1/+2
2021-03-28ci: docker: riscv64gc: specify host explicitlyTom Eccles-1/+1
2021-03-22Update the minimum external LLVM to 10Josh Stone-5/+5
2021-03-19Auto merge of #83201 - klensy:checkout-v2, r=pietroalbinibors-1/+1
use checkout@v2 in CI for master Updates CI workflow to use checkout@v2 from v1 (as other parts of CI) for master, plus slightly faster checkout as result compare v2 https://github.com/rust-lang-ci/rust/commit/2ccf06302c08d7d4911aad40e66a9a3ee731c6f9/checks/2113902859/logs and v1 logs https://github.com/rust-lang-ci/rust/commit/2ccf06302c08d7d4911aad40e66a9a3ee731c6f9/checks/2115229351/logs
2021-03-18Rollup merge of #83204 - jethrogb:jb/sgx-c-build, r=joshtriplett,raoulstrackxDylan DPC-20/+4
Simplify C compilation for Fortanix-SGX target cc ``@raoulstrackx``
2021-03-16Simplify C compilation for Fortanix-SGX targetJethro Beekman-20/+4
2021-03-16use checkout@v2klensy-1/+1
2021-03-16ci/docker: Add SDK/NDK level 21 to android docker for 32bit platformsDaniel Silverstone-0/+2
Certain features of Linux (getauxval() and epoll_create1()) are only available in android SDK/NDK levels 18 and 21 respectively. The 32bit platform is currently on level 14 for compatibility with Android 4.0. This patch adds SDK/NDK level 21 to the docker for 32 bit platforms, while leaving the default setup at level 14. With this done, projects such as `rustup` which rely on these dockers can build with modern ecosystem crates such as tokio 1.0, by using the level 21 toolchain, but those which do not need to switch will be unaffected, since the level 14 toolchain remains available. Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2021-03-04Auto merge of #82747 - JohnTitor:pin-es-check-version, r=Mark-Simulacrumbors-1/+2
Pin es-check version to prevent unrelated CI failures es-check v5.2.1 causes a lot of unrelated CI failures on mingw-check, e.g. https://github.com/rust-lang/rust/pull/80723#issuecomment-790294196. es-check v5.2.2 fixes it but let's pin its version to prevent further failures.
2021-03-04Auto merge of #81451 - nikic:llvm-12, r=nagisabors-9/+124
Upgrade to LLVM 12 This implements the necessary adjustments to make rustc work with LLVM 12. I didn't encounter any major issues so far. r? `@cuviper`
2021-03-04Pin es-check version to prevent unrelated CI failuresYuki Okushi-1/+2
2021-03-01Build cmake earlier on dist-x86_64-muslNikita Popov-3/+4
musl-toolchain.sh is called with REPLACE_CC=1, so it will replace the host compiler and the subsequent cmake build will fail because it cannot find the openssl headers. Move the cmake build earlier, so it happens before the compiler is replaced.
2021-03-01Build both Python 2 and Python 3 on x86 dist buildersNikita Popov-9/+14
Python 2 is needed for Clang 10, Python 3 for LLVM 12. The Python 2 dependency could be removed by upgrading to Clang 11, but that causes linker errors of unclear origin.
2021-03-01Build newer version of cmake in Docker imagesNikita Popov-0/+109
LLVM requires CMake 3.13.4, which is only available as of Ubuntu 20.04. On images using an older version, build it manually.
2021-03-01Update Docker to use the correct targetJakub Kulik-13/+26
2021-03-01Rollup merge of #82543 - klensy:skip-jobs, r=Mark-SimulacrumYuki Okushi-1/+1
fix env var name in CI There no `SKIP_JOBS` env var name, only `SKIP_JOB`.
2021-02-27Remove the x86_64-rumprun-netbsd targetSimonas Kazlauskas-33/+0
Closes #81514
2021-02-26fix env var nameklensy-1/+1
2021-02-22Auto merge of #79979 - GuillaumeGomez:rustdoc-gui-tests, r=Mark-Simulacrumbors-2/+22
Rustdoc gui tests This is a reopening of #70533. For this first version, there will be no screenshot comparison. Also, a big change compared to the previous version: the tests are now hosted in the rust repository directly. Since there is no image, it's pretty lightweight to say the least. So now, only remains the nodejs script to run the tests and the tests themselves. Just one thing is missing: where should I put the documentation for these tests? I'm not sure where would be the best place for that. The doc will contain important information like the documentation of the framework used and how to install it (`npm install browser-ui-test`, but still needs to be put somewhere so no one is lost). We'd also need to install the package when running the CI too. For now, it runs as long as we have nodejs installed, but I think we don't it to run in all nodejs targets? cc `@jyn514` r? `@Mark-Simulacrum`
2021-02-21Update CI scriptsGuillaume Gomez-2/+22
2021-02-17Add check for ES5 in CIGuillaume Gomez-1/+8
2021-02-13Auto merge of #81666 - hyd-dev:miri-windows-test-fail, r=Mark-Simulacrumbors-0/+1
Don't release Miri if its tests only failed on Windows Extends #66053 to Windows, so the released Miri won't be broken if its tests only fail on Windows. Relevant Zulip thread: https://rust-lang.zulipchat.com/#narrow/stream/269128-miri/topic/Miri.20is.20still.20available.20in.20rustup.20today.3F
2021-02-09ci: allow unstable features in some PGO benchmarksPietro Albini-2/+4
2021-02-07Auto merge of #81821 - nikic:update-wasm32, r=sanxiynbors-10/+4
Upgrade wasm32 image to Ubuntu 20.04 This switches the wasm32 image, which is used to test wasm32-unknown-emscripten, to Ubuntu 20.04. While at it, enable most of the excluded tests, as they seem to work fine with some minor fixes.
2021-02-06Upgrade wasm32 image to Ubuntu 20.04Nikita Popov-10/+4
This switches the wasm32 image, which is used to test wasm32-unknown-emscripten to Ubuntu 20.04. While at it, enable most of the excluded tests, as they seem to work fine with some minor fixes.
2021-02-05Don't release Miri if its tests only failed on Windowshyd-dev-0/+1
2021-02-05Fix `install-awscli.sh` error in CI.Mara Bos-1/+1
2021-02-04Auto merge of #81762 - pietroalbini:fix-install-msys2, r=m-ou-sebors-1/+3
CI: only copy python.exe to python3.exe if the latter does not exist We're copying the binary to make sure we can call `python3.exe` around, but it seems like the base image of GitHub Actions changed, copying the file before we do so. This PR changes the CI script to only copy the file if it doesn't already exist. r? `@m-ou-se` cc `@Mark-Simulacrum`
2021-02-04ci: only copy python.exe to python3.exe if the latter does not existPietro Albini-1/+3
We're copying the binary to make sure we can call python3.exe around, but it seems like the base image of GitHub Actions changed, copying the file before we do so. This commit changes the CI script to only copy the file if it doesn't already exist.
2021-02-03Auto merge of #81535 - nikic:update-test-various, r=sanxiynbors-2/+2
Update test-various to Ubuntu 20.04 The test command-setgroups.rs is adjusted to skip on musl, where `sysconf(_SC_NGROUPS_MAX)` always returns a dummy value of 32, even though the actual value is 65536. I'm not sure why this only became a problem now, as the information I found indicates that this value changed in kernel version 2.6.4, which is ages ago. I'm a bit unsure whether this one will go through, because I locally also saw a failure in std-backtrace.rs which went away on subsequent runs, and also had port assignment failures, but I think those might be on my side. I'm kind of curious how the code in https://github.com/rust-lang/rust/blob/b122908617436af187252572ed5db96850551380/library/std/src/net/test.rs#L43-L56 is supposed to work, as the directory names it checks don't seem to appear anywhere else. r? `@Mark-Simulacrum`
2021-02-02Auto merge of #81539 - nikic:update-armhf-gnu, r=sanxiynbors-21/+25
Update armhf-gnu to Ubuntu 20.04 This requires updating the used Linux kernel to avoid an assembler error, the used busybox version to avoid a linker error, the used rootfs to match the host version and the qemu flags to work with the newer version. r? `@Mark-Simulacrum`
2021-01-30Revert "Auto merge of #81489 - nikic:x86-64-dist-update, r=Mark-Simulacrum"Nikita Popov-15/+11
This reverts commit cb6787ae82d388045cdf6b5dc73787d828d91feb, reversing changes made to 0248c6f178ab3a4d2ec702b7d418ff8375ab0515.
2021-01-30Auto merge of #81521 - nikic:update-dist-various, r=Mark-Simulacrumbors-22/+20
Update dist-various to Ubuntu 20.04 This updates the dist-various-1 and dist-various-2 images to Ubuntu 20.04. This requires some adjustments: * `DEBIAN_FRONTEND=noninteractive` required for apt install. * `team-gcc-argm-embedded` PPA does not support focal. However, we can simply use the distro-provided `gcc-arm-none-eabi`. Per the comment, the PPA was only used to get a newer version. * rumprun has to be updated to avoid a linker error. * We need to build rumrun with `NOGCCERROR`, which disables use of `-Werror` and allows building with a newer compiler. * We need to install `libtinfo5`, which appears to be a dependency of the clang used during the fuchsia build. * We need to switch to `g++-8` rather than `g++-7`, as at least `g++-7-arm-linux-gnueabi` is not available on focal. * We need to upgrade to GCC 6.5 for the Solaris build, as GCC 6.4 does not support the newer libisl version. r? `@Mark-Simulacrum`
2021-01-30Update armhf-gnu to Ubuntu 20.04Nikita Popov-21/+25
This requires updating the used Linux kernel to avoid an assembler error, the used busybox version to avoid a linker error, the used rootfs to match the host version and the qemu flags to work with the newer version.
2021-01-29Update test-various to Ubuntu 20.04Nikita Popov-2/+2
The test command-setgroups.rs is adjusted to skip on musl, where `sysconf(_SC_NGROUPS_MAX)` always returns a dummy value of 32, even though the actual value is 65536. I'm not sure why this becomes relevant only now though, as this was apparently the case since kernel 2.6.4.
2021-01-29Update dist-various to Ubuntu 20.04Nikita Popov-22/+20
This updates the dist-various-1 and dist-various-2 images to Ubuntu 20.04. This requires some adjustments: * `DEBIAN_FRONTEND=noninteractive` required for apt install. * `team-gcc-argm-embedded` PPA does not support focal. However, we can simply use the distro-provided `gcc-arm-none-eabi`. Per the comment, the PPA was only used to get a newer version. * rumprun has to be updated to avoid a linker error. * We need to build rumrun with `NOGCCERROR`, which disables use of `-Werror` and allows building with a newer compiler. * We need to install `libtinfo5`, which appears to be a dependency of the clang used during the fuchsia build. * We need to switch to `g++-8` rather than `g++-7`, as at least `g++-7-arm-linux-gnueabi` is not available on focal. * We need to upgrade to GCC 6.5 for the Solaris build, as GCC 6.4 does not support the newer libisl version.
2021-01-28Update Python and Clang on x86 dist imagesNikita Popov-11/+15
LLVM 12 no longer builds with Python 2, so install Python 3 in preparatin. However, Clang 10 does not build with Python 3, so we need update to Clang 11 as well, which supports both. Unfortunately, doing so results in errors while linking the libLLVM.so into other binaries: > __morestack: invalid needed version 2 This is fixed by using LLD instead. Possibly this is due to a binutils linker bug, but updating to the latest binutils version does not fix it.
2021-01-25ci: use the monorepo's lockfile when building cargo for pgo profilingPietro Albini-0/+14
2021-01-20Work around missing -dev packages in solaris docker image.Mara Bos-5/+13
2021-01-14std: Update wasi-libc commit of the wasm32-wasi targetAlex Crichton-6/+4
This brings in an implementation of `current_dir` and `set_current_dir` (emulation in `wasi-libc`) as well as an updated version of finding relative paths. This also additionally updates clang to the latest release to build wasi-libc with.
2020-12-31Auto merge of #80435 - pietroalbini:compression-formats, r=Mark-Simulacrumbors-0/+5
Only produce .xz tarballs on CI This PR adds a `./configure` option to choose which tarball compression formats to produce, and changes our CI configuration to only produce `.xz` tarballs. The release process will then recompress everything into `.gz` when producing a release. This will drastically reduce our storage costs for CI artifacts, as we'd stop storing the same data twice. **Stable, beta and nightly releases will not be affected by this at all.** Before landing this we'll need to increase the VM size of our release process, to recompress everything in a reasonable amount of time. r? `@Mark-Simulacrum`
2020-12-29Remove `compile-fail` test suiteVadim Petrochenkov-1/+0
2020-12-29ci: stop producing gzip-compressed dist tarballsPietro Albini-0/+5
2020-12-22Utilize PGO for rustc linux dist buildsMark Rousskov-3/+53
This implements support for applying PGO to the rustc compilation step (not standard library or any tooling, including rustdoc). Expanding PGO to more tools is not terribly difficult but will involve more work and greater CI time commitment. For the same reason of avoiding greater time commitment, this currently avoids implementing for platforms outside of x86_64-unknown-linux-gnu, though in practice it should be quite simple to extend over time to more platforms. The initial implementation is intentionally minimal here to avoid too much work investment before we start seeing wins for a subset of Rust users. The choice of workloads to profile here is somewhat arbitrary, but the general rationale was to aim for a small set that largely avoided time regressions on perf.rust-lang.org's full suite of crates. The set chosen is libcore, cargo (and its dependencies), and a few ad-hoc stress tests from perf.rlo. The stress tests are arguably the most controversial, but they benefit those cases (avoiding regressions) and do not really remove wins from other benchmarks. The primary next step after this PR lands is to implement support for PGO in LLVM. It is unclear whether we can afford a full LLVM rebuild in CI, though, so the approach taken there may need to be more staggered. rustc-only PGO seems well affordable on linux at least, giving us up to 20% wall time wins on some crates for 15 minutes of extra CI time (1 hour up from 45 minutes). The PGO data is uploaded to allow others to reuse it if attempting to reproduce the CI build or potentially, in the future, on other platforms where an off-by-one strategy is used for dist builds at minimal performance cost.
2020-12-10ci: use 20.04 on x86_64-gnu-nopt builderDavid Wood-2/+3
This commit switches the x86_64-gnu-nopt builder to use Ubuntu 20.04, which contains a more recent gdb version than Ubuntu 16.04 (newer gdb versions fix a bug that Split DWARF can trigger, see rust-lang/rust#77177 for motivation). x86_64-gnu-nopt is chosen because it runs compare modes, which is how Split DWARF testing is implemented in rust-lang/rust#77177. Signed-off-by: David Wood <david@davidtw.co>
2020-11-27add enable-full-tools to freebsd builds to prevent occasional link errors ↵Sreehari S-1/+6
when compiling rust programs
2020-11-25Mirror centos vault to S3Mark Rousskov-3/+5
2020-11-22Drop support for cloudabi targetsLzu Tao-40/+0
2020-11-15Fixed missing / bad header when cross-compiling to i686DevJPM-1/+1
It seems that by default the 32-bit headers are not actually installed when installing development tooling. As we're using gcc headers, we need to install them as an extra package. See for reference: - https://stackoverflow.com/a/54082790 - https://askubuntu.com/a/106092 Also removed the now unused arm tooling
2020-11-15Applied LLVM 9 fixes to LLVM 9 PR CI DockerfileDevJPM-12/+3
Now with LLVM 9 being the minimum supported version, we can finally remove the hacks in the dockerfile. This wasn't in the main PR bumping the version as I didn't quite understand what's going on and needed here.