about summary refs log tree commit diff
path: root/src/ci/github-actions
AgeCommit message (Collapse)AuthorLines
2023-07-19remove hack, now CI uses (currently latest) SDK 10.0.22621.0klensy-3/+0
See https://github.com/rust-lang-ci/rust/actions/runs/5596259246/jobs/10233070602#step:24:929 C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\corecrt_io.h
2023-07-10CI: use `macos-13` runner for Apple jobsJakub Beránek-1/+1
2023-07-09Port PGO/LTO/BOLT optimized build pipeline to RustJakub Beránek-1/+1
2023-07-08Rollup merge of #113173 - Kobzol:ci-concurrency-group-workflow, r=pietroalbiniMatthias Krüger-1/+1
CI: include workflow name in concurrency group Currently, this won't change anything, because we only have one relevant workflow (`CI`), but for future proofing we should probably include the workflow name in the concurrency group. Found by ``@klensy`` [here](https://github.com/rust-lang/rust/pull/113059#discussion_r1247213606).
2023-07-07Auto merge of #112796 - Kobzol:ci-merge-msvc-cargo-tools, r=pietroalbinibors-9/+3
CI: merge msvc cargo and tools jobs The `x86_64-msvc-cargo` and `x86_64-msvc-tools` jobs both run for ~1 hour, but most of that time is actually spent in building LLVM and `rustc`, so I want to try merging them. ![image](https://github.com/rust-lang/rust/assets/4539057/8652fa2a-b8b7-41d0-8f16-555d31acd9a5)
2023-07-06Auto merge of #112779 - Kobzol:ci-merge-llvm-14, r=pietroalbinibors-5/+1
CI: merge x86_64-gnu-llvm-14 and x86_64-gnu-llvm-14-stage1 CI jobs Another attempt to shorten CI job times. Suggested by `@the8472` [here](https://rust-lang.zulipchat.com/#narrow/stream/242791-t-infra/topic/CI.20usage/near/367172221).
2023-07-02Remove MIPS host CI workflowsJubilee Young-12/+0
2023-06-30CI: include workflow name in concurrency groupJakub Beránek-1/+1
Currently, this won't change anything, because we only have one relevant workflow (`CI`), but for future proofing we should probably include the workflow name in the concurrency group.
2023-06-29CI: do not cancel concurrent builds on the same branchJakub Beránek-3/+4
Add an exception for try and try-perf branches to enable concurrent try builds and unrolled rollup builds.
2023-06-26CI: do not cancel concurrent builds on the same branchJakub Beránek-1/+1
Instead, only cancel them if the builds have the same commit SHA.
2023-06-25Remove `cancel-outdated` actionJakub Beránek-13/+2
2023-06-23Cancel in-progress workflow runs after a pushJakub Beránek-0/+4
2023-06-19Add gha problem matcherOli Scherer-0/+40
2023-06-19CI: merge `x86_64-msvc-cargo` and `x86_64-msvc-tools` jobsJakub Beránek-9/+3
2023-06-19CI: merge x86_64-gnu-llvm-14 and x86_64-gnu-llvm-14-stage1 CI jobsJakub Beránek-5/+1
2023-06-18Auto merge of #112645 - Kobzol:ci-mingw-merge, r=pietroalbinibors-26/+4
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-18Merge `mingw-1/2` CI jobsJakub Beránek-26/+4
2023-06-17Auto merge of #112407 - tgross35:ci-docs-publish, r=Mark-Simulacrumbors-0/+16
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-14Merge `msvc-1/2` CI jobsJakub Beránek-16/+4
2023-06-12Publish docs as github artifacts during CITrevor Gross-0/+16
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-01Do not build components unneeded for perf bot in try buildsJakub Beránek-0/+1
2023-05-12ci: Add support for dist-loongarch64-linuxWANG Rui-0/+3
Co-Authored-By: YANG Xiaojuan <yangxiaojuan@loongson.cn>
2023-05-07Auto merge of #111224 - jyn514:default-tidy, r=pietroalbinibors-5/+1
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-06Auto merge of #110972 - ehuss:remove-awscli, r=pietroalbinibors-4/+2
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-04Remove `tidy` key in PR CIjyn-5/+1
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-03Auto merge of #110846 - jdno:reduce-builder-sizes, r=pietroalbinibors-7/+11
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-04-30Set the AWS region.Eric Huss-0/+2
2023-04-28Remove aws cli install.Eric Huss-4/+0
2023-04-26Downsize builders for some x86_64-gnu targetsJan David-4/+4
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-26Downsize builder for mingw-checkJan David-1/+5
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-26Downsize builders for i686-gnuJan David-2/+2
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-25Use the standard macOS CI runnerRyan Levick-1/+1
2023-04-16ci: add a runner for vanilla LLVM 16Josh Stone-0/+5
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-10Trim down core counts for fast buildersMark Rousskov-36/+36
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-10Switch all job names to include core countMark Rousskov-64/+72
This will allow moving jobs between 8 and 16 core VMs in the next commit more easily.
2023-04-02Improve job names in Github Actions previewjyn-3/+3
Before: `CI / PR (mingw-check, false, ubuntu-20.04-16core-64gb) (pull_request)` After: `CI / PR - mingw-check (pull_request)`
2023-03-19Move us to the new large runners poolMark Rousskov-2/+2
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-13Revert "enable ThinLTO for rustc on x86_64-pc-windows-msvc dist builds"Nilstrieb-1/+0
This lead to a miscompilation in at least `char::is_whitespace` and probably in more unknown places..... This reverts commit 684663ed380d0e6a6e135aed9c6055ab4ba94ac8.
2023-03-06use problem matchers for tidy CIDeadbeef-0/+15
2023-02-22Re-apply "switch to the macos-12-xl builder"Michael Goulet-1/+1
This reverts commit e63ec2e1402eaff949e5c53b8f6062b152010fcc.
2023-02-10Update the minimum external LLVM to 14Josh Stone-7/+2
2023-02-05Run the tools builder on all PRsJoshua Nelson-2/+0
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-03Auto merge of #107543 - ehuss:protocol-sparse, r=jyn514bors-0/+1
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-01Revert "switch to the macos-12-xl builder"Michael Goulet-1/+1
This reverts commit fcbae989ae790d5b9a0a23ceba242d0b0d4e6c5b.
2023-01-31Enable Cargo's sparse protocol in CIEric Huss-0/+1
2023-01-29Auto merge of #103019 - Kobzol:ci-multistage-python, r=Mark-Simulacrumbors-1/+1
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-29Upgrade mingw-w64 on CIMateusz Mikuła-10/+2
2023-01-24Port pgo.sh to PythonJakub Beránek-1/+1
2023-01-18ci: add runners for vanilla LLVM 14 and 15Josh Stone-0/+10
2023-01-11Change `src/test` to `tests` in source files, fix tidy and testsAlbert Larsan-2/+2