Commit Graph

193 Commits

Author SHA1 Message Date
Jakub Beránek 7edbf1556a CI: do not cancel concurrent builds on the same branch
Add an exception for try and try-perf branches to enable concurrent try builds and unrolled rollup builds.
2023-06-29 14:52:52 +02:00
Jakub Beránek 776b8e8256 CI: do not cancel concurrent builds on the same branch
Instead, only cancel them if the builds have the same commit SHA.
2023-06-26 16:40:12 +02:00
Matthias Krüger ba5f2cbe11 Rollup merge of #112955 - Kobzol:ci-pr-cancel-workflows, r=Mark-Simulacrum
CI: cancel in-progress workflow runs after a push

Experimenting with the `concurrency` attribute.

r? `@Mark-Simulacrum`
2023-06-26 11:58:45 +02:00
Jakub Beránek d7dc1d901a Remove cancel-outdated action 2023-06-25 16:01:01 +02:00
Jakub Beránek a7845ebe43 CI: do not run Bump dependencies workflow on forks 2023-06-25 15:55:27 +02:00
Matthias Krüger 95be168a13 issue template: add clippy entry which points to the clippy repo 2023-06-23 18:54:19 +02:00
Jakub Beránek a50f1437da Cancel in-progress workflow runs after a push 2023-06-23 11:22:56 +02:00
bors d54db8de89 Auto merge of #112645 - Kobzol:ci-mingw-merge, r=pietroalbini
CI: merge `mingw` test CI jobs

Same as https://github.com/rust-lang/rust/pull/112633, but for `mingw`. From the logs it looks like the runner spends 40 minutes compiling `rustc`, and then `10`/`20` minutes running tests. It seems wasteful to split that into two jobs.

CI run: https://github.com/rust-lang/rust/actions/runs/5275702134/jobs/9541479343?pr=112645

r? `@jyn514`
2023-06-18 19:49:26 +00:00
Jakub Beránek a261e708ab Merge mingw-1/2 CI jobs 2023-06-18 14:40:52 +02:00
Matthias Krüger e646c79d1d Rollup merge of #110805 - pitaj:master, r=Mark-Simulacrum
Github action to periodically `cargo update` to keep dependencies current

Opens a PR periodically with the results of `cargo update`. If an unmerged PR for the branch `cargo_update` already exists, it will edit then reopen it if necessary.

