about summary refs log tree commit diff
path: root/src/ci
AgeCommit message (Collapse)AuthorLines
2021-05-15Auto merge of #85335 - GuillaumeGomez:rollup-0tvc14g, r=GuillaumeGomezbors-1/+1
Rollup of 4 pull requests Successful merges: - #84751 (str::is_char_boundary - slight optimization) - #85185 (Generate not more docs than necessary) - #85324 (Warn about unused `pub` fields in non-`pub` structs) - #85329 (fix version_str comment) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
2021-05-15Rollup merge of #85185 - ↵Guillaume Gomez-1/+1
GuillaumeGomez:generate-not-more-docs-than-necessary, r=Mark-Simulacrum Generate not more docs than necessary This is something that `@Nemo157` was talking about: they wanted that when using `x.py doc std`, it only generated `std` (and the crates "before" it). r? `@Mark-Simulacrum`
2021-05-15Don't generate more docs than necessaryGuillaume Gomez-1/+1
2021-05-15Auto merge of #82208 - jyn514:rustfmt-subtree, r=Mark-Simulacrumbors-6/+14
Convert rustfmt from a submodule to a subtree r? `@calebcartwright` cc `@Manishearth` `@Mark-Simulacrum` The motivation is that submodule updates cause rustfmt to not be available on nightly a lot; most recently it was unavailable for over 10 days, causing the beta release to be delayed. Additionally this is much less work on the part of the rustfmt maintainers to keep the rustfmt compiling, since now people making breaking changes will be responsible for fixing them. I kept the rustfmt git history so it looks like there are thousands of commits. The important commits are https://github.com/rust-lang/rust/compare/851dee3af9404bf399c3c4ffefe5105edb3debad~..pull/82208/head. This adds about 10 MB of git history, which is not terribly much compared to the 702 MB that already exist. - Add `src/tools/rustfmt` to `x.py check` - Fix CRLF issues with rustfmt tests (see commit for details) - Use `rustc_private` instead of crates.io dependencies This was already switched upstream and would have landed in the next submodule bump anyway. This just updates Cargo.lock for rust-lang/rust. - Add `yansi-term` to the list of allowed dependencies. This is a false positive - rustc doesn't actually use it, only rustfmt, but because it's activated by the cargo feature of a dependency, tidy gets confused. It's fairly innocuous in any case, it's used for color printing. This would have happened in the next submodule bump. - Remove rustfmt from the list of toolstate tools. - Give a hard error if testing or building rustfmt fails. - Update log to 0.4.14 This avoids a warning about semicolons in macros; see the commit for details. - Don't add tools to the sysroot when they finish building. This is the only change that could be considered a regression - this avoids a "colliding StableCrateId" error due to a bug in resolve (https://github.com/rust-lang/rust/issues/56935). The regression is that this rebuilds dependencies more often than strictly necessary. See the commit for details. Fixes https://github.com/rust-lang/rust/issues/85226 (permanently). Closes https://github.com/rust-lang/rust/issues/82385. Helps with https://github.com/rust-lang/rust/issues/70651. Helps with https://github.com/rust-lang/rust/issues/80639.
2021-05-15Auto merge of #84997 - pietroalbini:ci-verify-channel, r=Mark-Simulacrumbors-8/+56
Error out if a PR is sent to the wrong channel It happened multiple times that a PR meant to go on beta ends up being opened (and occasionally merged) to master. This PR does two things: * Moves the definition of the channel in `src/ci/channel` so it's easier for tools to read it. I was not sure whether to move it to `src/channel` (like `src/version`): ended up with `src/ci` as it's currently only used for CI, but I'm open to moving it to `src`. We'll need to update the release process after this. * Adds a check on **non-bors** builds that errors out if the base branch is not the expected one for the currently defined channel. This will not cause problems for promotion PRs, as those PRs are meant to also update the channel name. r? `@Mark-Simulacrum`
2021-05-14ci(should-skip-this): only check commits when skip rule enabledCaleb Cartwright-7/+11
2021-05-14should-skip-this: Check for changes between the master branch, not the ↵Joshua Nelson-2/+6
previous commit. The previous commit could be part of the current PR.
2021-05-14Run toolstate jobs when src/tools/rustfmt is modified.Joshua Nelson-2/+2
Previously, this would be caught by a change for modified submodules; now that rustfmt is no longer a submodule, the check needs to be explicit.
2021-05-14Update bootstrap for in-tree rustfmtJoshua Nelson-1/+1
- Add rustfmt to `x.py check` - Update Cargo.lock - Remove rustfmt from the toolstate list - Make rustfmt an in-tree tool - Give an error on `x.py test rustfmt` if rustfmt fails to build or if tests fail - Don't call `save_toolstate` when testing rustfmt
2021-05-12make verify-channel.sh compatible with macOSPietro Albini-7/+17
2021-05-10update perf version used for PGORalf Jung-1/+1
2021-05-07Rollup merge of #84911 - Mark-Simulacrum:retry-clang, r=pietroalbiniYuki Okushi-2/+4
Retry clang+llvm download We've been seeing a pretty high rate of spurious network failures (e.g., openssl connection reset by peer). Not clear why, but let's add a retry. r? `@pietroalbini`
2021-05-06ci: error out if someone sends a PR to the wrong branchPietro Albini-0/+44
2021-05-06move the current channel to src/ci/channelPietro Albini-8/+2
This will make it easier for tools to programmatically detect which channel CI is building.
2021-05-04Retry clang+llvm downloadMark Rousskov-2/+4
We've been seeing a pretty high rate of spurious network failures (e.g., openssl connection reset by peer). Not clear why, but let's add a retry.
2021-05-03Update clang to 12.0.0 on Windows and macOSJosh Triplett-1/+1
Needed for https://github.com/rust-lang/rust/pull/84764 . Tarballs already uploaded to the CI mirror bucket.
2021-05-03CI: Extract LLVM win64 installer directly, using 7zJosh Triplett-15/+6
Currently, we have LLVM tarballs for win64, generated by someone running the installer via wine and tarring up the result. 7z knows how to extract NSIS installers directly, and the result is identical to our tarball, except that it doesn't include `Uninstall.exe` (which we don't care about) and it includes the NSIS plugin directory (which we also don't care about). This simplifies the process of upgrading CI, and allows us to just mirror the upstream release .exe directly. This also improves our supply chain.
2021-04-28Rollup merge of #84540 - 12101111:enable-sanitizers, r=Mark-SimulacrumJack Huey-0/+1
Build sanitizers for x86_64-unknown-linux-musl The support of sanitizers on target `x86_64-unknown-linux-musl` is landed in https://github.com/rust-lang/rust/pull/84126
2021-04-25Build sanitizers for x86_64-unknown-linux-musl12101111-0/+1
2021-04-24Auto merge of #84310 - RalfJung:const-fn-feature-flags, r=oli-obkbors-1/+1
further split up const_fn feature flag This continues the work on splitting up `const_fn` into separate feature flags: * `const_fn_trait_bound` for `const fn` with trait bounds * `const_fn_unsize` for unsizing coercions in `const fn` (looks like only `dyn` unsizing is still guarded here) I don't know if there are even any things left that `const_fn` guards... at least libcore and liballoc do not need it any more. `@oli-obk` are you currently able to do reviews?
2021-04-24update rustc-perf version that is used for PGORalf Jung-1/+1
2021-04-21Upgrade `expat` dependency in riscv64 to newer version.Mara Bos-1/+1
The old version was renamed to `expat-2.2.6-RENAMED-VULNERABLE-PLEASE-USE-2.3.0-INSTEAD`. :)
2021-04-08rustc: Add a new `wasm` ABIAlex Crichton-2/+2
This commit implements the idea of a new ABI for the WebAssembly target, one called `"wasm"`. This ABI is entirely of my own invention and has no current precedent, but I think that the addition of this ABI might help solve a number of issues with the WebAssembly targets. When `wasm32-unknown-unknown` was first added to Rust I naively "implemented an abi" for the target. I then went to write `wasm-bindgen` which accidentally relied on details of this ABI. Turns out the ABI definition didn't match C, which is causing issues for C/Rust interop. Currently the compiler has a "wasm32 bindgen compat" ABI which is the original implementation I added, and it's purely there for, well, `wasm-bindgen`. Another issue with the WebAssembly target is that it's not clear to me when and if the default C ABI will change to account for WebAssembly's multi-value feature (a feature that allows functions to return multiple values). Even if this does happen, though, it seems like the C ABI will be guided based on the performance of WebAssembly code and will likely not match even what the current wasm-bindgen-compat ABI is today. This leaves a hole in Rust's expressivity in binding WebAssembly where given a particular import type, Rust may not be able to import that signature with an updated C ABI for multi-value. To fix these issues I had the idea of a new ABI for WebAssembly, one called `wasm`. The definition of this ABI is "what you write maps straight to wasm". The goal here is that whatever you write down in the parameter list or in the return values goes straight into the function's signature in the WebAssembly file. This special ABI is for intentionally matching the ABI of an imported function from the environment or exporting a function with the right signature. With the addition of a new ABI, this enables rustc to: * Eventually remove the "wasm-bindgen compat hack". Once this ABI is stable wasm-bindgen can switch to using it everywhere. Afterwards the wasm32-unknown-unknown target can have its default ABI updated to match C. * Expose the ability to precisely match an ABI signature for a WebAssembly function, regardless of what the C ABI that clang chooses turns out to be. * Continue to evolve the definition of the default C ABI to match what clang does on all targets, since the purpose of that ABI will be explicitly matching C rather than generating particular function imports/exports. Naturally this is implemented as an unstable feature initially, but it would be nice for this to get stabilized (if it works) in the near-ish future to remove the wasm32-unknown-unknown incompatibility with the C ABI. Doing this, however, requires the feature to be on stable because wasm-bindgen works with stable Rust.
2021-03-28ci: docker: x86_64: specify host explicitlyTom Eccles-1/+2
2021-03-28ci: docker: riscv64gc: specify host explicitlyTom Eccles-1/+1
2021-03-22Update the minimum external LLVM to 10Josh Stone-5/+5
2021-03-19Auto merge of #83201 - klensy:checkout-v2, r=pietroalbinibors-1/+1
use checkout@v2 in CI for master Updates CI workflow to use checkout@v2 from v1 (as other parts of CI) for master, plus slightly faster checkout as result compare v2 https://github.com/rust-lang-ci/rust/commit/2ccf06302c08d7d4911aad40e66a9a3ee731c6f9/checks/2113902859/logs and v1 logs https://github.com/rust-lang-ci/rust/commit/2ccf06302c08d7d4911aad40e66a9a3ee731c6f9/checks/2115229351/logs
2021-03-18Rollup merge of #83204 - jethrogb:jb/sgx-c-build, r=joshtriplett,raoulstrackxDylan DPC-20/+4
Simplify C compilation for Fortanix-SGX target cc ``@raoulstrackx``
2021-03-16Simplify C compilation for Fortanix-SGX targetJethro Beekman-20/+4
2021-03-16use checkout@v2klensy-1/+1
2021-03-16ci/docker: Add SDK/NDK level 21 to android docker for 32bit platformsDaniel Silverstone-0/+2
Certain features of Linux (getauxval() and epoll_create1()) are only available in android SDK/NDK levels 18 and 21 respectively. The 32bit platform is currently on level 14 for compatibility with Android 4.0. This patch adds SDK/NDK level 21 to the docker for 32 bit platforms, while leaving the default setup at level 14. With this done, projects such as `rustup` which rely on these dockers can build with modern ecosystem crates such as tokio 1.0, by using the level 21 toolchain, but those which do not need to switch will be unaffected, since the level 14 toolchain remains available. Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
2021-03-04Auto merge of #82747 - JohnTitor:pin-es-check-version, r=Mark-Simulacrumbors-1/+2
Pin es-check version to prevent unrelated CI failures es-check v5.2.1 causes a lot of unrelated CI failures on mingw-check, e.g. https://github.com/rust-lang/rust/pull/80723#issuecomment-790294196. es-check v5.2.2 fixes it but let's pin its version to prevent further failures.
2021-03-04Auto merge of #81451 - nikic:llvm-12, r=nagisabors-9/+124
Upgrade to LLVM 12 This implements the necessary adjustments to make rustc work with LLVM 12. I didn't encounter any major issues so far. r? `@cuviper`
2021-03-04Pin es-check version to prevent unrelated CI failuresYuki Okushi-1/+2
2021-03-01Build cmake earlier on dist-x86_64-muslNikita Popov-3/+4
musl-toolchain.sh is called with REPLACE_CC=1, so it will replace the host compiler and the subsequent cmake build will fail because it cannot find the openssl headers. Move the cmake build earlier, so it happens before the compiler is replaced.
2021-03-01Build both Python 2 and Python 3 on x86 dist buildersNikita Popov-9/+14
Python 2 is needed for Clang 10, Python 3 for LLVM 12. The Python 2 dependency could be removed by upgrading to Clang 11, but that causes linker errors of unclear origin.
2021-03-01Build newer version of cmake in Docker imagesNikita Popov-0/+109
LLVM requires CMake 3.13.4, which is only available as of Ubuntu 20.04. On images using an older version, build it manually.
2021-03-01Update Docker to use the correct targetJakub Kulik-13/+26
2021-03-01Rollup merge of #82543 - klensy:skip-jobs, r=Mark-SimulacrumYuki Okushi-1/+1
fix env var name in CI There no `SKIP_JOBS` env var name, only `SKIP_JOB`.
2021-02-27Remove the x86_64-rumprun-netbsd targetSimonas Kazlauskas-33/+0
Closes #81514
2021-02-26fix env var nameklensy-1/+1
2021-02-22Auto merge of #79979 - GuillaumeGomez:rustdoc-gui-tests, r=Mark-Simulacrumbors-2/+22
Rustdoc gui tests This is a reopening of #70533. For this first version, there will be no screenshot comparison. Also, a big change compared to the previous version: the tests are now hosted in the rust repository directly. Since there is no image, it's pretty lightweight to say the least. So now, only remains the nodejs script to run the tests and the tests themselves. Just one thing is missing: where should I put the documentation for these tests? I'm not sure where would be the best place for that. The doc will contain important information like the documentation of the framework used and how to install it (`npm install browser-ui-test`, but still needs to be put somewhere so no one is lost). We'd also need to install the package when running the CI too. For now, it runs as long as we have nodejs installed, but I think we don't it to run in all nodejs targets? cc `@jyn514` r? `@Mark-Simulacrum`
2021-02-21Update CI scriptsGuillaume Gomez-2/+22
2021-02-17Add check for ES5 in CIGuillaume Gomez-1/+8
2021-02-13Auto merge of #81666 - hyd-dev:miri-windows-test-fail, r=Mark-Simulacrumbors-0/+1
Don't release Miri if its tests only failed on Windows Extends #66053 to Windows, so the released Miri won't be broken if its tests only fail on Windows. Relevant Zulip thread: https://rust-lang.zulipchat.com/#narrow/stream/269128-miri/topic/Miri.20is.20still.20available.20in.20rustup.20today.3F
2021-02-09ci: allow unstable features in some PGO benchmarksPietro Albini-2/+4
2021-02-07Auto merge of #81821 - nikic:update-wasm32, r=sanxiynbors-10/+4
Upgrade wasm32 image to Ubuntu 20.04 This switches the wasm32 image, which is used to test wasm32-unknown-emscripten, to Ubuntu 20.04. While at it, enable most of the excluded tests, as they seem to work fine with some minor fixes.
2021-02-06Upgrade wasm32 image to Ubuntu 20.04Nikita Popov-10/+4
This switches the wasm32 image, which is used to test wasm32-unknown-emscripten to Ubuntu 20.04. While at it, enable most of the excluded tests, as they seem to work fine with some minor fixes.
2021-02-05Don't release Miri if its tests only failed on Windowshyd-dev-0/+1
2021-02-05Fix `install-awscli.sh` error in CI.Mara Bos-1/+1