Commit Graph

753 Commits

Author SHA1 Message Date
Pietro Albini
cdbb60e6a8
ci: another take at fixing toolstate
Seems like the variable showed by $(ciCheckoutPath) on Azure Pipelines
was wrong, making the toolstate script fail. This commit changes that
function to return the variable previously used by the toolstate script.
Other uses of the function were audited, and there should be no
conflict.
2020-01-09 09:49:25 +01:00
Pietro Albini
aabc73631e
ci: fix wrong shared.sh import for publish_toolstate 2020-01-08 12:24:01 +01:00
bors
f48e576756 Auto merge of #67733 - pietroalbini:gha-2, r=alexcrichton
GitHub Actions: preparations, part 2

This PR adds the second batch of commits in preparation for GitHub Actions:

* Removed hardcoded Azure Pipelines variables from `publish_toolstate.sh`
* Fixed a bug in `shared.sh`'s GitHub Actions support
* Fixed binutils missing from MSYS2 on Windows 2019 (GitHub Actions-specific)
* Fixed wrong sysroot in macOS 10.15 onwards (GitHub Actions-specific)

This PR does **not** yet add any builders on GitHub Actions.

r? @alexcrichton
2020-01-08 05:05:06 +00:00
bors
56446fef49 Auto merge of #67732 - pietroalbini:fewer-apples, r=alexcrichton
ci: remove 32-bit Apple targets

This PR drops the `i686-apple` and `dist-i686-apple` CI builders, as well as removing the `armv7-apple-ios`, `armv7s-apple-ios`  and `i386-apple-ios` targets from the `x86_64-apple` CI builder.

