Commit Graph

1091 Commits

Author SHA1 Message Date
Pietro Albini
ffd112250e
ci: disable Azure Pipelines except for macOS 2020-07-22 11:00:56 +02:00
Pietro Albini
750ad2097e
ci: upload non-macOS from GHA instead of Azure Pipelines 2020-07-20 17:43:48 +02:00
Pietro Albini
5e11ae4fc5
ci: allow RLA to pick the right PR number 2020-07-20 17:12:30 +02:00
bors
48036804d2 Auto merge of #74163 - cuviper:debian6, r=Mark-Simulacrum
ci: Update dist-{i686,x86_64}-linux to Debian 6

This increases the minimum `{i686,x86_64}-unknown-linux-gnu` platform
from RHEL/CentOS 5 (glibc 2.5 and kernel 2.6.18) to a slightly newer
Debian 6 `squeeze` (glibc 2.11 and kernel 2.6.32). While that release is
already EOL, it happens to match the minimum common versions of two
enterprise distros that do still need Rust support -- RHEL 6 (glibc 2.12
and kernel 2.6.32) and SLES 11 SP4 (glibc 2.11 and kernel 3.0).

Closes #62516.
2020-07-19 10:46:34 +00:00
Manish Goregaokar
7b66c6678c
Rollup merge of #74418 - rye:gha-dedup-shell-setting, r=pietroalbini
ci: Set `shell: bash` as a default, remove duplicates

A follow-up to #74406, this commit merely removes the `shell: bash` lines where they were added in favor of setting defaults for *all* "run" steps in the jobs that run the tests.

The changes in #74406 were needed because of an upstream change to the `windows-2019` GitHub Actions image. Previously, the configuration worked fine without specifying `shell: bash`, but for some reason this broke with a new change that was deployed today. The preceding PR was a hotfix to get CI passing, but there was a slightly less duplicative way to specify the default shell for the jobs, which was to set the `defaults.run` option.

This change applies to the `pr`, `try`, `auto`, and `auto-fallible` jobs, which are derived from the YAML-anchor `base-ci-job`.  I did not apply these changes to the `master`, `try-success`, `try-failure`, `auto-success`, or `auto-failure` jobs because they have only a few steps.

cc/r? @Mark-Simulacrum
2020-07-17 18:13:42 -07:00
Kristofer Rye
586629c0b6
ci: Replace exec-with-shell wrapper with "plain bash"
Also, promote defaults.run.shell from inside only the primary jobs to
the top level.

The src/ci/exec-with-shell.py wrapper script was formerly used to change
out the shell mid-job by intercepting a CI_OVERRIDE_SHELL environment
variable.  Now, instead, we just set `bash` as the global default across
all jobs, and we also delete the exec-with-shell.py script.

Signed-off-by: Kristofer Rye <kristofer.rye@gmail.com>
2020-07-17 08:44:14 -05:00
Kristofer Rye
49f5078048
ci: Stop setting CI_OVERRIDE_SHELL environment variable
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-17 08:29:01 -05:00
bors
86c0b85da9 Auto merge of #74395 - Mark-Simulacrum:stage0-next, r=pietroalbini
Bump version to 1.47

This also bumps to a more recent rustfmt version, just to keep us relatively up to date (though almost nothing has changed in rustfmt we use beyond bumps to the parser infra). No formatting changes as a result of this.

r? @pietroalbini
2020-07-17 03:51:35 +00:00
Mark Rousskov
8321b3fbe4 Add zlib1g to builder deps 2020-07-16 19:36:49 -04:00
Kristofer Rye
ab23a2a9c5
ci: Set shell: bash as a default, remove duplicates
A follow-up to #74406, this commit merely removes the `shell: bash`
lines where they are explicitly added in favor of setting defaults for
*all* "run" steps.

Signed-off-by: Kristofer Rye <kristofer.rye@gmail.com>
2020-07-16 18:06:31 -05:00
Mark Rousskov
5b287f6ce1 Set shell for github actions CI 2020-07-16 13:53:02 -04:00
Manish Goregaokar
64a27880de
Rollup merge of #74294 - msirringhaus:master, r=pietroalbini
Update cross-compilation README

README seemed rather out of date. I hope the information in my PR is now correct (it was more or less assembled by asking in zulip and learning-by-doing).
2020-07-15 11:01:24 -07:00
Manish Goregaokar
af3d4cb936
Rollup merge of #72973 - msizanoen1:riscv-host, r=pietroalbini
RISC-V GNU/Linux as host platform

This PR add a new builder named `dist-riscv64-linux` that builds the compiler toolchain for RISC-V 64-bit GNU/Linux.

r? @alexcrichton
2020-07-15 11:01:02 -07:00
Josh Stone
75748a4116 ci: Update dist-{i686,x86_64}-linux to Debian 6
This increases the minimum `{i686,x86_64}-unknown-linux-gnu` platform
from RHEL/CentOS 5 (glibc 2.5 and kernel 2.6.18) to a slightly newer
Debian 6 `squeeze` (glibc 2.11 and kernel 2.6.32). While that release is
already EOL, it happens to match the minimum common versions of two
enterprise distros that do still need Rust support -- RHEL 6 (glibc 2.12
and kernel 2.6.32) and SLES 11 SP4 (glibc 2.11 and kernel 3.0).
2020-07-15 10:00:06 -07:00
bors
c714eae0e3 Auto merge of #71272 - jclulow:illumos-x86-ci, r=pietroalbini
build dist for x86_64-unknown-illumos

This change creates a new Docker image, "dist-x86_64-illumos", and sets
things up to build the full set of "dist" packages for illumos hosts, so
that illumos users can use "rustup" to install packages.  It also
adjusts the manifest builder to expect complete toolchains for this
platform.
2020-07-15 04:46:06 +00:00
Martin Sirringhaus
92e010e4a1 Move all code-snippets to /tmp/ as basedir 2020-07-13 15:42:59 +02:00
Martin Sirringhaus
e1106ca61b Fix typo 2020-07-13 15:36:39 +02:00
Martin Sirringhaus
304f00816d Update cross-compilation README 2020-07-13 15:30:48 +02:00
msizanoen1
933ba82266 RISC-V GNU/Linux as host platform 2020-07-11 17:30:02 +07:00
Manish Goregaokar
8376fcd5ce
Rollup merge of #74161 - tblah:riscv64gc-dockerfile-improvment, r=Mark-Simulacrum
Fix  disabled dockerfiles

When the dockerfiles were moved into the host-x86_64 directory, paths
for COPY commands were updated with the new host-x86_64/ prefix. This
suggested that the intended context was src/ci/docker. However, the context
for disabled docker images was src/ci/docker/host-x86_64. This broke the new
paths and prevented src/ci/docker/scripts from being included in the
context at all.

This commit corrects this context allowing docker to find the files it
needs for COPY commands.

