about summary refs log tree commit diff
path: root/src/ci/docker
AgeCommit message (Collapse)AuthorLines
2019-10-31Rollup merge of #65274 - pietroalbini:ci-upload-toolstate, r=alexcrichtonMazdak Farrokhzad-3/+6
Upload toolstates.json to rust-lang-ci2 This PR does two things: * Following up with https://github.com/rust-lang/rust/pull/65202, it migrates deploying artifacts to CI in a script. Both uploading release artifacts and CPU stats were merged into the same script, designing it to be easily extended. * Uploads the toolstate JSON to `rust-lang-ci2` along with the release artifacts, both for Linux and Windows. This is needed because @RalfJung wants to stop shipping MIRI when its tests are failing, and the toolstate repo doesn't have entries for each commit. Having the toolstate data (just for that specific commit) on `rust-lang-ci2` will simplify the code a lot. r? @alexcrichton cc @RalfJung
2019-10-30ci: move toolstates.json to /tmp/toolstate/ and docker mount itPietro Albini-3/+6
Before this commit toolstates.json was stored in /tmp and it wasn't mounted outside the build container. That caused uploading the file in the upload-artifacts task to fail, as the file was missing on the host. Mounting /tmp/toolstates.json alone is not the best approach: if the file is missing when the container is started the Docker engine will create a *directory* named /tmp/toolstates.json. The Docker issue could be solved by pre-creating an empty file named /tmp/toolstates.json, but doing that could cause problems if bootstrap fails to generate the file and the toolstate scripts receive an empty JSON. The approach I took in this commit is to instead mount a /tmp/toolstate directory inside Docker, and create the toolstates.json file in it. That also required a small bootstrap change to ensure the directory is created if it's missing.
2019-10-26ci: add support for MIPS64 musl targetsWang Xuerui-0/+16
2019-10-21Remove `src/llvm-emscripten` submoduleAlex Crichton-1/+0
With #65251 landed there's no need to build two LLVM backends and ship them with rustc, every target we have now uses the same LLVM backend! This removes the `src/llvm-emscripten` submodule and additionally removes all support from rustbuild for building the emscripten LLVM backend. Multiple codegen backend support is left in place for now, and this is intended to be an easy 10-15 minute win on CI times by avoiding having to build LLVM twice.
2019-10-20Auto merge of #65302 - msizanoen1:fix-armv7-segfault, r=alexcrichtonbors-366/+511
Upgrade GCC to 8.3.0, glibc to 1.17.0 and crosstool-ng to 1.24.0 for dist-armv7-linux #62896 was caused by the usage of the GCC 5.2.0 toolchain, which was released back in 2015 and may have bugs affecting LLVM 9. This PR upgrade GCC to 8.3.0 from 5.2.0, glibc from 1.16.0 to 1.17.0 and crosstool-ng to 1.24.0 only for dist-armv7-linux. Fixes #62896 r? @alexcrichton
2019-10-16Remove PR runs, enable wasm32 CI, and move asmjs to disabledThomas Lively-0/+0
2019-10-16User should not change between emcc install and useThomas Lively-12/+6
2019-10-16Update test and add -O1 to wasm32 DockerfileThomas Lively-2/+3
2019-10-16Temporarily enable asmjs and wasm32 on PR CIThomas Lively-0/+0
2019-10-16Upgrade Emscripten targets to use upstream LLVM backendThomas Lively-116/+31
- Compatible with Emscripten 1.38.46-upstream or later upstream. - Refactors the Emscripten target spec to share code with other wasm targets. - Replaces the old incorrect wasm32 C call ABI with the correct one, preserving the old one as wasm32_bindgen_compat for wasm-bindgen compatibility. - Updates the varargs ABI used by Emscripten and deletes the old one. - Removes the obsolete wasm32-experimental-emscripten target. - Uses EMCC_CFLAGS on CI to avoid the timeout problems with #63649.
2019-10-16Mirror crosstool-ng on rust-lang-ci-mirrorsmsizanoen-1/+2
2019-10-13Fix path to crosstool-ng.shqtmlabs-1/+1
2019-10-12Add crosstool-ng 1.24.0 unzip dependencyqtmlabs-0/+1
2019-10-11Revert "Remove reference to Ubuntu 15.10 ARM toolchain"qtmlabs-3/+5
This reverts commit 4f97e5d41160e256c9d76d26432831ece83ef480.
2019-10-11Remove reference to Ubuntu 15.10 ARM toolchainqtmlabs-5/+3
2019-10-11Upgrade GCC to 8.3.0, glibc to 1.17.0 and crosstool-ng to 1.24.0 for ↵qtmlabs-366/+509
dist-armv7-linux
2019-10-05Revert "Auto merge of #63649 - tlively:emscripten-upstream-upgrade, ↵Tyler Mandry-26/+117
r=alexcrichton" This reverts commit 7870050796e5904a0fc85ecbe6fa6dde1cfe0c91, reversing changes made to 2e7244807a7878f6eca3eb7d97ae9b413aa49014.
2019-10-04Revert "Temporarily enable wasm32 CI"Thomas Lively-0/+0
2019-10-04Temporarily enable wasm32 CIThomas Lively-0/+0
2019-10-04Fix ABI, run and fix more tests, re-enable CI for PRsThomas Lively-4/+9
2019-10-04Upgrade Emscripten targets to use upstream LLVM backendThomas Lively-117/+21
- Refactors the Emscripten target spec to share code with other wasm targets. - Replaces the incorrect wasm32 C call ABI with the old asmjs version, which is correct for both wasm32 and JS. - Updates the varargs ABI used by Emscripten and deletes the old one. - Removes the obsolete wasm32-experimental-emscripten target. - Temporarily makes Emscripten targets use panic=abort by default because supporting unwinding will require an LLVM patch.
2019-09-29Use https for curl when building for linuxTyler Mandry-2/+4
2019-09-23Remove `--enable-extended` from cross dist builderAlex Crichton-1/+0
Shouldn't have an effect on produced artifacts and otherwise is causing issues where `-Zsave-analysis` is passed during tests but fails compilation.
2019-09-16azure: Disable more LLVM/debug assertions inAlex Crichton-0/+6
This commit disables LLVM/debug assertions in our 5 slowest builders: * i686-gnu * i686-gnu-nopt * i686-msvc-1 * i686-msvc-2 * x86_64-msvc-cargo This is reducing the amount of test coverage for LLVM/debug assertions, but we're just unfortunately running out of time on CI too many times. Some test builds have shown that i686-gnu drops nearly an hour of CI time by disabling these two assertions. Perhaps when we eventually get 4-core machines we can reenable these, but for now turn them off and hook them up to the tracking issue at #59637 which will ideally be repurposes to tracking all of these.
2019-08-23Auto merge of #63521 - newpavlov:redox_builder, r=pietroalbinibors-4/+2
Re-enable Redox builder (take 2) Closes: #63160
2019-08-21ci: move libc mirrors to the rust-lang-ci-mirrors bucketPietro Albini-1/+1
2019-08-17Merge branch 'master' into redox_builderArtyom Pavlov-60/+14
2019-08-15Use libunwind from llvm-project submodule for musl targetsMarco A L Barbosa-50/+2
2019-08-13Re-enable Redox builder (take 2)newpavlov-4/+2
2019-08-12ci: move mirrors to their standalone bucketPietro Albini-10/+12
Currently mirrors are stored in the rust-lang-ci2 S3 bucket along with CI toolchains. This is problematic for multiple reasons: - CI IAM credentials are allowed to both edit and delete those files. A malicious user gaining access to those credentials would be able to change our mirrored dependencies, possibly backdooring the compiler. - Contents of the rust-lang-ci2 bucket are disposable except for the mirrors' content. When we implement backups for S3 buckets we'd have to replicate just that part of the bucket, complicating the backup logic and increasing the chance of mistakes. A standalone bucket will be way easier to backup. This commit switches our CI to use the new rust-lang-ci-mirrors bucket.
2019-08-09Check links on all platforms when running locallyMateusz Mikuła-0/+3
2019-08-08remove test-miri flag from bootstrapRalf Jung-1/+0
2019-08-03ci: move .azure-pipelines to src/ci/azure-pipelinesPietro Albini-1/+2
2019-08-03Rollup merge of #63107 - adrian-budau:master, r=alexcrichtonMazdak Farrokhzad-6/+30
Added support for armv7-unknown-linux-gnueabi/musleabi Fixes #63101 Some things that are not done and I hope someone can help me with: * During the ci build of `armv7-unknown-linux-gnueabi` `openssl` must be built (to build cargo) but `openssl` does not yet support this target. This feels slightly like a chicken-and-egg problem, any feedback is welcome. * Should I add any tests for any of these targets?
2019-08-02Added support for armv7-unknown-linux-gnueabi and armv7-unknown-linux-musleabi.Adrian Budau-6/+30
Support for the targets in the compiler and std build in the CI.
2019-08-02Auto merge of #61393 - gnzlbg:update_libc, r=gnzlbgbors-1/+3
Update Cargo.lock
2019-08-01Temporarily disable the redox buildergnzlbg-1/+3
2019-08-01Rollup merge of #63191 - pietroalbini:really-fix-toolstate, r=alexcrichtonPietro Albini-0/+1
ci: fix toolstate not pushing data for Linux A recent commit modified toolstate to only push updated data when the `TOOLSTATE_PUBLISH` environment variable is present. This worked fine on Windows but failed on Linux, since Linux jobs run inside Docker containers and the variable wasn't forwarded inside it. This changes the Docker startup code to set the `TOOLSTATE_PUBLISH` enviornment variable inside the container if it's present outside. r? @alexcrichton fixes https://github.com/rust-lang/rust/issues/63190
2019-08-01ci: forward the TOOLSTATE_PUBLISH environment variable inside dockerPietro Albini-0/+1
A recent commit modified toolstate to only push updated data when the TOOLSTATE_PUBLISH environment variable is present. This worked fine on Windows but failed on Linux, since Linux jobs run inside Docker containers and the variable wasn't forwarded inside it. This changes the Docker startup code to set the TOOLSTATE_PUBLISH enviornment variable inside the container if it's present outside.
2019-07-28Rollup merge of #62759 - mark-i-m:rustc-guide-toolstate-check, r=kennytmMazdak Farrokhzad-5/+33
Actually add rustc-guide to toolstate, don't fail builds for the guide cc @ehuss r? @kennytm
2019-07-28Rollup merge of #62949 - mati865:patch-1, r=alexcrichtonMazdak Farrokhzad-4/+0
Re-enable assertions in PPC dist builder Fixes https://github.com/rust-lang/rust/issues/36150 Log of successful build: https://dev.azure.com/mati865/6518b167-4cf6-4587-b3d1-8e137f2fb2e4/_apis/build/builds/23/logs/825
2019-07-27Remove run-pass test suitesVadim Petrochenkov-2/+1
2019-07-26Rollup merge of #62970 - pietroalbini:fix-tools-builder, r=alexcrichtonMazdak Farrokhzad-1/+1
ci: gate toolstate repo pushes on the TOOLSTATE_PUBLISH envvar This PR fixes toolstate failing to push on the LinuxTools PR builder by gating the pushes on the new `TOOLSTATE_PUBLISH` environment variable, which is set on prod credentials but not on the PR ones. The old code checked whether the access token was set, but that doesn't work due to an Azure quirk. For a bit of background, secret environment variables are not available by default, but each step needs to explicitly declare which secret vars to load: ```yaml - bash: echo foo env: SECRET_VAR: $(SECRET_VAR) ``` This works fine when the variable is present but when it's missing, instead of setting `SECRET_VAR` to an empty string or just not setting it at all, Azure Pipelines puts the literal `$(SECRET_VAR)` as the content, which completly breaks the old check we had. I tried almost every thing to make this work in a sensible way, and the only conclusion I reached is to set the variable at the top level with the runtime expression evaluation syntax, which sets the variable to an empty string if missing: ```yaml # At the top: variables: - name: MAYBE_SECRET_VAR value: $[ variables.MAYBE_SECRET_VAR ] # In the step: - bash: echo foo env: SECRET_VAR: $(MAYBE_SECRET_VAR) ``` While that *could've worked* it was ugly and messy, so I just opted to add yet another non-secret variable. r? @alexcrichton fixes #62811
2019-07-25ci: gate toolstate repo pushes on the TOOLSTATE_PUBLISH envvarPietro Albini-1/+1
Unfortunately due to an Azure quirk the TOOLSTATE_REPO_ACCESS_TOKEN is not suitable to gate whether to push new commits to the repo, as if it's not defined on the Azure side it will actually be set to the literal `$(TOOLSTATE_REPO_ACCESS_TOKEN)`, which screws everything up. This instead adds another, non-secret environment variable to gate publishing: TOOLSTATE_PUBLISH. As non-secret environment variables behave correctly this fixes the issue.
2019-07-25Rollup merge of #62784 - Disasm:riscv32i, r=estebankMazdak Farrokhzad-0/+1
Add riscv32i-unknown-none-elf target This target is likely to be useful for constrained FPGA soft-cores, such as picorv32 and HeavyX.
2019-07-24Re-enable assertions in PPC dist builderMateusz Mikuła-4/+0
2019-07-23add back check for update prsMark Mansi-0/+1
2019-07-23more commentsRalf Jung-0/+1
2019-07-23more callback docsRalf Jung-4/+7
2019-07-23more comments for toolstate scriptsRalf Jung-3/+14