Commit Graph

67 Commits

Author SHA1 Message Date
Mateusz Mikuła 4b516279a9 Revert MSYS2 CI workaround 2020-05-22 19:08:39 +02:00
Mateusz Mikuła 2d4d0dbaa7 Workaround MSYS2/chocolatey issue again 2020-05-20 17:40:58 +02:00
Mateusz Mikuła 081daf609c Update pacman first 2020-05-18 20:38:59 +02:00
Pietro Albini de2d9877dc ci: use the latest python available on windows
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-05-07 23:12:13 +02:00
bors 9682f0e14d Auto merge of #66605 - GuillaumeGomez:drop-python2, r=Mark-Simulacrum
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-10 16:13:20 +00:00
Guillaume Gomez 38eb369fa4 Enforce Python 3 as much as possible 2020-04-10 09:09:58 -04:00
Pietro Albini 1ce9257ebd ci: move /var/lib/docker to /mnt on GHA
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-04-06 18:09:08 +02:00
Pietro Albini ba97ad3509 ci: move the whole workspace directory on gha/linux
Moving just the `obj` directory created problems with mountpoints and
Docker containers, so this tries to symlink the parent directory.
2020-03-24 15:36:13 +01:00
Pietro Albini 1ba762a193 ci: fix out of disk space errors on linux GHA
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-24 15:36:10 +01:00
Pietro Albini b9c3633847 ci: don't move the build to C: on GitHub Actions
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-24 15:36:09 +01:00
Pietro Albini 9beb8f5477 ci: add github actions configuration 2020-03-24 15:36:07 +01:00
Pietro Albini 9d5c416037 ci: rename script windows-symlink-build-dir to symlink-build-dir
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-24 15:34:57 +01:00
Pietro Albini b4f71cd477 ci: fix azure pipeline specific code in install-awscli 2020-03-24 15:34:55 +01:00
bors 1add455ec6 Auto merge of #69894 - vtbassmatt:master, r=nellshamrell
establish immutable source for RUST_CONFIGURE_ARGS

fixes https://github.com/rust-lang/rust/issues/68671
2020-03-24 09:38:41 +00:00
Matt Cooper 6db4bb68d1 compat with macOS's ancient Bash 2020-03-20 14:53:00 -04:00
Pietro Albini 779e5922ee ci: use python from the correct path
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-18 21:07:44 +01:00
Matt Cooper a942b39465 fix how we detect an unset variable 2020-03-10 14:13:39 -04:00
Matt Cooper ec7010a1a8 establish immutable source for RUST_CONFIGURE_ARGS 2020-03-10 13:46:39 -04:00
Dylan DPC 2f914bf327 Rollup merge of #68863 - pietroalbini:azure-macos-10.15, r=Mark-Simulacrum
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-19 18:12:07 +01:00
Mark Rousskov c992ab23fa Clean out some default-installed directories
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-18 11:34:59 +01:00
Pietro Albini 79c166ef73 ci: switch macOS builders to 10.15 2020-02-17 12:21:28 +01:00
Pietro Albini 39ddbeb874 ci: fix wrong sysroot in macos 10.15 onwards
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-30 14:56:51 +01:00
Pietro Albini 846d386b4d ci: install binutils in msys2 2019-12-30 14:56:50 +01:00
Aidan Hobson Sayers cefeb66366 Use the chocolatey CDN directly to avoid the flaky API 2019-12-24 00:59:37 +00:00
Mark Rousskov 3a6cd8e42b temporary retry around msys2 install 2019-12-22 20:17:00 -05:00
Pietro Albini ee12992da9 ci: guess some environment variables based on builder name and os
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-22 15:36:37 +01:00
Pietro Albini 262ce313d0 ci: add support for GitHub Actions in the CI scripts 2019-11-22 15:36:37 +01:00
Pietro Albini c90cc12b07 ci: move validate-toolstate.sh in the mingw-check image
The task was already run just there, so this cleans things up.
2019-11-12 11:06:11 +01:00
Pietro Albini e209ee42e9 ci: extract collecting cpu stats into a script 2019-11-12 11:06:11 +01:00
Pietro Albini d623c56f4c ci: extract running the build into a script 2019-11-12 11:06:11 +01:00
Pietro Albini 6104aa77eb ci: extract validate-toolstate into a script 2019-11-12 11:06:11 +01:00
Pietro Albini af6b26646b ci: remove the MSYS_BITS env var 2019-11-12 11:05:54 +01:00
Pietro Albini 53c2c04d63 ci: remove the MINGW_DIR and MINGW_ARCHIVE env vars 2019-11-12 11:03:52 +01:00
Pietro Albini 71e5018071 ci: replace MINGW_URL with CUSTOM_MINGW=1
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-12 11:03:52 +01:00
Alex Crichton 1e4c2ae622 Update clang to build LLVM to 9.0.0
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-11-07 13:06:56 -08:00
Mazdak Farrokhzad ce64b170eb Rollup merge of #65955 - pietroalbini:master-revert-msys2-hack, 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-31 02:54:08 +01:00
Mazdak Farrokhzad 6cee78c4f0 Rollup merge of #65274 - pietroalbini:ci-upload-toolstate, r=alexcrichton
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-31 02:54:04 +01:00
Pietro Albini ca3468768d ci: move toolstates.json to /tmp/toolstate/ and docker mount it
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-30 19:41:22 +01:00
Pietro Albini 48d6510f6f 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.
2019-10-30 09:41:40 +01:00
Pietro Albini 95ad6c33c7 Apply suggestions from lzutao
Co-Authored-By: lzutao <taolzu@gmail.com>
2019-10-29 10:32:51 +01:00
Pietro Albini bdfcde439b Apply suggestions from lzutao
Co-Authored-By: lzutao <taolzu@gmail.com>
2019-10-29 10:14:42 +01:00
Pietro Albini 02000505c1 ci: upload toolstates.json to rust-lang-ci2
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-29 10:08:01 +01:00
Pietro Albini 4479de4b4a ci: extract uploading artifacts into a script 2019-10-29 10:07:39 +01:00
Pietro Albini 4fb8a9a73c ci: extract job skipping logic into a script 2019-10-29 10:01:43 +01:00
Pietro Albini 7e051236b0 ci: fix wrong path for wix being set 2019-10-28 15:09:18 +01:00
Pietro Albini c854c4482b ci: fix execution condition for install-clang 2019-10-28 10:04:26 +01:00
Pietro Albini 9c44ca231a ci: fix tidy 2019-10-25 16:51:12 +02:00
Pietro Albini 19fdc5c07f ci: fix installation condition for MinGW
I mistakenly inverted the "variable is not set" check in bash.
2019-10-25 16:47:41 +02:00
Pietro Albini db0078706b ci: split install-msys2 step into two separate scripts 2019-10-25 16:47:41 +02:00
Pietro Albini 9d15336149 ci: fix wrong path being set in install-msys2.sh 2019-10-25 16:08:43 +02:00