Also includes a quick fix to riscv recommended by @bjorn3
2020-07-10 23:26:54 -07:00
Pietro Albini
34994a9ebc
ci: allow gating gha on everything but macOS
In our GitHub Actions setup macOS is too unreliable to gate on it, but
the other builders work fine. This commit splits the macOS builders into
a separate job (called auto-fallible), allowing us to gate on the auto
job without failing due to macOS spurious failures.
2020-07-10 15:46:45 +02:00
Joshua M. Clulow
8368a35f83 build dist for x86_64-unknown-illumos
This change creates a new Docker image, "dist-x86_64-illumos", and sets
things up to build the full set of "dist" packages for illumos hosts, so
that illumos users can use "rustup" to install packages.  It also
adjusts the manifest builder to expect complete toolchains for this
platform.
2020-07-08 23:39:09 +00:00
Tom Eccles
d9fec595e8 ci: fix context for disabled docker images
When the dockerfiles were moved into the host-x86_64 directory, paths
for COPY commands were updated with the new host-x86_64/ prefix. This
suggested that the intended context was src/ci/docker. However, the context
for disabled docker images was src/ci/docker/host-x86_64. This broke the new
paths and prevented src/ci/docker/scripts from being included in the
context at all.

This commit corrects this context allowing docker to find the files it
needs for COPY commands.
2020-07-08 22:02:31 +01:00
Tom Eccles
51b646e487 ci: disabled: riscv: minimise docker overlays
Suggested by @bjorn3

Every RUN command creates a new overlay on top of the image as of before
the RUN command. Using fewer RUN commands prevents intermediate overlays
(which in this case would have contained the entire Linux source tree).
2020-07-08 21:20:13 +01:00
bors
dbf3ae7c3b Auto merge of #74019 - Manishearth:rollup-2st3jsk, r=Manishearth
Rollup of 12 pull requests

Successful merges:

 - #73140 (Fallback to xml.etree.ElementTree)
 - #73670 (Add `format_args_capture` feature)
 - #73693 (Use exhaustive match in const_prop.rs)
 - #73845 (Use &raw in A|Rc::as_ptr)
 - #73861 (Create E0768)
 - #73881 (Standardize bibliographic citations in rustc API docs)
 - #73925 (Improve comments from #72617, as suggested by RalfJung)
 - #73949 ([mir-opt] Fix mis-optimization and other issues with the SimplifyArmIdentity pass)
 - #73984 (Edit docs for rustc_data_structures::graph::scc)
 - #73985 (Fix "getting started" link)
 - #73997 (fix typo)
 - #73999 (Bump mingw-check CI image from Ubuntu 16.04 to 18.04.)

Failed merges:

 - #74000 (add `lazy_normalization_consts` feature gate)

r? @ghost
2020-07-04 01:09:09 +00:00
Eduard-Mihai Burtescu
3bb6dc7628 Bump mingw-check CI image from Ubuntu 16.04 to 18.04. 2020-07-03 18:27:46 +03:00
Pietro Albini
775eeb32ca
ci: remove the emulated aarch64-gnu image 2020-07-03 09:34:32 +02:00
Pietro Albini
65f2dce042
ci: add native aarch64-gnu docker builder 2020-07-03 09:34:31 +02:00
Pietro Albini
e1ea006701
ci: include the architecture in the docker cache key
We're starting to include native aarch64 machines in our CI, but before
this commit the architecture wasn't included in the cache key for our
Docker images. This means there could be conflicts between images
produced on different architectures, hurting our CI times.

This commit fixes the problem by including the output of `uname -m` in
the cache key.
2020-07-03 09:34:29 +02:00
Pietro Albini
1149cf04de
ci: provide feedback when running an image on the wrong host arch 2020-07-03 09:34:28 +02:00
Pietro Albini
5c876f336a
ci: move all x86_64 runners to the host-x86_64 directory
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-07-03 09:34:27 +02:00
Manish Goregaokar
441dd5ad45
Rollup merge of #73952 - ehuss:docker-dev, r=Mark-Simulacrum
Add option for local docker testing.

This adds the option `--dev` to `src/ci/docker/run.sh` so that it will enter an interactive environment for local testing. I have often needed this for testing things, but I always needed to edit this script. I wanted the ability to interact in the environment, run different commands, inspect errors, etc.
2020-07-02 15:55:59 -07:00
Manish Goregaokar
65342fd341
Rollup merge of #73724 - CryZe:wasm-saturating-casts, r=alexcrichton
Use WASM's saturating casts if they are available

WebAssembly supports saturating floating point to integer casts behind a target feature. The feature is already available on many browsers. Beginning with 1.45 Rust will start defining the behavior of floating point to integer casts to be saturating as well. For this Rust constructs additional checks on top of the `fptoui` / `fptosi` instructions it emits. Here we introduce the possibility for the codegen backend to construct saturating casts itself and only fall back to constructing the checks ourselves if that is not possible.

Resolves part of #73591
2020-07-02 15:55:52 -07:00
bors
8a6d4342be Auto merge of #73954 - Manishearth:rollup-8qvh170, r=Manishearth
Rollup of 10 pull requests

Successful merges:

 - #73414 (Implement `slice_strip` feature)
 - #73564 (linker: Create GNU_EH_FRAME header by default when producing ELFs)
 - #73622 (Deny unsafe ops in unsafe fns in libcore)
 - #73684 (add spans to injected coverage counters, extract with CoverageData query)
 - #73812 (ast_pretty: Pass some token streams and trees by reference)
 - #73853 (Add newline to rustc MultiSpan docs)
 - #73883 (Compile rustdoc less often.)
 - #73885 (Fix wasm32 being broken due to a NodeJS version bump)
 - #73903 (Changes required for rustc/cargo to build for iOS targets)
 - #73938 (Optimise fast path of checked_ops with `unlikely`)

Failed merges:

r? @ghost
2020-07-02 12:35:08 +00:00
Christopher Serr
838c497a45 Address review comments and add UI test 2020-07-02 09:35:37 +02:00
Manish Goregaokar
4593e9f49f
Rollup merge of #73885 - pietroalbini:ci-fix-wasm32, r=kennytm
Fix wasm32 being broken due to a NodeJS version bump

Emscripten's SDK [recently bumped the version of NodeJS they shipped](https://github.com/emscripten-core/emsdk/pull/529), but our Dockerfile for the wasm32 builder hardcoded the version number. This will cause consistent CI failures once the currently cached image is rebuilt (either due to a change or due to the cache expiring).

This PR fixes the problem by finding the latest version of NodeJS in the Emscripten SDK and symlinking it to a "latest" directory, which is then added to the `PATH`.
2020-07-02 00:16:38 -07:00
Eric Huss
4dc5685220 Add option for local docker testing. 2020-07-01 21:03:14 -07:00
Manish Goregaokar
fb976e65a0
Rollup merge of #72569 - ChrisDenton:remove-innosetup, r=nikomatsakis
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-07-01 20:35:41 -07:00
bors
9491f18c5d Auto merge of #72053 - Mark-Simulacrum:32bitcheck, r=pietroalbini
Test UI tests for pass=check

I'm going to just compare the builder times since I wasn't able to get this working nicely locally (hit some obscure linker error).

Fixes part of #69823
2020-07-01 21:01:36 +00:00
Mark Rousskov
562e0151d1 Verify UI tests work in pass=check mode
We do not test cross-compilation here as the PR builder lacks a sufficiently
recent LLVM to cross-compile to 32-bit linux. Once we bump the minimum LLVM
version to LLVM 9, this can use normal 32-bit linux.
2020-07-01 10:07:52 -04:00
bors
1505c12395 Auto merge of #73863 - pietroalbini:revert-8bc3122311d, r=Mark-Simulacrum
Revert "ci: allow gating gha on everything but macOS"

