Commit Graph

257 Commits

Author SHA1 Message Date
MarcoIeni 9b70b8bbbf CI: free disk with in-tree script instead of GitHub Action
Co-authored-by: whiteio <chriswhiteiodev@gmail.com>
2025-01-21 16:19:11 +01:00
Jakub Beránek c8b29d6f6f CI: fix name of jobs
There is a difference between the `image` (the Dockerfile), the `name` of the job (which determines also its properties) and the `full_name`, which includes the `auto/try/pr` prefix.
2025-01-09 21:40:29 +01:00
Jakub Beránek 0cc11f8c48 Add a command to run a given Linux CI job locally 2025-01-07 18:15:13 +01:00
Jakub Beránek 8ecd033654 Rename CI script from calculate-job-matrix to ci.py 2025-01-07 18:15:13 +01:00
MarcoIeni b731c36faa ci: use ubuntu 24 instead of latest 2024-12-19 16:02:05 +01:00
Jakub Beránek 6e22b84296 [CI] Use a lockfile for installing the datadog package
Without a lockfile, it could fail to compile when the dependencies have changed.
2024-12-16 12:35:09 +01:00
Michael Goulet 24e7196f92 Rollup merge of #132605 - Kobzol:ci-increase-timeout, r=Mark-Simulacrum
CI: increase timeout from 4h to 6h

