about summary refs log tree commit diff
path: root/src/ci/docker/x86_64-gnu-full-bootstrap
AgeCommit message (Collapse)AuthorLines
2020-07-03ci: move all x86_64 runners to the host-x86_64 directoryPietro Albini-30/+0
We need to add runners designed for an aarch64 host system, and it'd be nice to return an error message if someone tries to run an image designed for an host architecture in another one. To start the work on this, this commit moves all the existing builders in the host-x86_64 directory, and changes the run.sh script to look up the image in the correct directory based on the host architecture.
2020-04-10Enforce Python 3 as much as possibleGuillaume Gomez-2/+2
2019-07-06add missing libssl-dev dependency to docker images on travisAndré Luis Leal Cardoso Junior-0/+2
2019-05-22Disable LLVM/debug assertions in gnu-full-bootstrapAlex Crichton-0/+6
This builder already is very close to the 2 hour mark and the debug assertions aren't really buying us anything over what all the other containers are enabling, so let's disable them for this slow builder.
2017-08-26ci: Remove the need for `dumb-init`Alex Crichton-5/+0
Newer versions of Docker have a `--init` argument which spawns an init process in the container, which we should be able to use everywhere now.
2017-07-12Updated docker images to factor out common scriptsTy Coghlan-6/+5
2017-05-12Update sccache binaries to mozilla/sccache@d3627d766Alex Crichton-1/+1
This commit updates the sccache binaries to fix a cache load failure seen on #41926, fixed by mozilla/sccache#119
2017-04-29ci: Update sccache buildAlex Crichton-1/+1
Pulls in mozilla/sccache@ef0d77543 to fix #40240 again after the builds included in #41447 forgot to include the mio fixed included in #41076. Closes #40240
2017-04-27appveyor: Use Ninja/sccache on MSVCAlex Crichton-1/+1
Now that the final bug fixes have been merged into sccache we can start leveraging sccache on the MSVC builders on AppVeyor instead of relying on the ad-hoc caching strategy of trigger files and whatnot.
2017-04-27travis: Update sccache build usedAlex Crichton-1/+1
This build is no longer a forked version with temporary bugfixes, everything should be upstreamed!
2017-04-04travis: Update sccache binariesAlex Crichton-1/+1
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-03-24travis: Update sccache againAlex Crichton-1/+1
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-1/+1
2017-03-16travis: Update sccache binaryAlex Crichton-1/+1
I've built a local copy with mozilla/sccache#79 and mozilla/sccache#78. Let's see if that helps #40240!
2017-02-27appveyor: Use sccache on pc-windows-gnu for cachingAlex Crichton-1/+1
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-24Update sccache binaries on CIAlex Crichton-3/+3
Currently CI builds can fail spuriously during the LLVM build (#39003). I believe this is due to sccache, and I believe that in turn was due to the fact that the sccache server used to just be a raw mio server. Historically raw mio servers are quite complicated to get right, but this is why we built Tokio! The sccache server has been migrated to Tokio which I suspect would fix any latent issues. I have no confirmation of this (never been able to reproduce the deadlock locally), but my hunch is that updating sccache to the master branch will fix the timeouts during the LLVM build. The binaries previously came from Gecko's infrastructure, but I've built new ones by hand for Win/Mac/Linux and uploaded them to our CI bucket.
2017-01-12travis: Start uploading artifacts on commitsAlex Crichton-1/+1
This commit starts adding the infrastructure for uploading release artifacts from AppVeyor/Travis on each commit. The idea is that eventually we'll upload a full release to AppVeyor/Travis in accordance with plans [outlined earlier]. Right now this configures Travis/Appveyor to upload all tarballs in the `dist` directory, and various images are updated to actually produce tarballs in these directories. These are nowhere near ready to be actual release artifacts, but this should allow us to play around with it and test it out. Once this commit lands we should start seeing artifacts uploaded on each commit. [outlined earlier]: https://internals.rust-lang.org/t/rust-ci-release-infrastructure-changes/4489
2016-12-28rustbuild: Compile rustc twice, not thriceAlex Crichton-0/+28
This commit switches the rustbuild build system to compiling the compiler twice for a normal bootstrap rather than the historical three times. Rust is a bootstrapped language which means that a previous version of the compiler is used to build the next version of the compiler. Over time, however, we change many parts of compiler artifacts such as the metadata format, symbol names, etc. These changes make artifacts from one compiler incompatible from another compiler. Consequently if a compiler wants to be able to use some artifacts then it itself must have compiled the artifacts. Historically the rustc build system has achieved this by compiling the compiler three times: * An older compiler (stage0) is downloaded to kick off the chain. * This compiler now compiles a new compiler (stage1) * The stage1 compiler then compiles another compiler (stage2) * Finally, the stage2 compiler needs libraries to link against, so it compiles all the libraries again. This entire process amounts in compiling the compiler three times. Additionally, this process always guarantees that the Rust source tree can compile itself because the stage2 compiler (created by a freshly created compiler) would successfully compile itself again. This property, ensuring Rust can compile itself, is quite important! In general, though, this third compilation is not required for general purpose development on the compiler. The third compiler (stage2) can reuse the libraries that were created during the second compile. In other words, the second compilation can produce both a compiler and the libraries that compiler will use. These artifacts *must* be compatible due to the way plugins work today anyway, and they were created by the same source code so they *should* be compatible as well. So given all that, this commit switches the default build process to only compile the compiler three times, avoiding this third compilation by copying artifacts from the previous one. Along the way a new entry in the Travis matrix was also added to ensure that our full bootstrap can succeed. This entry does not run tests, though, as it should not be necessary. To restore the old behavior of a full bootstrap (three compiles) you can either pass: ./configure --enable-full-bootstrap or if you're using config.toml: [build] full-bootstrap = true Overall this will hopefully be an easy 33% win in build times of the compiler. If we do 33% less work we should be 33% faster! This in turn should affect cycle times and such on Travis and AppVeyor positively as well as making it easier to work on the compiler itself.