The macOS issue on GHA's side seems to be fixed, so this is not needed anymore.

r? @Mark-Simulacrum
2020-07-01 10:17:39 +00:00
Pietro Albini
844dc31494
ci: fix wasm32 broken due to a NodeJS version bump
Emscripten's SDK recently bumped the version of NodeJS they shipped, but
our Dockerfile for the wasm32 builder hardcoded the version number. This
will cause consistent CI failures once the currently cached image is
rebuilt (either due to a change or due to the cache expiring).

This commit fixes the problem by finding the latest version of NodeJS in
the Emscripten SDK and symlinking it to a "latest" directory, which is
then added to the PATH.
2020-06-30 09:13:15 +02:00
Pietro Albini
c8f2dd0d3b
Revert "ci: allow gating gha on everything but macOS"
This reverts commit 8bc3122311.
2020-06-29 17:20:01 +02:00
bors
9bdd2db3a6 Auto merge of #73671 - ehuss:update-mdbook, r=Mark-Simulacrum
Update mdbook

This updates mdbook to 0.4.  The list of changes can be found at https://github.com/rust-lang/mdBook/blob/master/CHANGELOG.md#mdbook-040.  I think the most important one is the change to include fonts with the book instead of using the Google Fonts CDN. This adds a few megabytes of fonts to the docs component.  It may be possible to share the fonts across the books, but would take a fair bit of work to make that happen, so I'm not sure if it is necessary.

This also removes mdbook-linkcheck. It is currently not being used, and I don't foresee it going back into use anytime soon. I would prefer not to maintain something that isn't being used, and it removes a very large number of dependencies.
2020-06-27 20:14:34 +00:00
Eric Huss
6654c5852f Remove mdbook-linkcheck. 2020-06-26 07:45:28 -07:00
Adrian Cruceru
db6fa2fff5 Remove deprecated comments 2020-06-25 12:30:27 +02:00
Adrian Cruceru
343a9212b0 Fix comments 2020-06-25 12:01:02 +02:00
Adrian Cruceru
f3b1582bb9 Update libunwind build process for x86_64-fortanix-unknown-sgx target 2020-06-24 11:28:41 +02:00
bors
7058471ade Auto merge of #73563 - Manishearth:rollup-oowgwwm, r=Manishearth
Rollup of 9 pull requests

Successful merges:

 - #72456 (Try to suggest dereferences on trait selection failed)
 - #72788 (Projection bound validation)
 - #72790 (core/time: Add Duration methods for zero)
 - #73227 (Allow multiple `asm!` options groups and report an error on duplicate options)
 - #73287 (lint: normalize projections using opaque types)
 - #73291 (Pre-compute `LocalDefId` <-> `HirId` mappings and remove `NodeId` <-> `HirId` conversion APIs)
 - #73378 (Remove use of specialization from librustc_arena)
 - #73411 (Update bootstrap to rustc 1.45.0-beta.2 (1dc0f6d8e 2020-06-15))
 - #73443 (ci: allow gating GHA on everything but macOS)

Failed merges:

r? @ghost
2020-06-20 22:53:46 +00:00
Manish Goregaokar
929f032742
Rollup merge of #73443 - pietroalbini:gha-auto-fallible, r=Mark-Simulacrum
ci: allow gating GHA on everything but macOS

In our GitHub Actions setup macOS is too unreliable to gate on it, but the other builders work fine. This commit splits the macOS builders into a separate job (called `auto-fallible`), allowing us to gate on the auto job without failing due to macOS spurious failures.

cc https://github.com/rust-lang/rust-central-station/issues/848
r? @Mark-Simulacrum
2020-06-20 14:45:04 -07:00
Ralf Jung
7930ee6874
Rollup merge of #73444 - pietroalbini:ci-remove-try-alt, r=Mark-Simulacrum
ci: disable alt build during try builds

The alt build is not actually needed often, and it can be added back on a case-by-case basis if a specific PR needs access to it.

This will free up a builder.

r? @Mark-Simulacrum
2020-06-20 16:39:55 +02:00
Ralf Jung
77efcab0f2
Rollup merge of #73171 - tblah:riscv-qemu-test, r=pietroalbini
RISC-V Emulated Testing

Adds a disabled docker image on which to run RISC-V tests. Based on the armhf image.

Test using
```
./src/ci/docker/run.sh riscv64gc-linux
```

cc: @msizanoen1
2020-06-20 16:39:51 +02:00
Tomasz Miąsko
d2e6e9373b ci: Enable sanitizers on dist-aarch64-linux 2020-06-20 09:48:14 +02:00
Pietro Albini
afde8601d6
ci: disable alt build during try builds
The build is not actually needed often, and it can be added back on a
case-by-case basis if a specific PR needs access to it.
2020-06-17 17:17:25 +02:00
Mark Rousskov
51e11e310c Avoid prematurely recording toolstates
When we're running with dry_run enabled (i.e. all builds do this initially), we're
guaranteed to save of a toolstate of TestFail for tools that aren't tested. In practice,
we do test tools as well, so for those tools we would initially record them as being
TestPass, and then later on re-record the correct state after actually testing them.
However, this would not work well if the build failed for whatever reason (e.g. panicking
in bootstrap, or as was the case in 73097, clippy failing to test successfully), we would
just go on believing that things passed when they in practice did not.

This commit also adjusts saving toolstate to never record clippy explicitly (otherwise, it
would be recorded when building it); eventually that'll likely move to other tools as well
but not yet. This is deemed simpler than checking everywhere we generically save
toolstate.

We also move clippy out of the "toolstate" no-fail-fast build into a separate x.py
invocation; this should no longer be technically required but provides the nice state of
letting us check toolstate for all tools and only then check clippy (giving full results
on every build).
2020-06-15 13:56:11 -04:00
Pietro Albini
8bc3122311
ci: allow gating gha on everything but macOS
In our GitHub Actions setup macOS is too unreliable to gate on it, but
the other builders work fine. This commit splits the macOS builders into
a separate job (called auto-fallible), allowing us to gate on the auto
job without failing due to macOS spurious failures.
2020-06-15 15:12:43 +02:00
Ralf Jung
fb75d4a746
Rollup merge of #73296 - ehuss:remove-msvc-aux, r=Mark-Simulacrum
Remove vestigial CI job msvc-aux.

This CI job isn't really doing anything, so it seems prudent to remove it.

For some history:
* This was introduced in #48809 when the msvc job was split in two to keep it under 2 hours (oh the good old days). At the time, this check-aux job did a bunch of things:
    * tidy
    * src/test/pretty
    * src/test/run-pass/pretty
    * src/test/run-fail/pretty
    * src/test/run-pass-valgrind/pretty
    * src/test/run-pass-fulldeps/pretty
    * src/test/run-fail-fulldeps/pretty
* Tidy was removed in #60777.
* run-pass and run-pass-fulldeps moved to UI in #63029
* src/test/pretty removed in #58140
* src/test/run-fail moved to UI in #71185
* run-fail-fulldeps removed in #51285

Over time through attrition, the job was left with one lonely thing: `src/test/run-pass-valgrind/pretty`. And of course, this wasn't actually running the "pretty" tests. The normal `run-pass-valgrind` tests ran, and then when it tried to run in "pretty" mode, all the tests were ignored because compiletest thought nothing had changed (apparently compiletest isn't fingerprinting the mode?  Needs more investigation…). `run-pass-valgrind` is already being run as part of `x86_64-msvc-1`, so there's no need to run it here.

