about summary refs log tree commit diff
path: root/src/ci
AgeCommit message (Collapse)AuthorLines
2020-04-29ci: use bash when executing the "bors build finished" jobsPietro Albini-0/+2
We don't clone the repository in those builders, so the default shell (src/ci/exec-with-shell.py) is not present there.
2020-04-28Auto merge of #71486 - alexcrichton:arm64-lld, r=Mark-Simulacrumbors-4/+4
Enable "full tools" option on ARM dist builders This commit switches the `--enable-extended` option on the arm-related dist builders to `--enable-full-tools`. This alias in `config.py` corresponds to enabling a few more options: * `rust.lld = true` - this is the main purpose of this PR, to enable LLD on ARM-related platforms. This means it will effectively unlock compilation of wasm programs from an arm host. * `rust.llvm-tools = true` - it turns out that this option is largely ignored in rustbuild today. This is only read in one location to set some flags for the `llvm-tools` package, but the `llvm-tools` package is already produced on all of these builders. It's predicted that this will have no effect on build times. * `rust.codegen-backends = ['llvm']` - historically this also enabled the emscripten backend, but that has long since been removed. This brings the ARM dist builders in line with the x86_64 dist builders using this flag. The hope is that the extra time spent on CI building LLD will acceptable because it's cached by `sccache`, LLD is a relatively small C++ project, and the dist builders are all clocking well under 3 hours (the slowest of all builders) around 2 hours. There's likely some possible cleanup that can happen with these configure options since it doesn't look like they've aged too too well, but I'm hopeful that possible refactorings, if necessary, could be deferred to future PRs.
2020-04-23Enable "full tools" option on ARM dist buildersAlex Crichton-4/+4
This commit switches the `--enable-extended` option on the arm-related dist builders to `--enable-full-tools`. This alias in `config.py` corresponds to enabling a few more options: * `rust.lld = true` - this is the main purpose of this PR, to enable LLD on ARM-related platforms. This means it will effectively unlock compilation of wasm programs from an arm host. * `rust.llvm-tools = true` - it turns out that this option is largely ignored in rustbuild today. This is only read in one location to set some flags for the `llvm-tools` package, but the `llvm-tools` package is already produced on all of these builders. It's predicted that this will have no effect on build times. * `rust.codegen-backends = ['llvm']` - historically this also enabled the emscripten backend, but that has long since been removed. This brings the ARM dist builders in line with the x86_64 dist builders using this flag. The hope is that the extra time spent on CI building LLD will acceptable because it's cached by `sccache`, LLD is a relatively small C++ project, and the dist builders are all clocking well under 3 hours (the slowest of all builders) around 2 hours. There's likely some possible cleanup that can happen with these configure options since it doesn't look like they've aged too too well, but I'm hopeful that possible refactorings, if necessary, could be deferred to future PRs.
2020-04-22ci: remove duplicated job names on GHAPietro Albini-65/+0
2020-04-22ci: set a default shell on GHAPietro Albini-37/+37
2020-04-14Update the minimum external LLVM to 8Josh Stone-8/+8
LLVM 8 was released on March 20, 2019, over a year ago.
2020-04-13Auto merge of #70989 - eddyb:mir-opt-32-pr-ci, r=Mark-Simulacrumbors-1/+18
ci: run mir-opt tests on PR CI also as 32-bit (for `EMIT_MIR_FOR_EACH_BIT_WIDTH`). Background: #69916 and [`src/test/mir-opt/README.md`](https://github.com/rust-lang/rust/blob/master/src/test/mir-opt/README.md): > By default 32 bit and 64 bit targets use the same dump files, which can be problematic in the presence of pointers in constants or other bit width dependent things. In that case you can add > > ``` > // EMIT_MIR_FOR_EACH_BIT_WIDTH > ``` > > to your test, causing separate files to be generated for 32bit and 64bit systems. However, if you change the output of such a test (intentionally or not), or if you add a test and it varies between 32-bit and 64-bit platforms, you have to run this command (for a x64 linux host): `./x.py test --stage 1 --target x86_64-unknown-linux-gnu --target i686-unknown-linux-gnu --bless src/test/mir-opt` Otherwise, bors trying to merge the PR will fail, since we test 32-bit targets there. But we don't on PR CI, which means there's no way the PR author would know (unless they were burnt by this already and know what to look for). This PR resolves that by running `mir-opt` tests for ~~`i686-unknown-linux-gnu`~~, on PR CI. **EDIT**: switched to `armv5te-unknown-linux-gnueabi` to work around LLVM 7 crashes (see https://github.com/rust-lang/compiler-builtins/pull/311#issuecomment-612270089), found during testing. cc @rust-lang/wg-mir-opt @rust-lang/infra
2020-04-11ci: run mir-opt tests on PR CI also as 32-bit (for ↵Eduard-Mihai Burtescu-1/+18
`EMIT_MIR_FOR_EACH_BIT_WIDTH`).
2020-04-10Auto merge of #66605 - GuillaumeGomez:drop-python2, r=Mark-Simulacrumbors-97/+108
Stop explicitly depending on python 2 This PR revises our previous policy of officially only supporting and testing with python 2 in the CI environment to instead test with python 3. It also changes the defaults to python 3 in our various scripts (usually, by way of `python` rather than `python3` to preserve compatibility with systems that do not have a python 3 available). The effect of this is that we expect all new patches to support python 3 (and will test as such). We explicitly also expect that patches support python 2.7 as well -- and test as such, though only on one builder. This is intended as a temporary, though likely long-lived, measure to preserve compatibility while looking towards the future which is likely to be a python 3 only world. We do not at this point set a timeline for when we'll drop support for python 2.7; it's plausible that this is months or years into the future, depending on how quickly the ecosystem drops support and how painful it is for us to maintain that support over time. Closes #65063 (as far as I can tell; please file explicit and separate issues or PRs if not).
2020-04-10Enforce Python 3 as much as possibleGuillaume Gomez-97/+108
2020-04-10Auto merge of #70619 - etherealist:musl_lld, r=Mark-Simulacrumbors-0/+1
Enable rust-lld on dist-x86_64-musl Add rust-lld to rustup llvm-tools-preview on nightly for musl I am using a musl distro on my workstation, with `RUSTFLAGS="-C target-feature=-crt-static"` this works fine. I know that `x86_64-unknown-linux-musl` was originally only meant as a target and not as a host. But most problems have been fixed, and I have fewer problems with `unknown` (rustup) than when I am using `x86_64-alpine-linux-musl` (rust installed by the distro). The only thing I am missing is rust-lld in llvm-tools-preview on nightly. I needed rust-lld for a wasm tutorial. I built rust-lld and tested it with that tutorial, and it worked well. I asked [here](https://users.rust-lang.org/t/enable-rust-lld-on-x86-64-unknown-linux-musl/39851) where to request to enable lld and ended up doing this PR. I compared llvm-tools-preview `nightly-x86_64-unknown-linux-musl` and `nightly-x86_64-unknown-linux-gnu`: only rust-lld is missing in musl. I tested the change using: ```bash ./src/ci/docker/run.sh dist-x86_64-musl ``` And I checked that the resulting rust-lld binary runs.
2020-04-06ci: move /var/lib/docker to /mnt on GHAPietro Albini-0/+6
There are some builders that are running out of disk space while building the Docker images, such as arm-android. This moves and symlinks /var/lib/docker to the /mnt partition on Linux GHA.
2020-04-04Auto merge of #69898 - spastorino:rename-rustc-guide2, r=Xanewokbors-1/+1
Move rustc-guide submodule to rustc-dev-guide r? @pietroalbini
2020-04-03Rollup merge of #68334 - andre-richter:master, r=japaricMazdak Farrokhzad-0/+15
AArch64 bare-metal targets: Build rust-std This PR complements https://github.com/rust-lang/rust/pull/68253
2020-04-02Auto merge of #70628 - pietroalbini:gha-multiple-tries, r=Mark-Simulacrumbors-0/+1
GHA: enable running multiple try builds at the same time While for auto, try and PR builds we only want the latest commit to be tested, that's not true for try builds: each commit pushed to the branch is a different PR being tested, and we want multiple PRs to be tested in parallel if there is enough demand. Fixes #70569
2020-03-31ci: disable cancel-outdated-builds for the try branchPietro Albini-0/+1
While for auto, try and PR builds we only want the latest commit to be tested, that's not true for try builds: each commit pushed to the branch is a different PR being tested, and we want multiple PRs to be tested in parallel if there is enough demand. Fixes #70569
2020-03-31Enable rust-lld on dist-x86_64-muslDavid Sonder-0/+1
Add rust-lld to llvm-tools-preview on nightly for musl
2020-03-30Deduplicate crosstool-ng.shBen Wolsieffer-30/+6
2020-03-25Upgrade GCC to 8.3.0, glibc to 2.17.0 and crosstool-ng to 1.24.0 for ↵Ben Wolsieffer-739/+1055
dist-arm-linux and dist-armhf-linux
2020-03-24Move rustc-guide submodule to rustc-dev-guideSantiago Pastorino-1/+1
2020-03-24ci: add notice on top of the azure pipelines configurationPietro Albini-0/+55
This will inform contributors tweaking the Azure Pipelines configuration that they also need to tweak the GitHub Actions setup.
2020-03-24ci: run the "bors build finished" jobs only during try and auto runsPietro Albini-2/+4
2020-03-24ci: move the whole workspace directory on gha/linuxPietro Albini-1/+9
Moving just the `obj` directory created problems with mountpoints and Docker containers, so this tries to symlink the parent directory.
2020-03-24ci: run gha workflows for try, auto and master on the forkPietro Albini-3/+3
2020-03-24ci: fix out of disk space errors on linux GHAPietro Albini-4/+8
The /mnt mount point has 53GB of free disk space at the time of writing this commit, so this moves the build there to avoid running out of disk space during builds.
2020-03-24ci: don't move the build to C: on GitHub ActionsPietro Albini-1/+1
On Azure Pipeliones, the C: filesystem is huge with a lot of free space, while D: is small. By default builds happened in D:, so we added a script to symlink the big directories to C:, granting us more space. Filesystem Size Used Avail Use% C: 256G 143G 114G 56% D: 14G 2.0G 13G 15% On GitHub Actions instead C: is almost full, and we have a lot of free space on D:, where the build happens. Filesystem Size Used Avail Use% C: 128G 114G 15G 89% D: 56G 4.8G 52G 9% This commit stops creating the symlink on GitHub Actions, fixing the out of disk space errors we were seeing on some Windows builders.
2020-03-24ci: add github actions configurationPietro Albini-11/+756
2020-03-24ci: rename script windows-symlink-build-dir to symlink-build-dirPietro Albini-2/+2
There will be a need to symlink the Linux build directory in the future as well, so let's make the script name generic.
2020-03-24ci: fix azure pipeline specific code in install-awscliPietro Albini-1/+1
2020-03-24Auto merge of #69894 - vtbassmatt:master, r=nellshamrellbors-23/+36
establish immutable source for RUST_CONFIGURE_ARGS fixes https://github.com/rust-lang/rust/issues/68671
2020-03-23Rollup merge of #70159 - alexcrichton:update-wasi, r=pietroalbiniMazdak Farrokhzad-1/+1
Update the bundled wasi-libc with libstd Brings in WebAssembly/wasi-libc#184 which can help standalone programs with environment variables!
2020-03-21Rollup merge of #70054 - rojamd:android-pgo, r=michaelwoeristerMazdak Farrokhzad-0/+1
Build dist-android with --enable-profiler This will make the runtime available to enable PGO for Rust code in Firefox on Android. r? @michaelwoerister
2020-03-20compat with macOS's ancient BashMatt Cooper-2/+8
2020-03-19Update the bundled wasi-libc with libstdAlex Crichton-1/+1
Brings in WebAssembly/wasi-libc#184 which can help standalone programs with environment variables!
2020-03-18ci: use python from the correct pathPietro Albini-2/+3
Apparently the old path we were using for Python 2 on Windows was not documented, and eventually got removed. This switches our CI to use the correct path.
2020-03-17Rollup merge of #69688 - JohnTitor:move-tidy, r=Mark-SimulacrumMazdak Farrokhzad-1/+2
Move tidy check to mingw-check Fixes #69613
2020-03-16Build dist-android with --enable-profilerrojamd-0/+1
2020-03-16Rollup merge of #69964 - ollie27:ci_nodejs, r=Mark-Simulacrum,GuillaumeGomezDylan DPC-1/+2
Add Node.js to PR CI image This should allow the `rustdoc-js` and `rustdoc-js-std` test suites to run automatically on PRs.
2020-03-13fix a glaring typoMatt Cooper-1/+1
2020-03-12Add Node.js to PR CI imageOliver Middleton-1/+2
This should allow the `rustdoc-js` and `rustdoc-js-std` test suites to run automatically on PRs.
2020-03-12Rollup merge of #69705 - ehuss:toolstate-remove-redundant-beta, ↵Mazdak Farrokhzad-1/+3
r=Mark-Simulacrum Toolstate: remove redundant beta-week check. I made a bit of a mistake in #69624. The "beta regression" doesn't need to be checked twice. I also rolled up #69693 to avoid merge conflicts.
2020-03-10fix how we detect an unset variableMatt Cooper-1/+1
2020-03-10establish immutable source for RUST_CONFIGURE_ARGSMatt Cooper-23/+30
2020-03-06fix various typosMatthias Krüger-1/+1
2020-03-05Move tidy check to mingw-checkYuki Okushi-1/+2
2020-03-04more toolstate commentsRalf Jung-1/+3
2020-02-28AArch64 bare-metal targets: Build rust-stdAndre Richter-0/+15
This patch enables building of rust-std for the aarch64 bare-metal targets. For the compiler intrinsics, it fetches the AArch64 bare-metal target (aarch64-none-elf) GCC for the A-profile provided by ARM itself from https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads
2020-02-19Rollup merge of #68863 - pietroalbini:azure-macos-10.15, r=Mark-SimulacrumDylan DPC-22/+3
ci: switch macOS builders to 10.15 Azure Pipelines is deprecating the macOS 10.13 image we're currently running, [and they plan to remove them](https://devblogs.microsoft.com/devops/removing-older-images-in-azure-pipelines-hosted-pools/) on March 23, 2020. This PR switches our macOS builders to macOS 10.15. r? @Mark-Simulacrum
2020-02-18Clean out some default-installed directoriesMark Rousskov-0/+19
This helps us have enough disk space for our builders to be able to complete successfully. For now, the choices are ad-hoc and 'definitely not needed'. This should never fail the build, as everything our build needs should be inside Docker.
2020-02-17ci: switch macOS builders to 10.15Pietro Albini-22/+3