Our CI got a bit slower since the last time we [lowered](https://github.com/rust-lang/rust/pull/127648) the timeout, and if e.g. Docker build cache is broken, the timeout can be triggered.

Discussed [here](https://rust-lang.zulipchat.com/#narrow/channel/242791-t-infra/topic/ci.20job.20timings.20stats).
2024-11-26 20:35:37 -05:00
MarcoIeni 02b34154fd CI: switch 7 linux jobs to free runners 2024-11-05 16:56:41 +01:00
Jakub Beránek b910e977a3 CI: increase timeout from 4h to 6h
Our CI got a bit slower since the last time we lowered the timeout, and if e.g. Docker build cache is broken, the timeout can be triggered.
2024-11-04 18:55:21 +01:00
Jakub Beránek 91c4d09aed Print how much disk space is left after CI build runs 2024-10-13 21:58:24 +02:00
Jakub Beránek 71cc27058d Free up disk space on CI Linux runners 2024-10-13 21:58:24 +02:00
onur-ozkan 4454fa998c add new CI step: "setup upstream remote"
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-10-12 08:58:39 +03:00
Jakub Beránek c1c0bd7a25 Upload average CPU consumption of CI jobs to DataDog 2024-09-27 11:39:52 +02:00
Jakub Beránek 3f4b9dd463 Lower timeout of CI jobs to 4 hours
The previous value, 10 hours, is unnecessarily long, since most of our jobs finish within 2.5 hours currently.
2024-07-12 11:27:46 +02:00
Chris Denton 48d3425364 Remove some msys2 utils 2024-06-12 17:33:52 +00:00
Jakub Beránek 9ce12c4cab CI: remove Setup Python action 2024-06-07 11:26:36 +02:00
Jakub Beránek 2fe41c68d3 Fix publishing of toolstate history 2024-06-05 16:41:59 +02:00
Chris Denton 19cfe8d9e6 Add "Setup Python" action to github-hosted runners 2024-05-26 22:43:52 +00:00
Chris Denton f63931bc1a Cleanup custom mingw in CI 2024-05-26 22:43:40 +00:00
Jakub Beránek 7b6a3d029b CI: fix toolstate publishing 2024-05-15 15:48:52 +02:00
Jakub Beránek b3e9060178 CI: fix auto builds and make sure that we always have at least a single CI job 2024-05-05 14:06:23 +02:00
Jakub Beránek 74dbe8ae9e Parse try build CI job name from commit message 2024-05-05 14:06:23 +02:00
Jakub Beránek b194d5ce44 Output run_type from the matrix calculation job 2024-04-29 21:33:17 +02:00
Jakub Beránek adbc84cfac Remove redundant success expressions from steps 2024-04-29 21:33:17 +02:00
Jakub Beránek 686baf5589 Remove redundant success() condition 2024-04-29 21:33:17 +02:00
Jakub Beránek 1ca92c0857 Replace dynamically generated ci.yml file with the original template 2024-04-29 21:32:35 +02:00
Jakub Beránek 23341500a6 Unify outcome jobs 2024-04-29 21:28:52 +02:00
Jakub Beránek a700897d5a Add missing checkout step 2024-04-27 15:48:35 +02:00
Jakub Beránek 163ea3328b Move TOOLSTATE_REPO to top-level env 2024-04-27 11:36:42 +02:00
Jakub Beránek e82c28debc Remove master push hook 2024-04-25 11:06:27 +02:00
Jakub Beránek 86da0e758f Remove useless condition
Neither `env.DEPLOY` nor `env.DEPLOY_ALT` should be present in this job.
2024-04-25 10:47:19 +02:00
Jakub Beránek 744dc2aa1d Inline base-ci-job YAML anchor and remove unused anchors 2024-04-25 10:40:09 +02:00
Jakub Beránek 144bdf5bf1 Remove master CI job 2024-04-25 10:40:09 +02:00
Jakub Beránek 4942a35f24 Remove step YAML anchor and env.SKIP_JOB 2024-04-24 11:12:39 +02:00
Jakub Beránek 246ee53637 Remove should-skip-this.sh 2024-04-24 11:12:17 +02:00
Jakub Beránek 2632c6139d Fix empty job matrix 2024-04-23 09:01:51 +02:00
Jakub Beránek c251abc7ec Load GitHub context from environment variables 2024-04-23 08:52:28 +02:00
Jakub Beránek d2059aef27 Move auto jobs to calculate-job-matrix.py 2024-04-20 09:54:47 +02:00
Jakub Beránek 7a90679e28 Perform PR and try builds dynamically 2024-04-20 09:07:11 +02:00
Jakub Beránek 9fec43ddf1 Move calculate-job-matrix.py to ci/github-actions 2024-04-20 09:06:04 +02:00
bors ccfcd950b3 Auto merge of #123451 - Kobzol:arbitrary-try-build, r=pietroalbini
CI: add a script for dynamically computing CI job matrix

It would be great if was easier to run specific CI workflows locally, and also to allow us to spawn a specific CI workflow by bors, to enable running arbitrary try builds. See discussion [here](https://rust-lang.zulipchat.com/#narrow/stream/242791-t-infra/topic/CI.20workflows.20refactoring).

This PR is a first step in that direction.
- Moves the definition of CI runners and (for now) PR jobs into a separate `jobs.yml` file.
- Adds a simple Python script that reads the file, decides which jobs should be active for the current CI workflow, and prints them as JSON to their output.
- The PR job then reads this output and generates its job matrix based on it.

By moving the job definitions from `ci.yml` into a separate file, we can handle it programmatically, which should make it easier to both do local execution of CI jobs and also to do arbitrary try builds.
2024-04-15 21:28:25 +00:00
Jakub Beránek c22c81cbc1 Generate CI job matrix for PR jobs in Python 2024-04-04 14:45:02 +02:00
Jakub Beránek ad75760637 CI: Redirect stderr to stdout to order GHA logs 2024-04-02 12:08:47 +02:00
Nilstrieb 24a0d7daff Update upload-artifact to v4
This contains a breaking change around artifact merging no longer being
done. This was not relied on, so it's fine.
2024-03-23 17:06:02 +01:00
Josh Stone 29430554f6 Update the minimum external LLVM to 17 2024-03-17 10:11:04 -07:00
bors 5aad51d015 Auto merge of #112268 - lqd:osx-1cgu, r=Kobzol
Build `rustc` with 1CGU on `x86_64-apple-darwin`

Distribute `x86_64-apple-darwin` artifacts built with `rust.codegen-units=1`, like we already do on Linux.

1) effect on code size on `x86_64-apple-darwin`: it's a 11.14% reduction on `librustc_driver.dylib`
- before, [`41d97c8a5dea2731b0e56fe97cd7cb79e21cff79`](https://ci-artifacts.rust-lang.org/rustc-builds/41d97c8a5dea2731b0e56fe97cd7cb79e21cff79/rustc-nightly-x86_64-apple-darwin.tar.xz): 161232048
- after, [`7549dbdc09f0c4f6cc84002ac03081828054784b`](https://ci-artifacts.rust-lang.org/rustc-builds/7549dbdc09f0c4f6cc84002ac03081828054784b/rustc-nightly-x86_64-apple-darwin.tar.xz): 143256928

2) time it took on CI:
- the [first `try` build](https://github.com/rust-lang-ci/rust/actions/runs/8155512915/job/22291187124) took: 1h 33m
- the [second `try` build](https://github.com/rust-lang-ci/rust/actions/runs/8157057880/job/22295839911) took: 1h 45m

3) most recent perf results on (a noisy) x64 mac are [here](https://github.com/rust-lang/rust/pull/112268#issuecomment-1575635073).

Related tracking issue for build configuration: #103595
2024-03-12 02:02:32 +00:00
bors 4a0cc881dc Auto merge of #112267 - lqd:win-1cgu, r=Kobzol
Build `rustc` with 1CGU on `x86_64-pc-windows-msvc`

Distribute `x86_64-pc-windows-msvc` artifacts built with `rust.codegen-units=1`, like we already do on Linux.

1) effect on code size on `x86_64-pc-windows-msvc`: it's a 3.67% reduction on `rustc_driver.dll`
- before, [`41d97c8a5dea2731b0e56fe97cd7cb79e21cff79`](https://ci-artifacts.rust-lang.org/rustc-builds/41d97c8a5dea2731b0e56fe97cd7cb79e21cff79/rustc-nightly-x86_64-pc-windows-msvc.tar.xz): 137605632
- after, [`704aaa875e4acccc973cbe4579e66afbac425691`](https://ci-artifacts.rust-lang.org/rustc-builds/704aaa875e4acccc973cbe4579e66afbac425691/rustc-nightly-x86_64-pc-windows-msvc.tar.xz): 132551680

2) time it took on CI
- the [first `try` build](https://github.com/rust-lang-ci/rust/actions/runs/8155647651/job/22291592507) took: 1h 31m
- the [second `try` build](https://github.com/rust-lang-ci/rust/actions/runs/8157043594/job/22295790552) took: 1h 32m

3) most recent perf results:
- on a slightly noisy desktop [here](https://github.com/rust-lang/rust/pull/112267#issuecomment-1575758155)
- ChrisDenton's results [here](https://github.com/rust-lang/rust/pull/112267#issuecomment-1583295338)

Related tracking issue for build configuration: #103595
2024-03-11 21:40:34 +00:00
Josh Stone bef1cd80d8 ci: add a runner for vanilla LLVM 18 2024-03-07 18:30:04 -08:00
Rémy Rakic 7d6969bb28 build rustc with 1CGU on x86_64-pc-windows-msvc 2024-03-05 16:50:48 +00:00
Rémy Rakic b36fa70917 build rustc with 1CGU on x86_64-apple-darwin 2024-03-05 16:42:42 +00:00