The change was approved in [RFC 2837](https://github.com/rust-lang/rfcs/pull/2837), and it should land in Rust 1.42 stable (so this cycle).

r? @alexcrichton
2020-01-07 14:53:27 +00:00
Michael Woerister
6f57bad318 Set a lower ThinLTO import limit for PR CI image. 2020-01-02 14:06:45 +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
Pietro Albini
ae9ca09612
ci: fix wrong variable name in shared.sh's ciCommandAddPath 2019-12-30 14:56:48 +01:00
Pietro Albini
d9278f7ff6
ci: make publish_toolstate.sh generic over the CI provider 2019-12-30 14:56:46 +01:00
Pietro Albini
67cc06806d
ci: remove 32-bit apple targets 2019-12-30 14:36:34 +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
Rust Toolstate Update
a6df38ec9f Utilize rust-lang/rust commit hashes in toolstate
When moving the script out of CI configuration and into a proper script
we lost track of the current directory changing (and as such the
parameters of the script needing to be different now).
2019-12-22 09:21:08 -05:00
Mark Rousskov
cbd1e73124 Set release channel on non-dist builders
Toolstate publication only runs if the channel is "nightly" and
previously the toolstate builders did not know that the channel was
nightly (since they are not dist builders).

A look through bootstrap seems to indicate that nothing should directly
depend on the channel being set to `-dev` on the test builders, though
this may cause some problems with UI tests (if for some reason they're
dumping the channel into stderr), but we cannot find evidence of such so
hopefully this is fine.
2019-12-18 22:44:42 -05:00
Yuki Okushi
472e7548d8 Make it executable 2019-12-11 05:26:40 +09:00
Mark Rousskov
97d936423c Move CI to new builtin check-toolstate 2019-12-10 09:30:09 -05:00
Aaron Hill
3c14f0eaa7
Add note to src/ci/docker/README.md about multiple docker images
I spent a while debugging a strage linker error about an outdated `glibc` version, only to discover that it was caused by a stale `obj` directory. It wasn't obviously to be that using the same obj dir with multiple Docker images (for the same target triple) could be a problem.

This commit adds a note to the README, which should hopefully be helpful to anyone else who runs into this issue.
2019-12-06 16:38:57 -05:00
Yuki Okushi
acd2b0835d
Rollup merge of #67066 - alexcrichton:update-wasi-libc, r=Mark-Simulacrum
Update the revision of wasi-libc used in wasm32-wasi

This commit updates the `wasi-libc` repository used to build the
wasm32-wasi target's libstd to ensure that both libstd and libc are
using the same wasi snapshot version.
2019-12-06 15:37:14 +09:00
Yuki Okushi
3b878aa9ae
Rollup merge of #66974 - cuviper:not-isCI, r=alexcrichton
[CI] fix the `! isCI` check in src/ci/run.sh

Using `if [ ! isCI ] || ...` doesn't run any command, just tests `isCI`
as a string, whereas `if ! isCI || ...` will actually run the `isCI`
command and negate its exit status.
2019-12-06 15:37:04 +09:00
Alex Crichton
db7b0f88f1 Update the revision of wasi-libc used in wasm32-wasi
This commit updates the `wasi-libc` repository used to build the
wasm32-wasi target's libstd to ensure that both libstd and libc are
using the same wasi snapshot version.
2019-12-05 11:36:35 -08:00
Josh Stone
b1ececa669 [CI] fix the ! isCI check in src/ci/run.sh
Using `if [ ! isCI ] || ...` doesn't run any command, just tests `isCI`
as a string, whereas `if ! isCI || ...` will actually run the `isCI`
command and negate its exit status.
2019-12-02 11:49:38 -08:00
Josh Stone
2304c25f31 Update the minimum external LLVM to 7
LLVM 7 is over a year old, which should be plenty for compatibility. The
last LLVM 6 holdout was llvm-emscripten, which went away in #65501.

I've also included a fix for LLVM 8 lacking `MemorySanitizerOptions`,
which was broken by #66522.
2019-12-02 11:36:21 -08:00
Mark Rousskov
47b3d4d8c9 Revert "DO NOT MERGE: enable windows try builder"
This reverts commit 90a37bce44.
2019-11-26 08:06:13 -05:00
Pietro Albini
90a37bce44
DO NOT MERGE: enable windows try builder 2019-11-22 15:37:36 +01: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
Mazdak Farrokhzad
49077c59a8
Rollup merge of #66090 - pietroalbini:ci-improvements, r=alexcrichton
Misc CI improvements

This PR contains some misc improvements to our CI configuration:

* The environment variables for MinGW builders were greatly simplified, with just `CUSTOM_MINGW=1` to tell the install scripts to install the vendored copy. All the others (`MINGW_URL`, `MINGW_DIR`, `MINGW_ARCHIVE` and `MSYS_BITS`) are detected either from the builder name or the environment.
* Collecting CPU stats and running the build were moved into scripts.
* Toolstate scripts validation was previously a separate step, ran just when `IMAGE=mingw-check`. This moves the validation code inside the actual image.
* Vendored copies are now fetched from https://ci-mirrors.rust-lang.org instead of directly from the bucket.

r? @alexcrichton
2019-11-19 13:10:09 +01:00
Pietro Albini
85132b20c4
ci: download curl and openssl from s3 for dist-x86_64-linux
CentOS 5 only supports SSLv3 without SNI, and to get newer protocols
working we need to download and compile OpenSSL and cURL from our
mirror. Because of that, we can't use the CDN, as CloudFront requires
TLSv1 with SNI.

This commit changes the dist-x86_64-linux image to bypass the CDN for
OpenSSL and cURL.
2019-11-12 11:06:11 +01:00
Pietro Albini
14da85c68e
ci: move mirrors to https://ci-mirrors.rust-lang.org 2019-11-12 11:06:11 +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
Eric Huss
a902383053 Update cc, git2, num_cpus. 2019-11-09 12:21:50 -08:00
Alex Crichton
a7b0beac6d Attempt to fix *.yml confguration on Azure
Currently the `RUST_CONFIGURE_ARGS` variable apparently has a trailing
newline at the end of it due to the way it's configured in yaml. This
causes issues with MSVC's `install-clang.sh` step where the way the bash
syntax works out means that we drop the arg we're trying to add and it
doesn't actually get added!

The hopeful fix here is to tweak how we specify the yaml syntax to not
have a trailing newline, we'll see what CI says about this...
2019-11-07 13:06:56 -08: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
Alex Crichton
73df5c5da9 Update the bundled wasi-libc repository
This updates the libc that the `wasm32-wasi` target links against to the
latest revision, mostly just bringing in minor bug fixes and minor wasm
size improvements.
2019-11-05 11:49:23 -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
Tyler Mandry
e15f1be63e
Rollup merge of #65843 - xen0n:mips64-musl-targets-with-ci, r=alexcrichton
Enable dist for MIPS64 musl targets

Continuing work in #63165, necessary libc changes are in place and published so here we go!
2019-10-29 12:01:40 -07: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