Skip to content

Commit 61fac37

Browse files
authored
Merge pull request #959 from jieyouxu/ci-invariant
Document `rust-lang/rust` pr-subset-of-merge CI invariant
2 parents 017c961 + 06cabd4 commit 61fac37

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

src/infra/docs/rustc-ci.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,23 @@ is always in a valid state.
55

66
The CI infrastructure is described in detail in the [rustc-dev-guide][rustc-dev-guide].
77

8+
## `rust-lang/rust` CI invariant
9+
10+
Changes to the default and `beta`/`stable` release branches of the [rust-lang/rust] repository go
11+
through two sets of CI jobs:
12+
13+
1. **PR CI**. This is a fast and restricted set of CI jobs that run against PRs to provide faster
14+
feedback.
15+
2. **Merge CI**: This is the full set of CI jobs that all changes to [rust-lang/rust] must pass.
16+
This includes, but are not limited to, e.g. testing jobs for all Tier 1 targets.
17+
18+
We enforce an [rust-lang/rust] CI invariant where **PR CI jobs are a subset of Merge CI jobs modulo
19+
carve outs**. The carve out differences between PR CI and Merge CI jobs are tracked in
20+
<https://github.com/rust-lang/rust/issues/144259>. The reason for this subset invariant is because
21+
if you have PR-only CI jobs, a PR can fail the PR-only jobs but pass the Merge CI. This can cause
22+
all subsequent PR CI to fail, in _completely unrelated PRs_, which is very frustrating for other
23+
contributors.
24+
25+
26+
[rust-lang/rust]: https://github.com/rust-lang/rust
827
[rustc-dev-guide]: https://rustc-dev-guide.rust-lang.org/tests/ci.html

0 commit comments

Comments
 (0)