I've taken the liberty of removing `src/test/run-pass-valgrind/pretty` as a distinct test. I'm guessing from the other PR's that the pretty tests should now live in `src/test/pretty`, and that the team has moved away from doing pretty tests on other parts of the `src/test` tree.
2020-06-15 12:01:11 +02:00
bors
4fb54ed484 Auto merge of #73089 - tmiasko:musl-1.1.24, r=kennytm
Update musl to 1.1.24

Release notes since previous version 1.1.22:

## 1.1.23 release notes

### new features:
- riscv64 port
- configure now allows customizing AR and RANLIB vars
- header-level support for new linux features in 5.1

### major internal changes:
- removed extern __syscall; syscall header code is now fully self-contained

### performance:
- new math library implementation for log/exp/pow
- aarch64 dynamic tlsdesc function is streamlined

### compatibility & conformance:
- O_TTY_INIT is now defined
- sys/types.h no longer pollutes namespace with sys/sysmacros.h in any profile
- powerpc asm is now compatible with clang internal assembler

### changes for new POSIX interpretations:
- fgetwc now sets stream error indicator on encoding errors
- fmemopen no longer rejects 0 size

### bugs fixed:
- static TLS for shared libraries was allocated wrong on "Variant I" archs
- crash in dladdr reading through uninitialized pointer on non-match
- sigaltstack wrongly errored out on invalid ss_size when doing SS_DISABLE
- getdents function misbehaved with buffer length larger than INT_MAX
- set*id could deadlock after fork from multithreaded process

### arch-specfic bugs fixed:
- s390x SO_PEERSEC definition was wrong
- passing of 64-bit syscall arguments was broken on microblaze
- posix_fadvise was broken on mips due to missing 7-arg syscall support
- vrregset_t layout and member naming was wrong on powerpc64

## 1.1.24 release notes

### new features:
- GLOB_TILDE extension to glob
- non-stub catgets localization API, using netbsd binary catalog format
- posix_spawn file actions for [f]chdir (extension, pending future standard)
- secure_getenv function (extension)
- copy_file_range syscall wrapper (Linux extension)
- header-level support for new linux features in 5.2

### performance:
- new fast path for lrint (generic C version) on 32-bit archs

### major internal changes:
- functions involving time are overhauled to be time64-ready in 32-bit archs
- x32 uses the new time64 code paths to replace nasty hacks in syscall glue

### compatibility & conformance:
- support for powerpc[64] unaligned relocation types
- powerpc[64] and sh sys/user.h no longer clash with kernel asm/ptrace.h
- select no longer modifies timeout on failure (or at all)
- mips64 stat results are no longer limited to 32-bit time range
- optreset (BSD extension) now has a public declaration
- support for clang inconsistencies in wchar_t type vs some 32-bit archs
- mips r6 syscall asm no longer has invalid lo/hi register clobbers
- vestigial asm declarations of __tls_get_new are removed (broke some tooling)
- riscv64 mcontext_t mismatch glibc's member naming is corrected

### bugs fixed:
- glob failed to match broken symlinks consistently
- invalid use of interposed calloc to allocate initial TLS
- various dlsym symbol resolution logic errors
- semctl with SEM_STAT_ANY didn't work
- pthread_create with explicit scheduling was subject to priority inversion
- pthread_create failure path had data race for thread count
- timer_create with SIGEV_THREAD notification had data race getting timer id
- wide printf family failed to support l modifier for float formats

### arch-specific bugs fixed:
- x87 floating point stack imbalance in math asm (i386-only CVE-2019-14697)
- x32 clock_adjtime, getrusage, wait3, wait4 produced junk (struct mismatches)
- lseek broken on x32 and mipsn32 with large file offsets
- riscv64 atomics weren't compiler barriers
- riscv64 atomics had broken asm constraints (missing earlyclobber flag)
- arm clone() was broken when compiled as thumb if start function returned
- mipsr6 setjmp/longjmp did not preserve fpu register state correctly

Fixes #71099.
2020-06-14 10:37:36 +00:00
bors
d3d3a14f2f Auto merge of #73188 - mati865:use-preinstalled-msys2, r=pietroalbini
Use preinstalled msys2

Fixes https://github.com/rust-lang/rust/issues/65767
2020-06-14 03:10:53 +00:00
Eric Huss
c0aef6d816 Remove vestigial CI job msvc-aux. 2020-06-12 14:17:42 -07:00
Mateusz Mikuła
91b6f1585d Use preinstalled MSYS2 2020-06-11 16:57:26 +02:00
Eric Huss
cd02052ad0 Fix emcc failure for wasm32. 2020-06-10 06:23:06 -07:00
Tom Eccles
a008a55ff6 Add a disabled builder for riscv64 emulated tests
This will run all tests for `riscv64gc-unknown-linux-gnu` in a QEMU
instance. This is based upon the armhf QEMU test image.
2020-06-09 16:22:15 +01:00
Tomasz Miąsko
9d01cd1df6 Update musl to 1.1.24 2020-06-07 17:52:37 +02:00
Jethro Beekman
ea48f2e4da Enable LVI hardening for x86_64-fortanix-unknown-sgx 2020-06-07 12:12:30 +02:00
Eric Huss
e6582006e8 Enable lld for Cargo tests on Windows. 2020-06-04 14:32:23 -07:00
Chris Denton
912963bd08 Remove legacy InnoSetup GUI installer
On Windows the InnoSetup installer was superseded by the MSI installer. It's no longer needed.
2020-05-25 13:53:02 +01:00
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
Mark Rousskov
9a4e7183d4 Configure cache domain for GHA 2020-05-11 10:50:53 -04:00
Mark Rousskov
54b7d45564 Use CDN for ci-caches on download
This will reduce costs, as well as lays the groundwork for developers to be able
to locally pull the published docker images without needing AWS credentials.
2020-05-08 17:36:44 -04:00
bors
1eefa6783c Auto merge of #71995 - pietroalbini:ci-windows-detect-latest-python, r=Mark-Simulacrum
[CI] Use the latest Python available on Windows

This PR 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.

This fixes the current GHA outage we're having. I fully expect the outage to propagate to Azure Pipelines in the coming days if we don't merge this, as both GHA and Azure use the same underlying image. Once the PR is merged we can re-enabled the double-gating.

r? @Mark-Simulacrum
2020-05-07 21:52:39 +00: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
4802f097c8 Auto merge of #71649 - ecstatic-morse:ci-stage0-doc, r=Mark-Simulacrum
Ensure that `./x.py doc --stage 0 src/libstd` works via CI

This was split off from #71645, which recommends that users first try building `libstd` docs with the bootstrap `rustdoc`. This should work in most cases, but will fail if we start using a very recent `rustdoc` feature outside a `#[cfg(not(bootstrap))]`.

It would be very nice to guarantee that `./x.py doc --stage 0 src/libstd` works, since it allows documentation changes to be rendered locally without needing to build the compiler. However, it may put too big a burden on `rustdoc` developers who presumably want to dogfood new features.
2020-05-07 09:47:49 +00:00
mark
9e43b00d4f Turn of rustc-dev-guide toolstate for now 2020-04-30 21:50:43 -05:00
Pietro Albini
fde5811d74
ci: use bash when executing the "bors build finished" jobs
We don't clone the repository in those builders, so the default shell
(src/ci/exec-with-shell.py) is not present there.
2020-04-29 16:32:32 +02:00
bors
825cf51ad7 Auto merge of #71486 - alexcrichton:arm64-lld, r=Mark-Simulacrum
Enable "full tools" option on ARM dist builders

