about summary refs log tree commit diff
path: root/src/ci/scripts
AgeCommit message (Collapse)AuthorLines
2020-07-23ci: avoid symlinking the build directory on self-hosted buildersPietro Albini-1/+1
2020-07-17ci: Stop setting CI_OVERRIDE_SHELL environment variableKristofer Rye-3/+0
This will render the src/ci/exec-with-shell.py script more or less useless, but we're going to replace that by just using the system bash instead. Signed-off-by: Kristofer Rye <kristofer.rye@gmail.com>
2020-07-01Rollup merge of #72569 - ChrisDenton:remove-innosetup, r=nikomatsakisManish Goregaokar-18/+0
Remove legacy InnoSetup GUI installer On Windows the InnoSetup `.exe` installer was superseded by the MSI installer long ago. It's no longer needed. The `.exe` installer hasn't been linked from the [other installation methods](https://forge.rust-lang.org/infra/other-installation-methods.html#standalone) page in many years. As far as I can tell the intent was always to remove this installer once the MSI proved itself. Though admittedly both installers feel very "legacy" at this point. Removing this would mean we only maintain one Windows GUI installer and would speed up the distribution phase. As a result of removing InnoSetup, this closes #24397
2020-06-11Use preinstalled MSYS2Mateusz Mikuła-42/+20
2020-05-25Remove legacy InnoSetup GUI installerChris Denton-18/+0
On Windows the InnoSetup installer was superseded by the MSI installer. It's no longer needed.
2020-05-22Revert MSYS2 CI workaroundMateusz Mikuła-13/+1
2020-05-20Workaround MSYS2/chocolatey issue againMateusz Mikuła-3/+11
2020-05-18Update pacman firstMateusz Mikuła-1/+5
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-04-10Auto merge of #66605 - GuillaumeGomez:drop-python2, r=Mark-Simulacrumbors-5/+6
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-5/+6
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-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: 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-10/+31
2020-03-24ci: rename script windows-symlink-build-dir to symlink-build-dirPietro Albini-0/+0
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-0/+13
establish immutable source for RUST_CONFIGURE_ARGS fixes https://github.com/rust-lang/rust/issues/68671
2020-03-20compat with macOS's ancient BashMatt Cooper-2/+8
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-10fix how we detect an unset variableMatt Cooper-1/+1
2020-03-10establish immutable source for RUST_CONFIGURE_ARGSMatt Cooper-0/+7
2020-02-19Rollup merge of #68863 - pietroalbini:azure-macos-10.15, r=Mark-SimulacrumDylan DPC-16/+1
ci: switch macOS builders to 10.15 Azure Pipelines is deprecating the macOS 10.13 image we're currently running, [and they plan to remove them](https://devblogs.microsoft.com/devops/removing-older-images-in-azure-pipelines-hosted-pools/) on March 23, 2020. This PR switches our macOS builders to macOS 10.15. r? @Mark-Simulacrum
2020-02-18Clean out some default-installed directoriesMark Rousskov-0/+16
This helps us have enough disk space for our builders to be able to complete successfully. For now, the choices are ad-hoc and 'definitely not needed'. This should never fail the build, as everything our build needs should be inside Docker.
2020-02-17ci: switch macOS builders to 10.15Pietro Albini-16/+1
2019-12-30ci: fix wrong sysroot in macos 10.15 onwardsPietro Albini-0/+9
In their infinite wisdom, Apple decided that (starting from macOS 10.15 onwards) /usr/include is not the location we should all search in for our beloved C headers. Instead, we should look inside the extremely intuitive and easily guessable new path: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include Because why not.
2019-12-30ci: install binutils in msys2Pietro Albini-1/+2
2019-12-24Use the chocolatey CDN directly to avoid the flaky APIAidan Hobson Sayers-6/+10
2019-12-22temporary retry around msys2 installMark Rousskov-4/+6
2019-11-22ci: guess some environment variables based on builder name and osPietro Albini-0/+31
Some environment variables (like DEPLOY or DEPLOY_ALT for dist builders, or IMAGE on Linux builders) are set on a lot of builders, and whether they should be present or not can be detected automatically based on the builder name and the platform. This commit simplifies the CI configuration by automatically setting those environment variables.
2019-11-22ci: add support for GitHub Actions in the CI scriptsPietro Albini-4/+4
2019-11-12ci: move validate-toolstate.sh in the mingw-check imagePietro Albini-18/+0
The task was already run just there, so this cleans things up.
2019-11-12ci: extract collecting cpu stats into a scriptPietro Albini-0/+9
2019-11-12ci: extract running the build into a scriptPietro Albini-0/+21
2019-11-12ci: extract validate-toolstate into a scriptPietro Albini-0/+18
2019-11-12ci: remove the MSYS_BITS env varPietro Albini-11/+21
2019-11-12ci: remove the MINGW_DIR and MINGW_ARCHIVE env varsPietro Albini-3/+12
2019-11-12ci: replace MINGW_URL with CUSTOM_MINGW=1Pietro Albini-4/+4
This commit replaces the mirrors base URL contained in the MINGW_URL with a CUSTOM_MINGW=1 environment variable. The mirrors base URL will be fetched instead through the MIRRORS_BASE environment variable, defined in src/ci/shared.sh.
2019-11-07Update clang to build LLVM to 9.0.0Alex Crichton-11/+12
This also ensure that we're using the same clang version for all our major platforms instead of 8.0 on Linux and 7.0 on OSX/Windows.
2019-10-31Rollup merge of #65955 - pietroalbini:master-revert-msys2-hack, ↵Mazdak Farrokhzad-16/+0
r=Mark-Simulacrum ci: revert msys2 ca-certificates hack The hack was added because upstream msys2 broke the ca-certificates package, but since then it has been fixed. This reverts CI to use the upstream package. Part of #65767
2019-10-31Rollup merge of #65274 - pietroalbini:ci-upload-toolstate, r=alexcrichtonMazdak Farrokhzad-0/+41
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-1/+1
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-30ci: revert msys2 ca-certificates hackPietro Albini-16/+0
The hack was added because upstream msys2 broke the ca-certificates package, but since then it has been fixed. This reverts CI to use the upstream package.
2019-10-29Apply suggestions from lzutaoPietro Albini-1/+1
Co-Authored-By: lzutao <taolzu@gmail.com>
2019-10-29Apply suggestions from lzutaoPietro Albini-3/+3
Co-Authored-By: lzutao <taolzu@gmail.com>
2019-10-29ci: upload toolstates.json to rust-lang-ci2Pietro Albini-0/+5
Uploading the toolstate data for each commit will help our release tooling understand which components are failing, to possibly skip shipping broken tools to users.
2019-10-29ci: extract uploading artifacts into a scriptPietro Albini-0/+36
2019-10-29ci: extract job skipping logic into a scriptPietro Albini-0/+20
2019-10-28ci: fix wrong path for wix being setPietro Albini-2/+2