~~This also uses [`cargo-upgrades`](https://gitlab.com/kornelski/cargo-upgrades) to provide a list of available major upgrades in the PR body.~~

It includes the list of changes output by `cargo update` in the commit message and PR body. Note that this output is currently sub-optimal due to https://github.com/rust-lang/cargo/issues/9408, but if updates are made more regularly that is less likely to show up.

Example PR: https://github.com/pitaj/rust/pull/2
Example action run: https://github.com/pitaj/rust/actions/runs/5035731903
Prior discussion: https://rust-lang.zulipchat.com/#narrow/stream/242791-t-infra/topic/dependabot.20updates.3F

Up for discussion:
- What period do we want? Currently weekly
- What user should it use? Currently "Github Actions"
- Do we need the extra security of provided by executing `cargo update` and `cargo-upgrades` in a separate job?
  If not I can simplify it to not need artifacts.
- PR message wording
- PR should probably always be `rollup=always`?
- What branch should it use?
- What should it do if no updates are available? Currently fails the job on empty commit
- Should the yml file live in `src/ci` instead of directly under workflows?
- ~~Is using the latest nightly toolchain enough to ensure compatibility with `Cargo.lock` and `Cargo.toml`s in master?~~
  Now pulls the bootstrap version from stage0.json

r? infra
2023-06-17 18:27:30 +02:00
bors 7e688c7342 Auto merge of #112407 - tgross35:ci-docs-publish, r=Mark-Simulacrum
Publish docs as github artifacts during CI

Discussed here: https://rust-lang.zulipchat.com/#narrow/stream/242791-t-infra/topic/Building.20docs.20for.20PR.20CI

The goal is to make docs available for download after CI runs on PRs, for easy review of API changes.

Notes:

- Currently this only captures library documentation (`core`, `alloc`, `std`, `test`, `proc_macro`)
- You can't see artifacts until the entire workflow run has completed https://github.com/actions/upload-artifact/issues/53
- There is currently a generic file name `ci-artifacts`. No way to customize this based on contained files unfortunately https://github.com/actions/upload-artifact/issues/349

You can find the results at the bottom of the CI "summary" page:

<img width="379" alt="image" src="https://github.com/rust-lang/rust/assets/13724985/d3748e59-242c-40f8-9f54-82177b9b481b">
2023-06-17 03:28:53 +00:00
Jakub Beránek 74cec76a88 Merge msvc-1/2 CI jobs 2023-06-14 23:07:49 +02:00
Trevor Gross be080c0479 Publish docs as github artifacts during CI
This PR saves library docs as github artifacts so they can be easily
viewed for review.

Discussed in <https://rust-lang.zulipchat.com/#narrow/stream/242791-t-infra/topic/Building.20docs.20for.20PR.20CI>
2023-06-12 17:31:20 -04:00
Peter Jaszkowiak 5d3e27b41b run cargo update weekly
- Keep Cargo.lock dependencies current
- Presents output from `cargo update` in commit and PR
- Edit existing open PR, otherwise open a new one
- Skip if existing open PR is S-waiting-on-bors
2023-06-10 14:47:44 -06:00
Jakub Beránek 282cc415ee Do not build components unneeded for perf bot in try builds 2023-06-01 08:29:19 +02:00
WANG Rui 514d09e44e ci: Add support for dist-loongarch64-linux
Co-Authored-By: YANG Xiaojuan <yangxiaojuan@loongson.cn>
2023-05-12 18:31:55 +08:00
bors df08637b5c Auto merge of #111224 - jyn514:default-tidy, r=pietroalbini
Remove `tidy` key in PR CI

This avoids confusing error messages when adding an `auto` job to CI (as recommended in the dev-guide: https://rustc-dev-guide.rust-lang.org/tests/ci.html#using-ci-to-test).

cc https://rust-lang.zulipchat.com/#narrow/stream/182449-t-compiler.2Fhelp/topic/Do.20.60needs-profiler-support.60.20tests.20not.20run.20in.20CI.3F/near/355302998

r? `@ghost`
2023-05-07 17:17:58 +00:00
bors 546cafc579 Auto merge of #110972 - ehuss:remove-awscli, r=pietroalbini
Remove aws cli install.

All runner images have the AWS CLI 2 installed, so there isn't a really strong reason to install our own version anymore.

The version we were installing was 1.27.122. The runner images currently have 2.11.x (the exact version varies by image).

I do not have the means to really test if the new version has any issues. I looked at all the `aws` commands, and none of them seem to be doing anything unusual. The page at https://docs.aws.amazon.com/cli/latest/userguide/cliv2-migration-changes.html contains a list of all the breaking changes, and I didn't see anything that looked important.
2023-05-06 21:15:25 +00:00
jyn d07bffb356 Remove tidy key in PR CI
This avoids confusing error messages when adding an `auto` job to CI (as
recommended in the dev-guide: https://rustc-dev-guide.rust-lang.org/tests/ci.html#using-ci-to-test).
2023-05-04 18:17:46 -05:00
bors 2393236995 Auto merge of #110846 - jdno:reduce-builder-sizes, r=pietroalbini
Optimize builder sizes

The infra-team is continuously monitoring the efficiency of the CI system in an effort to improve overall build times and resource usage. Some builders have used much less than their allocated resources, so we are testing smaller builder sizes for them.

r? `@pietroalbini`
2023-05-03 07:06:42 +00:00
Eric Huss 7c96ebf464 Set the AWS region. 2023-04-30 13:23:48 -07:00
Eric Huss 81a7938b2c Remove aws cli install. 2023-04-28 18:16:34 -07:00
Jan David f3e2b61858 Downsize builders for some x86_64-gnu targets
The infra-team is continuously monitoring the efficiency of the build
system in an effort to improve overall build times and resource usage.
The builders for some of the `x86_64-gnu` targets have used much less
resources than allocated in the past, so we are testing a smaller
builder size for them.
2023-04-26 16:52:39 +02:00
Jan David 4f6d6bf73d Downsize builder for mingw-check
The infra-team is continuously monitoring the efficiency of the build
system in an effort to improve overall build times and resource usage.
The builder for the `mingw-check` target have used much less resources
than allocated in the past, so we are testing a smaller builder size for
it.
2023-04-26 16:40:12 +02:00
Jan David 97ca796ba0 Downsize builders for i686-gnu
The infra-team is continuously monitoring the efficiency of the build
system in an effort to improve overall build times and resource usage.
The builders for the `i686-gnu` targets have used much less resources
than allocated in the past, so we are testing a smaller builder size for
them.
2023-04-26 16:08:01 +02:00
Ryan Levick 87a836470b Use the standard macOS CI runner 2023-04-25 10:32:29 +02:00
Yuki Okushi 3b485c7a19 Rollup merge of #110424 - jsoref:spelling-misc, r=Mark-Simulacrum
Spelling misc

These two files seem to be fairly distinct from everything else.

That said, if this project doesn't like changing changelogs, I'm happy to drop the changes to `RELEASES.md`
2023-04-20 17:03:24 +09:00
Josh Soref 91f9b37b0e Spelling misc
* environment
* nonexistent
* potential
* prefixes
* stabilization
* suffixes
* use

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2023-04-17 02:55:27 -04:00
Josh Stone 9dba3867f4 ci: add a runner for vanilla LLVM 16
Like #107044, this will let us track compatibility with LLVM 16 going
forward, especially after we eventually upgrade our own to the next.

This also drops `tidy` here and in `x86_64-gnu-llvm-15`, syncing with
that change in #106085.
2023-04-16 11:50:20 -07:00
Mark Rousskov 7c8866f859 Trim down core counts for fast builders
These builders aren't particularly high on overall average CPU usage and finish in typically around
30 minutes. Cutting their core counts will hopefully not significantly increase wall-time while
cutting costs, allowing us to shift some of the wins into our slower builders.
2023-04-10 10:34:24 -04:00
jyn 59fbeb41c8 Improve job names in Github Actions preview
Before: `CI / PR (mingw-check, false, ubuntu-20.04-16core-64gb) (pull_request)`
After: `CI / PR - mingw-check (pull_request)`
2023-04-02 17:58:08 -04:00
Mark Rousskov 5d8bfd1ccf Move us to the new large runners pool
For now this keeps all the configuration identical (AFAICT) but we'll
likely want to play with the specifics to move some of the slower
builders to larger machines and the faster builders to smaller machines,
likely reducing overall usage and improving CI times.
2023-03-19 11:41:55 -04:00
Nilstrieb c35a77940a Revert "enable ThinLTO for rustc on x86_64-pc-windows-msvc dist builds"
This lead to a miscompilation in at least `char::is_whitespace` and
probably in more unknown places.....

This reverts commit 28e2315f7e.
2023-03-13 21:18:54 +01:00
Michael Goulet eb8704537d Re-apply "switch to the macos-12-xl builder"
This reverts commit 071740edc4.
2023-02-22 22:14:25 +00:00
Josh Stone 5cac7155c4 Update the minimum external LLVM to 14 2023-02-10 16:06:25 -08:00
Matthias Krüger 8f15f76f75 Rollup merge of #107773 - Mark-Simulacrum:rename-auto-template, r=estebank
Clearly signal purpose of the yaml template

Following up on https://github.com/rust-lang/rust/pull/106898#issuecomment-1383238532
2023-02-08 07:13:28 +01:00
Mark Rousskov 7c4b4eaca2 Clearly signal purpose of the yaml template 2023-02-07 14:31:38 -05:00
Joshua Nelson fde0115d7d Run the tools builder on all PRs
Previously, it would only run on changes to subtrees, submodules, or select directories.
That made it so that changes to the compiler that broke tools would only be detected on a full bors merge.
This makes it so the tools builder runs by default, making it easier to catch breaking changes to clippy (which was the most effected).
2023-02-05 14:29:49 -06:00
bors e67fe18b1c Auto merge of #107543 - ehuss:protocol-sparse, r=jyn514
Enable Cargo's sparse protocol in CI

This enables the sparse protocol in CI in order to exercise and dogfood it. This is intended test the production server in a real-world situation.

Closes #107342
2023-02-03 04:49:50 +00:00
bors ab0119ff23 Auto merge of #107574 - compiler-errors:back-to-old-mac-builders-pls, r=pietroalbini
Revert "switch to the macos-12-xl builder"

This reverts commit f0e14d14b8.

This should fix the bors failures in https://rust-lang.zulipchat.com/#narrow/stream/242791-t-infra/topic/Every.20rust-lang.2Frust.20PR.20is.20failing.20bors
2023-02-01 22:45:27 +00:00
Michael Goulet 071740edc4 Revert "switch to the macos-12-xl builder"
This reverts commit f0e14d14b8.
2023-02-01 21:31:05 +00:00
Eric Huss 4833f5f63e Enable Cargo's sparse protocol in CI 2023-01-31 18:13:57 -08:00
Guillaume Gomez 91f765fb12 Rollup merge of #106898 - estebank:ice-forms-are-a-headache, r=Mark-Simulacrum
Include both md and yaml ICE ticket templates

* Existing compilers link to the md version
* The YAML version field for the backtrace *doesn't let us paste a full backtrace*
* We will need the YAML version in order to be able to submit reports once we start storing the backtrace to disk

Follow up to #106831. Reaction to #106874, which made me realize that *really* long backtraces are rejected by GitHub Forms. A single backtrace won't hit this, but ICEs sometimes compound.
2023-01-31 23:38:49 +01:00
bors 67fdf83fac Auto merge of #103019 - Kobzol:ci-multistage-python, r=Mark-Simulacrum
Port pgo.sh to Python

This PR ports the `pgo.sh` multi stage build file from bash to Python, to make it easier to add new functionality and gather statistics. Main changes:

1) `pgo.sh` rewritten from Bash to Python. Jump from ~200 Bash LOC to ~650 Python LOC. Bash is, unsurprisingly, more concise for running scripts and binaries.
2) Better logging. Each separate stage is now clearly separated in logs, and the logs can be quickly grepped to find out which stage has completed or failed, and how long it took.
3) Better statistics. At the end of the run, there is now a table that shows the duration of the individual stages, along with a percentual ratio of the total workflow run:

