about summary refs log tree commit diff
path: root/src/ci
AgeCommit message (Collapse)AuthorLines
2020-05-11Configure cache domain for GHAMark Rousskov-0/+2
2020-05-08Use CDN for ci-caches on downloadMark Rousskov-4/+6
This will reduce costs, as well as lays the groundwork for developers to be able to locally pull the published docker images without needing AWS credentials.
2020-05-07Auto merge of #71995 - pietroalbini:ci-windows-detect-latest-python, ↵bors-2/+10
r=Mark-Simulacrum [CI] Use the latest Python available on Windows This PR changes our Windows CI to always use the latest Python interpreter available in the GHA tool cache instead of hardcoding Python 3.7.6. This is needed because occasionally GitHub bumps the installed version, deleting the previous one. This fixes the current GHA outage we're having. I fully expect the outage to propagate to Azure Pipelines in the coming days if we don't merge this, as both GHA and Azure use the same underlying image. Once the PR is merged we can re-enabled the double-gating. r? @Mark-Simulacrum
2020-05-07ci: use the latest python available on windowsPietro Albini-2/+10
This commit changes our Windows CI to always use the latest Python interpreter available in the GHA tool cache instead of hardcoding Python 3.7.6. This is needed because occasionally GitHub bumps the installed version, deleting the previous one.
2020-05-07Auto merge of #71649 - ecstatic-morse:ci-stage0-doc, r=Mark-Simulacrumbors-0/+1
Ensure that `./x.py doc --stage 0 src/libstd` works via CI This was split off from #71645, which recommends that users first try building `libstd` docs with the bootstrap `rustdoc`. This should work in most cases, but will fail if we start using a very recent `rustdoc` feature outside a `#[cfg(not(bootstrap))]`. It would be very nice to guarantee that `./x.py doc --stage 0 src/libstd` works, since it allows documentation changes to be rendered locally without needing to build the compiler. However, it may put too big a burden on `rustdoc` developers who presumably want to dogfood new features.
2020-04-30Turn of rustc-dev-guide toolstate for nowmark-1/+0
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-28Ensure that `./x.py doc --stage 0 src/libstd` works via CIDylan MacKenzie-0/+1
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