about summary refs log tree commit diff
path: root/src/ci
AgeCommit message (Collapse)AuthorLines
2020-07-03ci: provide feedback when running an image on the wrong host archPietro Albini-0/+22
2020-07-03ci: move all x86_64 runners to the host-x86_64 directoryPietro Albini-70/+73
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-02Rollup merge of #73952 - ehuss:docker-dev, r=Mark-SimulacrumManish Goregaokar-2/+31
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-02Rollup merge of #73724 - CryZe:wasm-saturating-casts, r=alexcrichtonManish Goregaokar-2/+2
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-02Auto merge of #73954 - Manishearth:rollup-8qvh170, r=Manishearthbors-1/+12
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-02Address review comments and add UI testChristopher Serr-2/+2
2020-07-02Rollup merge of #73885 - pietroalbini:ci-fix-wasm32, r=kennytmManish Goregaokar-1/+12
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-01Add option for local docker testing.Eric Huss-2/+31
2020-07-01Rollup merge of #72569 - ChrisDenton:remove-innosetup, r=nikomatsakisManish Goregaokar-26/+0
Remove legacy InnoSetup GUI installer On Windows the InnoSetup `.exe` installer was superseded by the MSI installer long ago. It's no longer needed. The `.exe` installer hasn't been linked from the [other installation methods](https://forge.rust-lang.org/infra/other-installation-methods.html#standalone) page in many years. As far as I can tell the intent was always to remove this installer once the MSI proved itself. Though admittedly both installers feel very "legacy" at this point. Removing this would mean we only maintain one Windows GUI installer and would speed up the distribution phase. As a result of removing InnoSetup, this closes #24397
2020-07-01Auto merge of #72053 - Mark-Simulacrum:32bitcheck, r=pietroalbinibors-0/+9
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-01Verify UI tests work in pass=check modeMark Rousskov-0/+9
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-01Auto merge of #73863 - pietroalbini:revert-8bc3122311d, r=Mark-Simulacrumbors-45/+36
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-06-30ci: fix wasm32 broken due to a NodeJS version bumpPietro Albini-1/+12
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-29Revert "ci: allow gating gha on everything but macOS"Pietro Albini-45/+36
This reverts commit 8bc3122311dd70eabb0020e67e850b2b7904d972.
2020-06-27Auto merge of #73671 - ehuss:update-mdbook, r=Mark-Simulacrumbors-3/+0
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-26Remove mdbook-linkcheck.Eric Huss-3/+0
2020-06-25Remove deprecated commentsAdrian Cruceru-2/+0
2020-06-25Fix commentsAdrian Cruceru-8/+1
2020-06-24Update libunwind build process for x86_64-fortanix-unknown-sgx targetAdrian Cruceru-37/+0
2020-06-20Auto merge of #73563 - Manishearth:rollup-oowgwwm, r=Manishearthbors-36/+45
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-20Rollup merge of #73443 - pietroalbini:gha-auto-fallible, r=Mark-SimulacrumManish Goregaokar-36/+45
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-20Rollup merge of #73444 - pietroalbini:ci-remove-try-alt, r=Mark-SimulacrumRalf Jung-7/+0
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-20Rollup merge of #73171 - tblah:riscv-qemu-test, r=pietroalbiniRalf Jung-0/+249
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-20ci: Enable sanitizers on dist-aarch64-linuxTomasz Miąsko-0/+1
2020-06-17ci: disable alt build during try buildsPietro Albini-7/+0
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-15Avoid prematurely recording toolstatesMark Rousskov-1/+3
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-15ci: allow gating gha on everything but macOSPietro Albini-36/+45
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-15Rollup merge of #73296 - ehuss:remove-msvc-aux, r=Mark-SimulacrumRalf Jung-10/+0
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-14Auto merge of #73089 - tmiasko:musl-1.1.24, r=kennytmbors-5/+7
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-14Auto merge of #73188 - mati865:use-preinstalled-msys2, r=pietroalbinibors-50/+20
Use preinstalled msys2 Fixes https://github.com/rust-lang/rust/issues/65767
2020-06-12Remove vestigial CI job msvc-aux.Eric Huss-10/+0
2020-06-11Use preinstalled MSYS2Mateusz Mikuła-50/+20
2020-06-10Fix emcc failure for wasm32.Eric Huss-0/+3
2020-06-09Add a disabled builder for riscv64 emulated testsTom Eccles-0/+249
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-07Update musl to 1.1.24Tomasz Miąsko-5/+7
2020-06-07Enable LVI hardening for x86_64-fortanix-unknown-sgxJethro Beekman-20/+51
2020-06-04Enable lld for Cargo tests on Windows.Eric Huss-2/+2
2020-05-25Remove legacy InnoSetup GUI installerChris Denton-26/+0
On Windows the InnoSetup installer was superseded by the MSI installer. It's no longer needed.
2020-05-22Revert MSYS2 CI workaroundMateusz Mikuła-13/+1
2020-05-20Workaround MSYS2/chocolatey issue againMateusz Mikuła-3/+11
2020-05-18Update pacman firstMateusz Mikuła-1/+5
2020-05-11Configure cache domain for GHAMark Rousskov-0/+2
2020-05-08Use CDN for ci-caches on downloadMark Rousskov-4/+6
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-07Auto merge of #71995 - pietroalbini:ci-windows-detect-latest-python, ↵bors-2/+10
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-07ci: use the latest python available on windowsPietro Albini-2/+10
This commit changes our Windows CI to always use the latest Python interpreter available in the GHA tool cache instead of hardcoding Python 3.7.6. This is needed because occasionally GitHub bumps the installed version, deleting the previous one.
2020-05-07Auto merge of #71649 - ecstatic-morse:ci-stage0-doc, r=Mark-Simulacrumbors-0/+1
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-04-30Turn of rustc-dev-guide toolstate for nowmark-1/+0
2020-04-29ci: use bash when executing the "bors build finished" jobsPietro Albini-0/+2
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-28Auto merge of #71486 - alexcrichton:arm64-lld, r=Mark-Simulacrumbors-4/+4
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-28Ensure that `./x.py doc --stage 0 src/libstd` works via CIDylan MacKenzie-0/+1