```
2023-01-15T18:13:49.9896916Z stage-build INFO: Timer results
2023-01-15T18:13:49.9902185Z ---------------------------------------------------------
2023-01-15T18:13:49.9902605Z Build rustc (LLVM PGO):                 1815.67s (21.47%)
2023-01-15T18:13:49.9902949Z Gather profiles (LLVM PGO):              418.73s ( 4.95%)
2023-01-15T18:13:49.9903269Z Build rustc (rustc PGO):                 584.46s ( 6.91%)
2023-01-15T18:13:49.9903835Z Gather profiles (rustc PGO):             806.32s ( 9.53%)
2023-01-15T18:13:49.9904154Z Build rustc (LLVM BOLT):                1662.92s (19.66%)
2023-01-15T18:13:49.9904464Z Gather profiles (LLVM BOLT):             715.18s ( 8.46%)
2023-01-15T18:13:49.9914463Z Final build:                            2454.00s (29.02%)
2023-01-15T18:13:49.9914798Z Total duration:                         8457.27s
2023-01-15T18:13:49.9915305Z ---------------------------------------------------------
```

A sample run can be seen [here](https://github.com/rust-lang/rust/actions/runs/3923980164/jobs/6707932029).

I tried to keep the code compatible with Python 3.6 and don't use dependencies, which required me to reimplement some small pieces of functionality (like formatting bytes). I suppose that it shouldn't be so hard to upgrade to a newer Python or install dependencies in the CI container, but I'd like to avoid it if it won't be needed.

The code is in a single file `stage-build.py`, so it's a bit cluttered. I can also separate it into multiple files, although having it in a single file has some benefits. The code could definitely be nicer, but I'm a bit wary of introducing a lot of abstraction and similar stuff, as long as the code is stuffed into a single file.

Currently, the Python pipeline should faithfully mirror the bash pipeline one by one. After this PR, I'd like to try to optimize it, e.g. by caching the LLVM builds on S3.

r? `@Mark-Simulacrum`
2023-01-29 22:14:18 +00:00
Mateusz Mikuła c0242d47ec Upgrade mingw-w64 on CI 2023-01-29 13:01:06 +01:00
Jakub Beránek de5740afd8 Port pgo.sh to Python 2023-01-24 21:51:01 +01:00
Josh Stone 59489557f4 ci: add runners for vanilla LLVM 14 and 15 2023-01-18 11:14:40 -08:00
Esteban Küber 2df922bff9 Include both md and yaml ICE ticket templates
* Existing compilers link to the md version
* The YAML version field for the backtrace *doesn't let us paste a full backtrace*
* We will need the YAML version in order to be able to submit reports once we start storing the backtrace to disk
2023-01-15 03:33:52 +00:00
Esteban Küber 20f6a46087 Use GitHub yaml templates for ICE, Docs and Diagnostics tickets 2023-01-14 01:39:05 +00:00
Albert Larsan 2872c3dbb8 Change src/test to tests in source files, fix tidy and tests 2023-01-11 09:32:13 +00:00