You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/tests/ci.md
+21-13
Original file line number
Diff line number
Diff line change
@@ -28,7 +28,7 @@ Our CI is primarily executed on [GitHub Actions], with a single workflow defined
28
28
in [`.github/workflows/ci.yml`], which contains a bunch of steps that are
29
29
unified for all CI jobs that we execute. When a commit is pushed to a
30
30
corresponding branch or a PR, the workflow executes the
31
-
[`src/ci/github-actions/ci.py`]script, which dynamically generates the specific CI
31
+
[`src/ci/citool`]crate, which dynamically generates the specific CI
32
32
jobs that should be executed. This script uses the [`jobs.yml`] file as an
33
33
input, which contains a declarative configuration of all our CI jobs.
34
34
@@ -133,29 +133,37 @@ There are several use-cases for try builds:
133
133
Again, a working compiler build is needed for this, which can be produced by
134
134
the [dist-x86_64-linux] CI job.
135
135
- Run a specific CI job (e.g. Windows tests) on a PR, to quickly test if it
136
-
passes the test suite executed by that job. You can select which CI jobs will
137
-
be executed in the try build by adding up to 10 lines containing `try-job:
138
-
<nameofjob>` to the PR description. All such specified jobs will be executed
139
-
in the try build once the `@bors try` command is used on the PR. If no try
140
-
jobs are specified in this way, the jobs defined in the `try` section of
141
-
[`jobs.yml`] will be executed by default.
136
+
passes the test suite executed by that job.
137
+
138
+
You can select which CI jobs will
139
+
be executed in the try build by adding lines containing `try-job:
140
+
<jobpattern>` to the PR description. All such specified jobs will be executed
141
+
in the try build once the `@bors try` command is used on the PR. If no try
142
+
jobs are specified in this way, the jobs defined in the `try` section of
143
+
[`jobs.yml`] will be executed by default.
144
+
145
+
Each pattern can either be an exact name of a job or a glob pattern that matches multiple jobs,
146
+
for example `*msvc*` or `*-alt`. You can start at most 20 jobs in a single try build. When using
147
+
glob patterns, you might want to wrap them in backticks (`` ` ``) to avoid GitHub rendering
148
+
the pattern as Markdown.
142
149
143
150
> **Using `try-job` PR description directives**
144
151
>
145
-
> 1. Identify which set of try-jobs (max 10) you would like to exercise. You can
152
+
> 1. Identify which set of try-jobs you would like to exercise. You can
146
153
> find the name of the CI jobs in [`jobs.yml`].
147
154
>
148
-
> 2. Amend PR description to include (usually at the end of the PR description)
149
-
> e.g.
155
+
> 2. Amend PR description to include a set of patterns (usually at the end
156
+
> of the PR description), for example:
150
157
>
151
158
> ```text
152
159
> This PR fixes #123456.
153
160
>
154
161
> try-job: x86_64-msvc
155
162
> try-job: test-various
163
+
> try-job: `*-alt`
156
164
> ```
157
165
>
158
-
> Each `try-job` directive must be on its own line.
166
+
> Each `try-job` pattern must be on its own line.
159
167
>
160
168
> 3. Run the prescribed try jobs with `@bors try`. As aforementioned, this
161
169
> requires the user to either (1) have `try` permissions or (2) be delegated
@@ -299,7 +307,7 @@ platform’s custom [Docker container]. This has a lot of advantages for us:
299
307
- We can avoid reinstalling tools (like QEMU or the Android emulator) every time
300
308
thanks to Docker image caching.
301
309
- Users can run the same tests in the same environment locally by just running
302
-
`python3 src/ci/github-actions/ci.py run-local <job-name>`, which is awesome to debug failures. Note that there are only linux docker images available locally due to licensing and
310
+
`cargo run --manifest-path src/ci/citool/Cargo.toml run-local <job-name>`, which is awesome to debug failures. Note that there are only linux docker images available locally due to licensing and
303
311
other restrictions.
304
312
305
313
The docker images prefixed with `dist-` are used for building artifacts while
Copy file name to clipboardExpand all lines: src/tests/directives.md
+2-6
Original file line number
Diff line number
Diff line change
@@ -6,10 +6,7 @@
6
6
FIXME(jieyouxu) completely revise this chapter.
7
7
-->
8
8
9
-
Directives are special comments that tell compiletest how to build and interpret
10
-
a test. They must appear before the Rust source in the test. They may also
11
-
appear in `rmake.rs` or legacy Makefiles for [run-make
12
-
tests](compiletest.md#run-make-tests).
9
+
Directives are special comments that tell compiletest how to build and interpret a test. They must appear before the Rust source in the test. They may also appear in `rmake.rs`[run-make tests](compiletest.md#run-make-tests).
13
10
14
11
They are normally put after the short comment that explains the point of this
15
12
test. Compiletest test suites use `//@` to signal that a comment is a directive.
@@ -142,6 +139,7 @@ Some examples of `X` in `ignore-X` or `only-X`:
142
139
- Pointer width: `32bit`, `64bit`
143
140
- Endianness: `endian-big`
144
141
- Stage: `stage1`, `stage2`
142
+
- Binary format: `elf`
145
143
- Channel: `stable`, `beta`
146
144
- When cross compiling: `cross-compile`
147
145
- When [remote testing] is used: `remote`
@@ -219,8 +217,6 @@ The following directives will check LLVM support:
219
217
[`aarch64-gnu-debug`]), which only runs a
220
218
subset of `run-make` tests. Other tests with this directive will not
221
219
run at all, which is usually not what you want.
222
-
- Notably, the [`aarch64-gnu-debug`] CI job *currently* only runs `run-make`
223
-
tests which additionally contain `clang` in their test name.
224
220
225
221
See also [Debuginfo tests](compiletest.md#debuginfo-tests) for directives for
0 commit comments