This commit switches the `--enable-extended` option on the arm-related
dist builders to `--enable-full-tools`. This alias in `config.py`
corresponds to enabling a few more options:

* `rust.lld = true` - this is the main purpose of this PR, to enable LLD
  on ARM-related platforms. This means it will effectively unlock
  compilation of wasm programs from an arm host.

* `rust.llvm-tools = true` - it turns out that this option is largely
  ignored in rustbuild today. This is only read in one location to set
  some flags for the `llvm-tools` package, but the `llvm-tools` package
  is already produced on all of these builders. It's predicted that this
  will have no effect on build times.

* `rust.codegen-backends = ['llvm']` - historically this also enabled
  the emscripten backend, but that has long since been removed.

This brings the ARM dist builders in line with the x86_64 dist builders
using this flag. The hope is that the extra time spent on CI building
LLD will acceptable because it's cached by `sccache`, LLD is a
relatively small C++ project, and the dist builders are all clocking
well under 3 hours (the slowest of all builders) around 2 hours.

There's likely some possible cleanup that can happen with these
configure options since it doesn't look like they've aged too too well,
but I'm hopeful that possible refactorings, if necessary, could be
deferred to future PRs.
2020-04-28 22:18:03 +00:00
Dylan MacKenzie
1f7c8967dc Ensure that ./x.py doc --stage 0 src/libstd works via CI 2020-04-28 10:17:54 -07:00
Alex Crichton
c7a7658c6d Enable "full tools" option on ARM dist builders
This commit switches the `--enable-extended` option on the arm-related
dist builders to `--enable-full-tools`. This alias in `config.py`
corresponds to enabling a few more options:

* `rust.lld = true` - this is the main purpose of this PR, to enable LLD
  on ARM-related platforms. This means it will effectively unlock
  compilation of wasm programs from an arm host.

* `rust.llvm-tools = true` - it turns out that this option is largely
  ignored in rustbuild today. This is only read in one location to set
  some flags for the `llvm-tools` package, but the `llvm-tools` package
  is already produced on all of these builders. It's predicted that this
  will have no effect on build times.

* `rust.codegen-backends = ['llvm']` - historically this also enabled
  the emscripten backend, but that has long since been removed.

This brings the ARM dist builders in line with the x86_64 dist builders
using this flag. The hope is that the extra time spent on CI building
LLD will acceptable because it's cached by `sccache`, LLD is a
relatively small C++ project, and the dist builders are all clocking
well under 3 hours (the slowest of all builders) around 2 hours.

There's likely some possible cleanup that can happen with these
configure options since it doesn't look like they've aged too too well,
but I'm hopeful that possible refactorings, if necessary, could be
deferred to future PRs.
2020-04-23 12:45:18 -07:00
Pietro Albini
61831ff7f7
ci: remove duplicated job names on GHA 2020-04-22 18:55:48 +02:00
Pietro Albini
1f106b5527
ci: set a default shell on GHA 2020-04-22 18:53:11 +02:00
Josh Stone
8506bb0060 Update the minimum external LLVM to 8
LLVM 8 was released on March 20, 2019, over a year ago.
2020-04-14 12:44:41 -07:00
bors
c58c532744 Auto merge of #70989 - eddyb:mir-opt-32-pr-ci, r=Mark-Simulacrum
ci: run mir-opt tests on PR CI also as 32-bit (for `EMIT_MIR_FOR_EACH_BIT_WIDTH`).

Background: #69916 and [`src/test/mir-opt/README.md`](https://github.com/rust-lang/rust/blob/master/src/test/mir-opt/README.md):
> By default 32 bit and 64 bit targets use the same dump files, which can be problematic in the
presence of pointers in constants or other bit width dependent things. In that case you can add
>
> ```
> // EMIT_MIR_FOR_EACH_BIT_WIDTH
> ```
>
> to your test, causing separate files to be generated for 32bit and 64bit systems.

However, if you change the output of such a test (intentionally or not), or if you add a test and it varies between 32-bit and 64-bit platforms, you have to run this command (for a x64 linux host):
`./x.py test --stage 1 --target x86_64-unknown-linux-gnu --target i686-unknown-linux-gnu --bless  src/test/mir-opt`

Otherwise, bors trying to merge the PR will fail, since we test 32-bit targets there.
But we don't on PR CI, which means there's no way the PR author would know (unless they were burnt by this already and know what to look for).

