about summary refs log tree commit diff
path: root/src/ci
AgeCommit message (Collapse)AuthorLines
2017-04-06travis: Use upstream LLVM repositories for FuchsiaPetr Hosek-12/+64
The Fuchsia copies of LLVM repositories contain additional patches for work-in-progress features and there is some amount of churn that may break Rust. Use upstream LLVM repositories instead for building the toolchain used by the Fuchsia builder.
2017-04-06Rollup merge of #41089 - alexcrichton:update-musl, r=brsonCorey Farwell-4/+7
travis: Update musl for i686/x86_64 This is a random stab towards #38618, no idea if it'll work. But hey more up-to-date software is better, right?
2017-04-05travis: Update musl for i686/x86_64Alex Crichton-4/+7
This is a random stab towards #38618, no idea if it'll work. But hey more up-to-date software is better, right?
2017-04-05dist-powerpc-linux: use a pure 32-bit CPU profileJosh Stone-10/+5
With `-mcpu=power4`, code might use instructions like `fcfid`, excluding older CPUs like the PowerPC G4, which apparently some users would like to use. The generic `-mcpu=powerpc` should stick to pure 32-bit PowerPC instructions. Fixes rust-lang/cargo#3852.
2017-04-04travis: Update sccache binariesAlex Crichton-34/+34
I've tracked down what I believe is the last spurious sccache failure on #40240 to behavior in mio (carllerche/mio#583), and this commit updates the binaries to a version which has that fix incorporated.
2017-04-04Enable appveyor cache, add more paranoiaAidan Hobson Sayers-2/+13
2017-04-04fix rollupTim Neumann-0/+6
2017-04-04Merge remote-tracking branch 'hub/centos5-vault' into rollupTim Neumann-0/+6
2017-04-03use fixed ip for vault.centos.org until updates have propagated to all mirrorsTim Neumann-1/+1
2017-04-03switch to vault.centos.orgTim Neumann-0/+6
2017-04-03travis: Split all dist builders in twoAlex Crichton-61/+983
Previously we would use one builder on Travis to produce two sets of host compilers for two different targets. Unfortunately though we've recently increased how much we're building for each target so this is starting to take unnecessarily long (#40804). This commit splits the dist builders in two by ensuring that we only dist one target on each builder, which should take a much shorter amount of time. This should also unblock other work such as landing the RLS (#40584).
2017-03-31Use 64 bits emulator to run android testsMarco A L Barbosa-4/+6
Also install headless jre instead of the full jre.
2017-03-29Rollup merge of #40780 - aidanhs:aphs-cache-git-modules, r=alexcrichtonCorey Farwell-3/+78
Attempt to cache git modules Partial resolution of #40772, appveyor remains to be done once travis looks like it's working ok. The approach in this PR is based on the `--reference` flag to `git-clone`/`git-submodule --update` and is a compromise based on the current limitations of the tools we're using. The ideal would be: 1. have a cached pristine copy of rust-lang/rust master in `$HOME/rustsrc` with all submodules initialised 2. clone the PR branch with `git clone --recurse-submodules --reference $HOME/rustsrc git@github.com:rust-lang/rust.git` This would (in the nonexistent ideal world) use the pristine copy as an object cache for the top level repo and all submodules, transferring over the network only the changes on the branch. Unfortunately, a) there is no way to manually control the initial clone with travis and b) even if there was, cloned submodules don't use the submodules of the reference as an object cache. So the steps we end up with are: 1. have a cached pristine copy of rust-lang/rust master in `$HOME/rustsrc` with all submodules initialised 2. have a cloned PR branch 3. extract the path of each submodule, and explicitly `git submodule update --init --reference $HOME/rustsrc/$module $module` (i.e. point directly to the location of the pristine submodule repo) for each one I've also taken some care to make this forward compatible, both for adding and removing submodules. r? @alexcrichton
2017-03-29Minor tweaks to retry utilityAidan Hobson Sayers-3/+6
2017-03-29Attempt to cache git modulesAidan Hobson Sayers-0/+72
2017-03-26Auto merge of #40809 - alexcrichton:update-sccache-again, r=alexcrichtonbors-26/+26
travis: Update sccache again Looks like the last version was built with mio 0.6.5 which now has known bugs against it. This build includes mio 0.6.6
2017-03-25fix permissions of emsdk_portableTim Neumann-0/+4
2017-03-25travis: try to fix the build on emscriptenAriel Ben-Yehuda-1/+14
The emsdk-portable .tar.gz now extracts to emsdk-portable instead of emsdk_portable. Handle that.
2017-03-24travis: Update sccache againAlex Crichton-26/+26
Looks like the last version was built with mio 0.6.5 which now has known bugs against it. This build includes mio 0.6.6
2017-03-23travis: Update sccache binaryAlex Crichton-26/+26
2017-03-23travis: Delay sccache downloads in dockerAlex Crichton-21/+21
Let's have this layer be towards the end as we're emprically changing sccache more than we're changing the rest of the image, so this'll allow us to reuse as much of the cached image as possible.
2017-03-23Auto merge of #40758 - frewsxcv:rollup, r=frewsxcvbors-107/+70
Rollup of 5 pull requests - Successful merges: #40612, #40627, #40668, #40715, #40753 - Failed merges:
2017-03-23Rollup merge of #40612 - TimNN:new-netbsd-cross, r=alexcrichtonCorey Farwell-107/+70
Use the "official" cross compiler for NetBSD The current NetBSD cross compiler is lacking, for example `std::thread` is not available (which causes problems for LLVM 4.0). This PR uses the official netbsd build system to compiler the cross compiler. @alexcrichton: Can you please mirror `ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-7.0/source/sets/{src,gnusrc,sharesrc,syssrc}.tgz`. (Optionally you may want to use NetBSD versions 7.0.2 or 7.1, in that case you'll probably want to update the binary downloads used today as well). I'll update the URL's afterwards (or feel free to use "allow edits from maintainers"). r? @alexcrichton
2017-03-23Auto merge of #40605 - alexcrichton:add-stamps, r=brsonbors-1/+0
travis: Add timestamps to all build messages When debugging why builds are taking so long it's often useful to get the timestamp of all log messages as we're not always timing every tiny step of the build. I wrote a [utility] for prepending a relative timestamp from the start of a process which is now downloaded to the builders and is what we wrap the entire build invocation in. [utility]: https://github.com/alexcrichton/stamp-rs Closes #40577
2017-03-21travis: Don't enable quiet testsAlex Crichton-1/+0
This makes travis problems more difficult to debug, so let's just enable more verbose logging.
2017-03-21dist-x86-linux: ugrade gcc to 4.8.5Tim Neumann-5/+8
2017-03-21include compiler hash in wrapper scriptsTim Neumann-0/+6
2017-03-21Switch to rust-lang-ci mirror URLsAlex Crichton-7/+7
2017-03-21ci/netbsd: use the "official" cross compilerTim Neumann-100/+57
2017-03-20travis: Don't set `RUST_LOG` globallyAlex Crichton-1/+0
I have a suspicion that this caused a large regression in cycle times by forcing the compiler to perform more checks on every `debug!` statement, so let's test this out by removing the `RUST_LOG` env var globally. This regression in cycle time was witnessed between [two] [builds] where the [PR] in question didn't do much suspicious. Judging by how the stage0 times *also* regressed though then this is my best guess. [two]: https://travis-ci.org/rust-lang/rust/builds/210149932 [builds]: https://travis-ci.org/rust-lang/rust/builds/210179995 [PR]: https://github.com/rust-lang/rust/pull/40446
2017-03-18Auto merge of #40507 - alexcrichton:static-libcurl, r=brsonbors-0/+6
travis: Ensure cargo links libcurl statically We don't want a dynamic dependency in the library that we ship, so link it statically by configuring curl-sys's build script to not pick up the system version via pkg-config.
2017-03-17travis: Use `hide_output` in dist-powerpc64-linuxAlex Crichton-24/+36
Looks like we blew the 4MB cap, so let's hide some more output.
2017-03-16travis: Update sccache binaryAlex Crichton-26/+26
I've built a local copy with mozilla/sccache#79 and mozilla/sccache#78. Let's see if that helps #40240!
2017-03-15Auto merge of #40383 - ishitatsuyuki:easy-dist-analysis, r=alexcrichtonbors-0/+1
rustbuild: Make save-analysis an option This makes save-analysis an option independent from the release channel. The CI build scripts have been modified to enable the flag. *Merge with caution.* I haven't tested this, and this can cause nightly breakage.
2017-03-13travis: Ensure cargo links libcurl staticallyAlex Crichton-0/+6
We don't want a dynamic dependency in the library that we ship, so link it statically by configuring curl-sys's build script to not pick up the system version via pkg-config.
2017-03-12Default llvm.clean-rebuild to falseVadim Petrochenkov-0/+1
2017-03-11Auto merge of #40199 - alexcrichton:doc-proc-macro, r=brsonbors-0/+1
rustbuild: Build documentation for `proc_macro` This commit fixes #38749 by building documentation for the `proc_macro` crate by default for configured hosts. Unfortunately did not turn out to be a trivial fix. Currently rustbuild generates documentation into multiple locations: one for std, one for test, and one for rustc. The initial fix for this issue simply actually executed `cargo doc -p proc_macro` which was otherwise completely elided before. Unfortunately rustbuild was the left to merge two documentation trees together. One for the standard library and one for the rustc tree (which only had docs for the `proc_macro` crate). Rustdoc itself knows how to merge documentation files (specifically around search indexes, etc) but rustbuild was unaware of this, so an initial fix ended up destroying the sidebar and the search bar from the libstd docs. To solve this issue the method of documentation has been tweaked slightly in rustbuild. The build system will not use symlinks (or directory junctions on Windows) to generate all documentation into the same location initially. This'll rely on rustdoc's logic to weave together all the output and ensure that it ends up all consistent. Closes #38749
2017-03-11rustbuild: Make save-analysis an optionTatsuyuki Ishi-0/+1
2017-03-10Rollup merge of #40324 - alexcrichton:sccache-errors, r=aturonAlex Crichton-1/+5
travis: Attempt to debug sccache failures I can't find anything that'd cause unexpected EOF in the source, so let's try taking a look at the error logs on failures.
2017-03-10rustbuild: Build documentation for `proc_macro`Alex Crichton-0/+1
This commit fixes #38749 by building documentation for the `proc_macro` crate by default for configured hosts. Unfortunately did not turn out to be a trivial fix. Currently rustbuild generates documentation into multiple locations: one for std, one for test, and one for rustc. The initial fix for this issue simply actually executed `cargo doc -p proc_macro` which was otherwise completely elided before. Unfortunately rustbuild was the left to merge two documentation trees together. One for the standard library and one for the rustc tree (which only had docs for the `proc_macro` crate). Rustdoc itself knows how to merge documentation files (specifically around search indexes, etc) but rustbuild was unaware of this, so an initial fix ended up destroying the sidebar and the search bar from the libstd docs. To solve this issue the method of documentation has been tweaked slightly in rustbuild. The build system will not use symlinks (or directory junctions on Windows) to generate all documentation into the same location initially. This'll rely on rustdoc's logic to weave together all the output and ensure that it ends up all consistent. Closes #38749
2017-03-10travis: Fuchsia builderPetr Hosek-0/+188
This change introduces a Dockerfile and script which builds a complete Fuchsia toolchain which can be used to build Rust distribution for Fuchsia. We only support cross-compiling at the moment, hence only setting the target.
2017-03-10travis: Attempt to debug sccache failuresAlex Crichton-1/+5
I can't find anything that'd cause unexpected EOF in the source, so let's try taking a look at the error logs on failures.
2017-03-09travis: Split the linux-tested-targets builderAlex Crichton-21/+85
Travis only gives us 30GB disk space and we don't currently have an option to increase that. Each musl target generates "hello world" binaries of about 3.5MB in size, and we're testing two targets in the same image. We have around 3k run-pass tests and 2 musl targets which works out to around 20GB. That's dangerously close to the limit and is causing PRs to bounce. This PR splits up the builder in two, one for x86_64 musl and the other for i686. Hopefully that'll keep us under the disk limit. Closes #40359
2017-03-03rustbuild: Add support for compiling CargoAlex Crichton-0/+1
This commit adds support to rustbuild for compiling Cargo as part of the release process. Previously rustbuild would simply download a Cargo snapshot and repackage it. With this change we should be able to turn off artifacts from the rust-lang/cargo repository and purely rely on the artifacts Cargo produces here. The infrastructure added here is intended to be extensible to other components, such as the RLS. It won't exactly be a one-line addition, but the addition of Cargo didn't require too much hooplah anyway. The process for release Cargo will now look like: * The rust-lang/rust repository has a Cargo submodule which is used to build a Cargo to pair with the rust-lang/rust release * Periodically we'll update the cargo submodule as necessary on rust-lang/rust's master branch * When branching beta we'll create a new branch of Cargo (as we do today), and the first commit to the beta branch will be to update the Cargo submodule to this exact revision. * When branching stable, we'll ensure that the Cargo submodule is updated and then make a stable release. Backports to Cargo will look like: * Send a PR to cargo's master branch * Send a PR to cargo's release branch (e.g. rust-1.16.0) * Send a PR to rust-lang/rust's beta branch updating the submodule * Eventually send a PR to rust-lang/rust's master branch updating the submodule For reference, the process to add a new component to the rust-lang/rust release would look like: * Add `$foo` as a submodule in `src/tools` * Add a `tool-$foo` step which compiles `$foo` with the specified compiler, likely mirroring what Cargo does. * Add a `dist-$foo` step which uses `src/tools/$foo` and the `tool-$foo` output to create a rust-installer package for `$foo` likely mirroring what Cargo does. * Update the `dist-extended` step with a new dependency on `dist-$foo` * Update `src/tools/build-manifest` for the new component.
2017-02-28Rollup merge of #40130 - alexcrichton:fix-musl-again, r=nikomatsakisSteve Klabnik-2/+2
travis: Fix typos in linux-tested-targets These flags were supposed to be relevant for musl, not for gnu cc #39979
2017-02-27travis: Split Android into dist/test imagesAlex Crichton-18/+82
PRs can't land againt beta right now because the android bot is filling up on disk space. I don't really know what's going on but the android bot is the longest one to run anyway so it'll benefit from being split up regardless.
2017-02-27travis: Fix typos in linux-tested-targetsAlex Crichton-2/+2
These flags were supposed to be relevant for musl, not for gnu cc #39979
2017-02-27appveyor: Use sccache on pc-windows-gnu for cachingAlex Crichton-24/+24
Now that mozilla/sccache#43 is fixed the caching works for MinGW on Windows. We still can't use it for MSVC just yet, but I'll try to revive that branch at some point.
2017-02-25travis: Make more network requests retryableAlex Crichton-5/+40
This commit attempts to move more network operations to being retryable through various operations. For example git submodule updates, downloading snapshots, etc, are now all in retryable steps. Hopefully this commit can cut down on the number of network failures we've been seeing!
2017-02-25Rollup merge of #40019 - alexcrichton:fix-musl, r=brsonEduard-Mihai Burtescu-1/+12
travis: Compile a more compatible libc.a for musl The mitigations for #34978 involve passing `-Wa,-mrelax-relocations=no` to all C code we compile, and we just forgot to pass it when compiling musl itself. Closes #39979