about summary refs log tree commit diff
path: root/src/ci/docker
AgeCommit message (Collapse)AuthorLines
2018-07-09bump minimum LLVM version to 5.0gnzlbg-2/+2
2018-07-08Remove the comment line that harmed.Hideki Sekine-1/+0
2018-07-08Tweak to run test for thumbv7m target.Hideki Sekine-18/+20
2018-07-08Create Dockerfile based on dist-various-1.Hideki Sekine-0/+127
2018-07-05Update musl to 1.1.19 and add patch to fix tls issueMarco A L Barbosa-1/+7
2018-07-03Fix the tool's path in toolstate verification.kennytm-4/+4
This ensure we do block the tools when they are broken during an update.
2018-06-15Fix checkregression breakage of toolstate builder on AppVeyor.kennytm-1/+1
2018-06-10Do not push a commit if the toolstate is unchanged.kennytm-12/+27
This should greatly reduce the commits on the rust-toolstate repository. `publish_toolstate.py` defaults to keep the old status if a new one is not found, so nothing needs to be changed to that file.
2018-06-08Use public DNS server instead of 169.254.169.254 on CI.kennytm-0/+4
Tries to workaround travis-ci/travis-ci#9696.
2018-05-18armebv7r-none-eabihf: default to ARM modePaolo Teti-1/+1
- remove +thumb2 that has not effect - remove -mthumb Tested on TMS570LS3137
2018-05-16Add target for Big-endian ARM Cortex-R4F/R5F MCUsPaolo Teti-0/+36
The ARM Real-Time (‘R’) profile provides high-performing processors for safety-critical environments.
2018-05-15Rollup merge of #50685 - glaubitz:sparc64-linux, r=alexcrichtonGuillaume Gomez-0/+26
ci: Add Dockerfile for dist-sparc64-linux This addresses https://github.com/rust-lang/rust/issues/47903.
2018-05-15ci: Add Dockerfile for dist-sparc64-linuxJohn Paul Adrian Glaubitz-0/+26
2018-05-14Migrate the toolstate update bot to rust-highfivekennytm-1/+1
2018-05-13Auto merge of #50573 - oli-obk:tool_sanity, r=kennytmbors-11/+33
Don't require clippy/miri for beta r? @kennytm cc @alexcrichton I'm trying this out locally atm to see if it works as I think it should. Not sure how to test it for real except wait for the next beta. fixes #50557
2018-05-10Rollup merge of #50606 - kennytm:retry-docker-cache, r=alexcrichtonAlex Crichton-1/+3
Retry when downloading the Docker cache. As a safety measure, prevent spuriously needing to rebuild the docker image in case the network was reset while downloading. Also, adjusted the retry function to insert a sleep between retries, because retrying immediately will often just hit the same issue.
2018-05-10Retry when downloading the Docker cache.kennytm-1/+3
Prevent spuriously needing to rebuild the docker image when the network was down. Also, adjusted the retry function to insert a sleep between retries, because retrying immediately will often just hit the same issue.
2018-05-09ci: Compile LLVM with Clang 6.0.0Alex Crichton-301/+114
Currently on CI we predominately compile LLVM with the default system compiler which means gcc on Linux, some version of Clang on OSX, MSVC on Windows, and gcc on MinGW. This commit switches Linux, OSX, and Windows to all use Clang 6.0.0 to build LLVM (aka the C/C++ compiler as part of the bootstrap). This looks to generate faster code according to #49879 which translates to a faster rustc (as LLVM internally is faster) The major changes here were to the containers that build Linux releases, basically adding a new step that uses the previous gcc 4.8 compiler to compile the next Clang 6.0.0 compiler. Otherwise the OSX and Windows scripts have been updated to download precompiled versions of Clang 6 and configure the build to use them. Note that `cc` was updated here to fix using `clang-cl` with `cc-rs` on MSVC, as well as an update to `sccache` on Windows which was needed to correctly work with `clang-cl`. Finally the MinGW compiler is entirely left out here intentionally as it's currently thought that Clang can't generate C++ code for MinGW and we need to use gcc, but this should be verified eventually.
2018-05-09Document the checktools scriptOliver Schneider-0/+7
2018-05-09Don't require clippy/miri for betaOliver Schneider-11/+26
2018-05-05Auto merge of #50444 - michaelwoerister:check-parallel-queries-in-ci, ↵bors-1/+2
r=alexcrichton Add a CI job that makes sure rustc builds with parallel queries enabled. This shouldn't take up too much CI time `:)` cc https://github.com/rust-lang/rust/issues/48607 cc @Zoxc r? @alexcrichton
2018-05-04Merge armv5te musl container with dist-various-1Harm Berntsen-48/+9
2018-05-04Add eabi suffix to armv5te musl targetHarm Berntsen-3/+3
2018-05-04Check that rustc can be built successfully with parallel queries for PRs.Michael Woerister-1/+2
2018-05-03Add armv5te-unknown-linux-musl targetHarm Berntsen-0/+47
2018-04-23Fix the miri toolOliver Schneider-1/+1
2018-04-16Auto merge of #49488 - alexcrichton:small-wasm-panic, r=sfacklerbors-0/+6
std: Minimize size of panicking on wasm This commit applies a few code size optimizations for the wasm target to the standard library, namely around panics. We notably know that in most configurations it's impossible for us to print anything in wasm32-unknown-unknown so we can skip larger portions of panicking that are otherwise simply informative. This allows us to get quite a nice size reduction. Finally we can also tweak where the allocation happens for the `Box<Any>` that we panic with. By only allocating once unwinding starts we can reduce the size of a panicking wasm module from 44k to 350 bytes.
2018-04-14Rollup merge of #49866 - Mark-Simulacrum:pr-travis-windows, r=alexcrichtonkennytm-0/+22
Cross-compile builder to Windows for PRs on Travis I chose a completely arbitrary windows target here (I have no idea what's best, we could do multiple -- they are relatively fast).
2018-04-13std: Minimize size of panicking on wasmAlex Crichton-0/+6
This commit applies a few code size optimizations for the wasm target to the standard library, namely around panics. We notably know that in most configurations it's impossible for us to print anything in wasm32-unknown-unknown so we can skip larger portions of panicking that are otherwise simply informative. This allows us to get quite a nice size reduction. Finally we can also tweak where the allocation happens for the `Box<Any>` that we panic with. By only allocating once unwinding starts we can reduce the size of a panicking wasm module from 44k to 350 bytes.
2018-04-12Add check builder for Windows to TravisMark Simulacrum-0/+22
2018-04-12Auto merge of #49698 - SimonSapin:unicode-for-everyone, r=alexcrichtonbors-1/+0
Merge the std_unicode crate into the core crate [The standard library facade](https://github.com/rust-lang/rust/issues/27783) has historically contained a number of crates with different roles, but that number has decreased over time. `rand` and `libc` have moved to crates.io, and [`collections` was merged into `alloc`](https://github.com/rust-lang/rust/pull/42648). Today we have `core` that applies everywhere, `std` that expects a full operating system, and `alloc` in-between that only requires a memory allocator (which can be provided by users)… and `std_unicode`, which doesn’t really have a reason to be separate anymore. It contains functionality based on Unicode data tables that can be large, but as long as relevant functions are not called the tables should be removed from binaries by linkers. This deprecates the unstable `std_unicode` crate and moves all of its contents into `core`, replacing them with `pub use` reexports. The crate can be removed later. This also removes the `CharExt` trait (replaced with inherent methods in libcore) and `UnicodeStr` trait (merged into `StrExt`). There traits were both unstable and not intended to be used or named directly. A number of new items are newly-available in libcore and instantly stable there, but only if they were already stable in libstd. Fixes #49319.
2018-04-12Deprecate the std_unicode crateSimon Sapin-1/+0
2018-04-10Add --enable-debug flag to musl CI build scriptAlec Mocatta-1/+1
Building for x86_64-unknown-linux-musl currently results in an executable lacking debug information for musl libc itself. If you request a backtrace in GDB while control flow is within musl – including sycalls made by musl – the result looks like: #0 0x0000000000434b46 in __cp_end () #1 0x0000000000432dbd in __syscall_cp_c () #2 0x0000000000000000 in ?? () i.e. not very helpful. Adding --enable-debug resolves this, and --enable-optimize re-enables optimisations which default to off given the previous flag.
2018-04-06Give a name to every CI job.kennytm-0/+1
Bots that read the log can simply look for `[CI_JOB_NAME=...]` to find out the job's name.
2018-04-05Rollup merge of #49674 - alexcrichton:no-incremental-rustc, r=michaelwoeristerkennytm-22/+0
ci: Remove x86_64-gnu-incremental builder This builder is starting to time out frequently causing PRs to bounce and otherwise doesn't seem to be catching too many bugs, so this commit removes it entirely. We've had a number of timeouts in the last few weeks related to this builder: * https://travis-ci.org/rust-lang/rust/jobs/360947582 * https://travis-ci.org/rust-lang/rust/jobs/360464190 * https://travis-ci.org/rust-lang/rust/jobs/359946975 * https://travis-ci.org/rust-lang/rust/jobs/361213241 * https://travis-ci.org/rust-lang/rust/jobs/362346279 * https://travis-ci.org/rust-lang/rust/jobs/362072331 On a good run this builder takes about 2h15m, which is already too long for Travis and the variable build times end up pushing it beyond the 3h limit occasionally. The timeouts here are somewhat expected in that an incrementally compiled rustc compiler isn't optimized like a normal rustc, disallowing inlining between codegen units and losing lots of optimization opportunities.
2018-04-05Rollup merge of #49563 - japaric:std-thumb, r=alexcrichtonkennytm-1/+7
add a dist builder to build rust-std components for the THUMB targets the rust-std component only contains the core and compiler-builtins (+c +mem) crates cc #49382 - I'm not entirely sure if this PR alone will produce rust-std components installable by rustup or if something else needs to be changed - I could have done the THUMB builds in an existing builder / image; I wasn't sure if that was a good idea so I added a new image - I could build other crates like alloc into the rust-std component but, AFAICT, that would require calling Cargo a second time (one for alloc and one for compiler-builtins), or have alloc depend on compiler-builtins (#49503 will perform that change) *and* have alloc resurface the "c" and "mem" Cargo features. r? @alexcrichton
2018-04-04ci: Remove x86_64-gnu-incremental builderAlex Crichton-22/+0
This builder is starting to time out frequently causing PRs to bounce and otherwise doesn't seem to be catching too many bugs, so this commit removes it entirely. We've had a number of timeouts in the last few weeks related to this builder: * https://travis-ci.org/rust-lang/rust/jobs/360947582 * https://travis-ci.org/rust-lang/rust/jobs/360464190 * https://travis-ci.org/rust-lang/rust/jobs/359946975 * https://travis-ci.org/rust-lang/rust/jobs/361213241 * https://travis-ci.org/rust-lang/rust/jobs/362346279 * https://travis-ci.org/rust-lang/rust/jobs/362072331 On a good run this builder takes about 2h15m, which is already too long for Travis and the variable build times end up pushing it beyond the 3h limit occasionally. The timeouts here are somewhat expected in that an incrementally compiled rustc compiler isn't optimized like a normal rustc, disallowing inlining between codegen units and losing lots of optimization opportunities.
2018-04-03merge dist-various-3 into dist-various-1Jorge Aparicio-20/+7
2018-04-02Update sccache to its master branchAlex Crichton-3/+9
Ideally I'd like to soon enable sccache for rustbuild itself and some of the stage0 tools, but for that to work we'll need some better Rust support than the pretty old version we were previously using!
2018-04-01add a dist-thumb builder to build rust-std for the THUMB targetsJorge Aparicio-0/+19
the rust-std component only contains the core and compiler-builtins (+c +mem) crates cc #49382
2018-03-25rustbuild: Disable docs on cross-compiled buildsAlex Crichton-20/+24
This commit disables building documentation on cross-compiled compilers, for example ARM/MIPS/PowerPC/etc. Currently I believe we're not getting much use out of these documentation artifacts and they often take 10-15 minutes total to build as it requires building rustdoc/rustbook and then also generating all the documentation, especially for the reference and the book itself. In an effort to cut down on the amount of work that we're doing on dist CI builders in light of recent timeouts this was some relatively low hanging fruit to cut which in theory won't have much impact on the ecosystem in the hopes that the documentation isn't used too heavily anyway. While initial analysis in #48827 showed only shaving 5 minutes off local builds the same 5 minute conclusion was drawn from #48826 which ended up having nearly a half-hour impact on the bots. In that sense I'm hoping that we can land this and test out what happens on CI to see how it affects timing. Note that all tier 1 platforms, Windows, Mac, and Linux, will continue to generate documentation.
2018-03-25Auto merge of #49284 - alexcrichton:use-our-own-cache, r=kennytmbors-0/+32
ci: Don't use Travis caches for docker images This commit moves away from caching on Travis to our own caching on S3 for caching docker layers between builds. Unfortunately the Travis caches have over time had a few critical pain points: * Caches are only updated for successful builds, meaning that if a build times out or fails in a different location the sucessfully-created docker images isn't always cached. While this makes sense as a general rule of caches it hurts our use cases. * Caches are per-branch and builder which means that we don't have a separate cache on each release channel. All our merges go through the `auto` branch which means that they're all sharing the same cache, even those for merging to master/beta. This means that PRs which switch between master/beta will keep rebuilting and having cache misses. * Caches have historically been invaliated somewhat regularly a little more aggressively than we'd want (I think). * We don't always need to update the contents of the cache if the Docker image didn't change at all, and saving off the docker layers can sometimes be quite expensive. For all these reasons this commit drops the usage of Travis's built-in caching support. Instead our own caching is used by storing blobs to S3. Normally this would be a very risky endeavour but we're basically priming a cache for a cache (docker) so if we get this wrong the failure mode is longer builds, not stale caches. We'll notice that pretty quickly and hopefully fix it! The logic here is inserted directly into the `src/ci/docker/run.sh` script to download an image based on a shasum of the `Dockerfile` and other assorted files. This blob, if found, is loaded into docker and we record what layers were inserted. After docker finishes the build (hopefully quickly with lots of cache hits) we then see the sha of the final image. If it's one of the layers we loaded then there's no need to update the cache. Otherwise we upload our layers to the global cache, possibly overwriting what we previously just downloaded. This is hopefully a step towards mitigating #49278 although it doesn't completely fix it as it means we'll still probably have to retry builds that bust the cache.
2018-03-25Rollup merge of #49193 - davidtwco:issue-29893, r=alexcrichtonkennytm-1/+2
Host compiler documentation Fixes #29893. Rust Central Station PR: rust-lang/rust-central-station#40 r? @alexcrichton
2018-03-25Rollup merge of #49120 - Zoxc:parallel-ci, r=alexcrichtonkennytm-0/+1
Add a CI job for parallel rustc using x.py check r? @alexcrichton
2018-03-22ci: Don't use Travis caches for docker imagesAlex Crichton-0/+32
This commit moves away from caching on Travis to our own caching on S3 for caching docker layers between builds. Unfortunately the Travis caches have over time had a few critical pain points: * Caches are only updated for successful builds, meaning that if a build times out or fails in a different location the sucessfully-created docker images isn't always cached. While this makes sense as a general rule of caches it hurts our use cases. * Caches are per-branch and builder which means that we don't have a separate cache on each release channel. All our merges go through the `auto` branch which means that they're all sharing the same cache, even those for merging to master/beta. This means that PRs which switch between master/beta will keep rebuilting and having cache misses. * Caches have historically been invaliated somewhat regularly a little more aggressively than we'd want (I think). * We don't always need to update the contents of the cache if the Docker image didn't change at all, and saving off the docker layers can sometimes be quite expensive. For all these reasons this commit drops the usage of Travis's built-in caching support. Instead our own caching is used by storing blobs to S3. Normally this would be a very risky endeavour but we're basically priming a cache for a cache (docker) so if we get this wrong the failure mode is longer builds, not stale caches. We'll notice that pretty quickly and hopefully fix it! The logic here is inserted directly into the `src/ci/docker/run.sh` script to download an image based on a shasum of the `Dockerfile` and other assorted files. This blob, if found, is loaded into docker and we record what layers were inserted. After docker finishes the build (hopefully quickly with lots of cache hits) we then see the sha of the final image. If it's one of the layers we loaded then there's no need to update the cache. Otherwise we upload our layers to the global cache, possibly overwriting what we previously just downloaded. This is hopefully a step towards mitigating #49278 although it doesn't completely fix it as it means we'll still probably have to retry builds that bust the cache.
2018-03-22rustc: Add a `#[wasm_import_module]` attributeAlex Crichton-0/+1
This commit adds a new attribute to the Rust compiler specific to the wasm target (and no other targets). The `#[wasm_import_module]` attribute is used to specify the module that a name is imported from, and is used like so: #[wasm_import_module = "./foo.js"] extern { fn some_js_function(); } Here the import of the symbol `some_js_function` is tagged with the `./foo.js` module in the wasm output file. Wasm-the-format includes two fields on all imports, a module and a field. The field is the symbol name (`some_js_function` above) and the module has historically unconditionally been `"env"`. I'm not sure if this `"env"` convention has asm.js or LLVM roots, but regardless we'd like the ability to configure it! The proposed ES module integration with wasm (aka a wasm module is "just another ES module") requires that the import module of wasm imports is interpreted as an ES module import, meaning that you'll need to encode paths, NPM packages, etc. As a result, we'll need this to be something other than `"env"`! Unfortunately neither our version of LLVM nor LLD supports custom import modules (aka anything not `"env"`). My hope is that by the time LLVM 7 is released both will have support, but in the meantime this commit adds some primitive encoding/decoding of wasm files to the compiler. This way rustc postprocesses the wasm module that LLVM emits to ensure it's got all the imports we'd like to have in it. Eventually I'd ideally like to unconditionally require this attribute to be placed on all `extern { ... }` blocks. For now though it seemed prudent to add it as an unstable attribute, so for now it's not required (as that'd force usage of a feature gate). Hopefully it doesn't take too long to "stabilize" this! cc rust-lang-nursery/rust-wasm#29
2018-03-22Handle redirects correctly.kennytm-2/+2
2018-03-22Download the GCC artifacts from the HTTP server instead of FTP server.kennytm-0/+34
The former seems much more stable, in case the cache becomes invalidated.
2018-03-21Configure the dist-x86_64-linux builder to produce compiler documentationDavid Wood-1/+2
2018-03-18Add a CI job for parallel rustc using x.py checkJohn Kåre Alsaker-0/+1