This PR resolves that by running `mir-opt` tests for ~~`i686-unknown-linux-gnu`~~, on PR CI.
**EDIT**: switched to `armv5te-unknown-linux-gnueabi` to work around LLVM 7 crashes (see https://github.com/rust-lang/compiler-builtins/pull/311#issuecomment-612270089), found during testing.

cc @rust-lang/wg-mir-opt @rust-lang/infra
2020-04-13 16:28:57 +00:00
Eduard-Mihai Burtescu
cb6a5609b3 ci: run mir-opt tests on PR CI also as 32-bit (for EMIT_MIR_FOR_EACH_BIT_WIDTH). 2020-04-11 13:43:22 +03: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
bors
167510f776 Auto merge of #70619 - etherealist:musl_lld, r=Mark-Simulacrum
Enable rust-lld on dist-x86_64-musl

Add rust-lld to rustup llvm-tools-preview on nightly for musl

I am using a musl distro on my workstation, with `RUSTFLAGS="-C target-feature=-crt-static"` this works fine. I know that `x86_64-unknown-linux-musl` was originally only meant as a target and not as a host. But most problems have been fixed, and I have fewer problems with `unknown` (rustup) than when I am using `x86_64-alpine-linux-musl` (rust installed by the distro). The only thing I am missing is rust-lld in llvm-tools-preview on nightly.

I needed rust-lld for a wasm tutorial. I built rust-lld and tested it with that tutorial, and it worked well. I asked [here](https://users.rust-lang.org/t/enable-rust-lld-on-x86-64-unknown-linux-musl/39851) where to request to enable lld and ended up doing this PR.

I compared llvm-tools-preview `nightly-x86_64-unknown-linux-musl` and `nightly-x86_64-unknown-linux-gnu`: only rust-lld is missing in musl.

I tested the change using:

```bash
./src/ci/docker/run.sh dist-x86_64-musl
```

And I checked that the resulting rust-lld binary runs.
2020-04-10 09:51:27 +00: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
bors
853c4774e2 Auto merge of #69898 - spastorino:rename-rustc-guide2, r=Xanewok
Move rustc-guide submodule to rustc-dev-guide

r? @pietroalbini
2020-04-04 18:17:14 +00:00
Mazdak Farrokhzad
73f0cf69c1
Rollup merge of #68334 - andre-richter:master, r=japaric
AArch64 bare-metal targets: Build rust-std

This PR complements https://github.com/rust-lang/rust/pull/68253
2020-04-03 03:26:45 +02:00
bors
0f72ce1b27 Auto merge of #70628 - pietroalbini:gha-multiple-tries, r=Mark-Simulacrum
GHA: enable running multiple try builds at the same time

While for auto, try and PR builds we only want the latest commit to be tested, that's not true for try builds: each commit pushed to the branch is a different PR being tested, and we want multiple PRs to be tested in parallel if there is enough demand.

Fixes #70569
2020-04-02 09:10:06 +00:00
Pietro Albini
824dcd424f
ci: disable cancel-outdated-builds for the try branch
While for auto, try and PR builds we only want the latest commit to be
tested, that's not true for try builds: each commit pushed to the branch
is a different PR being tested, and we want multiple PRs to be tested in
parallel if there is enough demand.

Fixes #70569
2020-03-31 19:49:36 +02:00
David Sonder
a61a7c5993
Enable rust-lld on dist-x86_64-musl
Add rust-lld to llvm-tools-preview on nightly for musl
2020-03-31 17:20:16 +02:00
Ben Wolsieffer
55bdb61b48 Deduplicate crosstool-ng.sh 2020-03-30 20:09:45 -04:00
Ben Wolsieffer
c2f1097ade Upgrade GCC to 8.3.0, glibc to 2.17.0 and crosstool-ng to 1.24.0 for dist-arm-linux and dist-armhf-linux 2020-03-25 15:29:21 -04:00
Santiago Pastorino
4387a8b96e
Move rustc-guide submodule to rustc-dev-guide 2020-03-24 15:38:53 -03:00
Pietro Albini
45910e74fd
ci: add notice on top of the azure pipelines configuration
This will inform contributors tweaking the Azure Pipelines configuration
that they also need to tweak the GitHub Actions setup.
2020-03-24 15:36:17 +01:00
Pietro Albini
89339df264
ci: run the "bors build finished" jobs only during try and auto runs 2020-03-24 15:36:14 +01: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
11aafa5305
ci: run gha workflows for try, auto and master on the fork 2020-03-24 15:36:12 +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
Mazdak Farrokhzad
edbbb4908c
Rollup merge of #70159 - alexcrichton:update-wasi, r=pietroalbini
Update the bundled wasi-libc with libstd

Brings in WebAssembly/wasi-libc#184 which can help standalone programs
with environment variables!
2020-03-23 10:29:14 +01:00
Mazdak Farrokhzad
bbd1ca3b69
Rollup merge of #70054 - rojamd:android-pgo, r=michaelwoerister
Build dist-android with --enable-profiler

This will make the runtime available to enable PGO for Rust code in Firefox on Android.

r? @michaelwoerister
2020-03-21 08:51:15 +01:00
Matt Cooper
6db4bb68d1 compat with macOS's ancient Bash 2020-03-20 14:53:00 -04:00
Alex Crichton
d1a4a57777 Update the bundled wasi-libc with libstd
Brings in WebAssembly/wasi-libc#184 which can help standalone programs
with environment variables!
2020-03-19 09:58:31 -07: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
Mazdak Farrokhzad
91426e9666
Rollup merge of #69688 - JohnTitor:move-tidy, r=Mark-Simulacrum
Move tidy check to mingw-check

Fixes #69613
2020-03-17 12:16:12 +01:00
rojamd
f8870bfd63 Build dist-android with --enable-profiler 2020-03-16 15:29:10 -04:00
Dylan DPC
fdb5df049c
Rollup merge of #69964 - ollie27:ci_nodejs, r=Mark-Simulacrum,GuillaumeGomez
Add Node.js to PR CI image

This should allow the `rustdoc-js` and `rustdoc-js-std` test suites to run automatically on PRs.
2020-03-16 01:30:33 +01:00
Matt Cooper
330233470e fix a glaring typo 2020-03-13 08:59:32 -04:00
Oliver Middleton
965888adc2 Add Node.js to PR CI image
This should allow the `rustdoc-js` and `rustdoc-js-std` test suites to run automatically on PRs.
2020-03-12 22:55:51 +00:00
Mazdak Farrokhzad
3d23de7baf
Rollup merge of #69705 - ehuss:toolstate-remove-redundant-beta, r=Mark-Simulacrum
Toolstate: remove redundant beta-week check.

I made a bit of a mistake in #69624.  The "beta regression" doesn't need to be checked twice.

I also rolled up #69693 to avoid merge conflicts.
2020-03-12 16:32:15 +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
Matthias Krüger
136ad015b6 fix various typos 2020-03-06 15:19:31 +01:00
Yuki Okushi
d6a17b598f Move tidy check to mingw-check 2020-03-05 22:59:54 +09:00
Ralf Jung
a6d8c9c5eb more toolstate comments 2020-03-04 08:30:26 -08:00
Andre Richter
176bf3c60f
AArch64 bare-metal targets: Build rust-std
This patch enables building of rust-std for the aarch64 bare-metal targets.

For the compiler intrinsics, it fetches the AArch64 bare-metal target
(aarch64-none-elf) GCC for the A-profile provided by ARM itself from
https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads
2020-02-28 19:05:42 +01: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
Yuki Okushi
931005d549
Rollup merge of #68947 - chrissimpkins:python-fmt, r=alexcrichton
Python script PEP8 style guide space formatting and minor Python source cleanup

This PR includes the following changes in the Python sources based on a flake8 3.7.9 (mccabe: 0.6.1, pycodestyle: 2.5.0, pyflakes: 2.1.1) CPython 3.7.6 on Darwin lint:

- PEP8 style guide spacing updates *without* line length changes
- removal of unused local variable assignments in context managers and exception handling
- removal of unused Python import statements
- removal of unnecessary semicolons
2020-02-12 18:55:41 +09:00
Jethro Beekman
1b12232b8f Fix SGX RWLock representation for UnsafeCell niche fix 2020-02-10 14:44:12 -05:00
Chris Simpkins
60889d418e remove unnecessary semicolons 2020-02-07 23:35:27 -05:00
Jorge Aparicio
8abbd0beae for now, do not build rust-std for the armv7a-none-eabihf target
it needs some upstream changes in the build script of the compiler-builtins
crate
2020-01-21 17:18:37 +01:00
Jorge Aparicio
a3a0776100
Merge branch 'master' into bare-metal-cortex-a 2020-01-20 07:50:32 +00:00
bors
1b117d7546 Auto merge of #68037 - msizanoen1:riscv-ci, r=alexcrichton
Distribution CI for riscv64gc-unknown-linux-gnu

This modifies `dist-various-1` to build the standard library for RISC-V GNU/Linux.

r? @alexcrichton
2020-01-18 08:18:44 +00:00
Jorge Aparicio
470cdf54ac add bare metal ARM Cortex-A targets to rustc
-> `rustc --target armv7-none-eabi` will work

also build rust-std (rustup) components for them

-> `rustup target add armv7-none-eabi` will work
2020-01-15 18:05:06 +01:00
Alex Crichton
87504173b3 Update the wasi-libc bundled with libstd 2020-01-14 09:59:46 -08:00
bors
3ebcfa1451 Auto merge of #67831 - mati865:ci-images-upgrade, r=pietroalbini
ci: bump ubuntu 19.04 images to 19.10

Ubuntu 19.04 goes EOL this month.
2020-01-12 14:52:48 +00:00
msizanoen1
451c97ba53 Distribution CI for RISC-V GNU/Linux 2020-01-11 12:14:03 +07:00
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
Mateusz Mikuła
66207ae7f8 ci: bump ubuntu 19.04 images to 19.10
Ubuntu 19.04 goes EOL this month.
2020-01-03 12:35:55 +01: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
Pietro Albini
53be272415
ci: enable "run when submodule changes" with environment variables
We have a job in our CI (PR's x86_64-gnu-tools) that's supposed to run
only when a submodule is changed in the PR, and it works by having a
task at the start of the build that skips all the following tasks if the
condition isn't met.

Before this commit that task was gated with template parameters, which
is a unique feature of Azure Pipelines. To make our CI more generic this
commit switches the gate to use a simple environment variable plus a
condition, which should be supported on more CI providers.
2019-10-29 10:01:27 +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
Wang Xuerui
23b382755d
ci: add support for MIPS64 musl targets 2019-10-26 18:47:08 +08:00
Pietro Albini
9c44ca231a
ci: fix tidy 2019-10-25 16:51:12 +02:00
Pietro Albini
fe65c8ef4c
ci: set MSYS_BITS environment variable for all windows builders
A few dist builders lacked that variable, causing build failures.
2019-10-25 16:47:41 +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
Pietro Albini
d52db03ef0
ci: fix innosetup installation 2019-10-25 16:08:42 +02:00
Pietro Albini
10fa917a13
ci: reuse the mirrors base url from shared.sh in scripts 2019-10-25 16:08:41 +02:00
Pietro Albini
7855ee2aa8
ci: fix tidy 2019-10-25 16:08:39 +02:00
Pietro Albini
4bc4fae073
ci: cleanup platform detection 2019-10-25 16:08:37 +02:00
Pietro Albini
102dc3ddc1
ci: use shared.sh in scripts/install-awscli.sh 2019-10-25 16:08:36 +02:00
Pietro Albini
9c252f14bc
ci: extract verifying line endings into a script 2019-10-25 16:08:35 +02:00
Pietro Albini
9a9d427ef9
ci: extract checking out submodules into a script 2019-10-25 16:08:33 +02:00
Pietro Albini
d264e954dc
ci: extract enabling ipv6 on docker into a script 2019-10-25 16:08:32 +02:00
Pietro Albini
bc9a0dc1b3
ci: extract installing ninja into a script 2019-10-25 16:08:31 +02:00
Pietro Albini
e55059a5e6
ci: extract installing mingw into a script 2019-10-25 16:08:29 +02:00
Pietro Albini
852dfd7a17
ci: extract installing msys2 into a script 2019-10-25 16:08:27 +02:00
Pietro Albini
e0b1b3bbc1
ci: extract disabling git crlf handling into a script 2019-10-25 16:03:11 +02:00
Pietro Albini
6dd074a8f6
ci: extract parts of windows-build-deps into scripts 2019-10-25 16:03:10 +02:00
Pietro Albini
1c0d764049
ci: extract switching xcode into a script 2019-10-25 16:03:08 +02:00
Pietro Albini
c5bbde3e2f
ci: extract installing clang into a script 2019-10-25 16:03:07 +02:00
Pietro Albini
a36077235e
ci: extract installing sccache into a script 2019-10-25 16:03:06 +02:00
Pietro Albini
c1fb42add5
ci: extract dumping the environment into a script 2019-10-25 16:03:04 +02:00
Pietro Albini
4f568f8a81
ci: move install-awscli.sh into scripts/ 2019-10-25 16:03:03 +02:00
Mateusz Mikuła
2fea52511e workaround msys2 bug
Co-Authored-By: Pietro Albini <pietro@pietroalbini.org>
2019-10-24 18:03:01 +02:00
Alex Crichton
c7d285b781 Remove src/llvm-emscripten submodule
With #65251 landed there's no need to build two LLVM backends and ship
them with rustc, every target we have now uses the same LLVM backend!

This removes the `src/llvm-emscripten` submodule and additionally
removes all support from rustbuild for building the emscripten LLVM
backend. Multiple codegen backend support is left in place for now, and
this is intended to be an easy 10-15 minute win on CI times by avoiding
having to build LLVM twice.
2019-10-21 13:05:31 -07:00
bors
e66a628227 Auto merge of #65302 - msizanoen1:fix-armv7-segfault, r=alexcrichton
Upgrade GCC to 8.3.0, glibc to 1.17.0 and crosstool-ng to 1.24.0 for dist-armv7-linux

#62896 was caused by the usage of the GCC 5.2.0 toolchain, which was released back in 2015 and may have bugs affecting LLVM 9.
This PR upgrade GCC to 8.3.0 from 5.2.0, glibc from 1.16.0 to 1.17.0 and crosstool-ng to 1.24.0 only for dist-armv7-linux.
Fixes #62896

r? @alexcrichton
2019-10-20 02:06:42 +00:00
Thomas Lively
c0aa7cb2b5 Remove PR runs, enable wasm32 CI, and move asmjs to disabled 2019-10-16 21:18:34 -07:00
Thomas Lively
4b26d9c142 User should not change between emcc install and use 2019-10-16 17:06:48 -07:00
Thomas Lively
b0b6e368c0 Update test and add -O1 to wasm32 Dockerfile 2019-10-16 17:06:48 -07:00
Thomas Lively
a2264f6af5 Temporarily enable asmjs and wasm32 on PR CI 2019-10-16 17:06:48 -07:00
Thomas Lively
2bf59bea48 Upgrade Emscripten targets to use upstream LLVM backend
- Compatible with Emscripten 1.38.46-upstream or later upstream.
 - Refactors the Emscripten target spec to share code with other wasm
   targets.
 - Replaces the old incorrect wasm32 C call ABI with the correct one,
   preserving the old one as wasm32_bindgen_compat for wasm-bindgen
   compatibility.
 - Updates the varargs ABI used by Emscripten and deletes the old one.
 - Removes the obsolete wasm32-experimental-emscripten target.
 - Uses EMCC_CFLAGS on CI to avoid the timeout problems with #63649.
2019-10-16 17:06:48 -07:00
msizanoen
870ea52889 Mirror crosstool-ng on rust-lang-ci-mirrors 2019-10-16 21:34:17 +07:00
qtmlabs
e58ad8dedf Fix path to crosstool-ng.sh 2019-10-13 14:06:25 +07:00
qtmlabs
88ea4ff26a Add crosstool-ng 1.24.0 unzip dependency 2019-10-12 12:05:22 +07:00
qtmlabs
e2ce082fd8 Revert "Remove reference to Ubuntu 15.10 ARM toolchain"
This reverts commit 4f97e5d411.
2019-10-11 16:05:17 +07:00
qtmlabs
4f97e5d411 Remove reference to Ubuntu 15.10 ARM toolchain 2019-10-11 15:32:01 +07:00
qtmlabs
90d0baf2b4 Upgrade GCC to 8.3.0, glibc to 1.17.0 and crosstool-ng to 1.24.0 for dist-armv7-linux 2019-10-11 15:13:22 +07:00
Tyler Mandry
d16b7f705b Revert "Auto merge of #63649 - tlively:emscripten-upstream-upgrade, r=alexcrichton"
This reverts commit 7870050796, reversing
changes made to 2e7244807a.
2019-10-05 21:38:45 -07:00
Thomas Lively
63955bbdf9 Remove asmjs and wasm32 from PR CI 2019-10-04 00:47:21 -07:00
Thomas Lively
b78cc69cc8 Revert "Temporarily enable wasm32 CI" 2019-10-04 00:47:21 -07:00
Thomas Lively
1b4d5ec0f7 Temporarily enable wasm32 CI 2019-10-04 00:47:21 -07:00
Thomas Lively
5b56c660c9 Fix ABI, run and fix more tests, re-enable CI for PRs 2019-10-04 00:47:21 -07:00
Thomas Lively
9a55103b98 Upgrade Emscripten targets to use upstream LLVM backend
- Refactors the Emscripten target spec to share code with other wasm
   targets.
 - Replaces the incorrect wasm32 C call ABI with the old asmjs
   version, which is correct for both wasm32 and JS.
 - Updates the varargs ABI used by Emscripten and deletes the old one.
 - Removes the obsolete wasm32-experimental-emscripten target.
 - Temporarily makes Emscripten targets use panic=abort by default
   because supporting unwinding will require an LLVM patch.
2019-10-04 00:47:21 -07:00
Tyler Mandry
65a050fddc
Rollup merge of #64722 - Mark-Simulacrum:alt-parallel, r=alexcrichton
Make all alt builders produce parallel-enabled compilers

We're not quite ready to ship parallel compilers by default, but the alt
builders are not used too much (in theory), so we believe that shipping
a possibly-broken compiler there is not too problematic.

r? @nikomatsakis
2019-10-01 23:06:11 -07:00
Tyler Mandry
2185710748 Use https for curl when building for linux 2019-09-29 13:33:12 -07:00
Mark Rousskov
a3639c6859 Make all alt builders produce parallel-enabled compilers
We're not quite ready to ship parallel compilers by default, but the alt
builders are not used too much (in theory), so we believe that shipping
a possibly-broken compiler there is not too problematic.
2019-09-23 19:27:17 -04:00
Alex Crichton
b923306913 Remove --enable-extended from cross dist builder
Shouldn't have an effect on produced artifacts and otherwise is causing
issues where `-Zsave-analysis` is passed during tests but fails
compilation.
2019-09-23 09:34:44 -07:00
bors
9ad1e7c46c Auto merge of #64553 - alexcrichton:windows-bash-install-scripts, r=Mark-Simulacrum
azure: Convert Windows installations scripts to `bash`

Looks like `script`, which uses `cmd.exe`, doesn't have fail-fast
behavior and if a leading command fails the script doesn't actually fail
so long as the last command succeeds. We instead want the opposite
behavior where if any step fails the whole script fails.

I don't really know `cmd.exe` that well, nor powershell, so I've opted
to move everything to `bash` which should be a good common denominator
amongst all platforms to work with. Additionally I know that `set -e`
works to cause scripts to fail fast.

Closes #64551
2019-09-20 11:38:56 +00:00
Alex Crichton
72ea960056 azure: Convert Windows installations scripts to bash
Looks like `script`, which uses `cmd.exe`, doesn't have fail-fast
behavior and if a leading command fails the script doesn't actually fail
so long as the last command succeeds. We instead want the opposite
behavior where if any step fails the whole script fails.

I don't really know `cmd.exe` that well, nor powershell, so I've opted
to move everything to `bash` which should be a good common denominator
amongst all platforms to work with. Additionally I know that `set -e`
works to cause scripts to fail fast.

Note that some scripts remain as `script` since they don't appear to
work in` bash`. I'm not really sure why but I reorganized them slightly
to have the "meaty command" run at the end.
2019-09-19 07:29:45 -07:00
Pietro Albini
5384a199c7
ci: split aws credentials in two separate users with scoped perms
This commit changes our CI to use two separate IAM users to
authenticate with AWS:

* ci--rust-lang--rust--sccache: has access to the rust-lang-ci-sccache2
  S3 bucket and its credentials are available during the whole build.
* ci--rust-lang--rust--upload: has access to the rust-lang-ci2 S3 bucket
  and its credentials are available just during the upload step.

The new tokens are available in the `prod-credentials` library.
2019-09-19 08:19:57 +02:00
bors
9150f844e2 Auto merge of #64517 - alexcrichton:less-assertions, r=pietroalbini
azure: Disable more LLVM/debug assertions in

This commit disables LLVM/debug assertions in our 5 slowest builders:

* i686-gnu
* i686-gnu-nopt
* i686-msvc-1
* i686-msvc-2
* x86_64-msvc-cargo

This is reducing the amount of test coverage for LLVM/debug assertions,
but we're just unfortunately running out of time on CI too many times.
Some test builds have shown that i686-gnu drops nearly an hour of CI
time by disabling these two assertions. Perhaps when we eventually get
4-core machines we can reenable these, but for now turn them off and
hook them up to the tracking issue at #59637 which will ideally be
repurposes to tracking all of these.
2019-09-17 14:43:44 +00:00
Alex Crichton
821d293283 azure: Disable more LLVM/debug assertions in
This commit disables LLVM/debug assertions in our 5 slowest builders:

* i686-gnu
* i686-gnu-nopt
* i686-msvc-1
* i686-msvc-2
* x86_64-msvc-cargo

This is reducing the amount of test coverage for LLVM/debug assertions,
but we're just unfortunately running out of time on CI too many times.
Some test builds have shown that i686-gnu drops nearly an hour of CI
time by disabling these two assertions. Perhaps when we eventually get
4-core machines we can reenable these, but for now turn them off and
hook them up to the tracking issue at #59637 which will ideally be
repurposes to tracking all of these.
2019-09-16 11:43:23 -07:00
Pietro Albini
d3d7b58c37
ci: ensure all tool maintainers are assignable on issues
GitHub only allows people explicitly listed as collaborators on the
repository or who commented on the issue/PR to be assignees, failing to
create the issue if non-assignable people are assigned.

This adds an extra check on CI to make sure all the people listed as
tool maintainers can be assigned to toolstate issues. The check won't be
executed on PR builds due to the lack of a valid token.
2019-09-16 16:30:46 +02:00
bors
f834695781 Auto merge of #63521 - newpavlov:redox_builder, r=pietroalbini
Re-enable Redox builder (take 2)

Closes: #63160
2019-08-23 08:58:24 +00:00
Pietro Albini
9b8514bb87
ci: move libc mirrors to the rust-lang-ci-mirrors bucket 2019-08-21 09:14:21 +02:00
Artyom Pavlov
51dcdcfd94
Merge branch 'master' into redox_builder 2019-08-17 18:54:56 +00:00
Mazdak Farrokhzad
6b0a83862c
Rollup merge of #63636 - pietroalbini:ci-mingw, r=alexcrichton
ci: move linkcheck from mingw-2 to mingw-1

Running UI tests now takes a huge amount of time on mingw builders
(between 40 and 50 minutes), with mingw-1 builders taking even an hour
less to finish than mingw-2. This PR moves linkcheck from mingw-2 to
mingw-1, removing between 10 and 20 minutes of runtime on the -2
builders.

r? @alexcrichton
2019-08-16 18:22:34 +02:00
Pietro Albini
9df2dac4e9
ci: move linkcheck from mingw-2 to mingw-1
Running UI tests now takes a huge amount of time on mingw builders
(between 40 and 50 minutes), with mingw-1 builders taking even an hour
less to finish than mingw-2. This PR moves linkcheck from mingw-2 to
mingw-1, removing between 10 and 20 minutes of runtime on the -2
builders.
2019-08-16 17:02:01 +02:00