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
@@ -211,8 +209,7 @@ If you want to modify what gets executed on our CI, you can simply modify the
211
209
You can also modify what gets executed temporarily, for example to test a
212
210
particular platform or configuration that is challenging to test locally (for
213
211
example, if a Windows build fails, but you don't have access to a Windows
214
-
machine). Don't hesitate to use CI resources in such situations to try out a
215
-
fix!
212
+
machine). Don't hesitate to use CI resources in such situations.
216
213
217
214
You can perform an arbitrary CI job in two ways:
218
215
- Use the [try build](#try-builds) functionality, and specify the CI jobs that
@@ -255,8 +252,8 @@ purposes.
255
252
</div>
256
253
257
254
Although you are welcome to use CI, just be conscious that this is a shared
258
-
resource with limited concurrency. Try not to enable too many jobs at once (one
259
-
or two should be sufficient in most cases).
255
+
resource with limited concurrency. Try not to enable too many jobs at once;
256
+
one or two should be sufficient in most cases.
260
257
261
258
## Merging PRs serially with bors
262
259
@@ -280,12 +277,12 @@ by listening for either Commit Statuses or Check Runs. Since the merge commit is
280
277
based on the latest `master` and only one can be tested at the same time, when
281
278
the results are green, `master` is fast-forwarded to that merge commit.
282
279
283
-
Unfortunately testing a single PR at the time, combined with our long CI (~2
284
-
hours for a full run), means we can’t merge too many PRs in a single day, and a
285
-
single failure greatly impacts our throughput for the day. The maximum number of
280
+
Unfortunately, testing a single PR at a time, combined with our long CI (~2
281
+
hours for a full run), means we can’t merge a lot of PRs in a single day, and a
282
+
single failure greatly impacts our throughput. The maximum number of
286
283
PRs we can merge in a day is around ~10.
287
284
288
-
The large CI run times and requirement for a large builder pool is largely due
285
+
The long CI run times, and requirement for a large builder pool, is largely due
289
286
to the fact that full release artifacts are built in the `dist-` builders. This
290
287
is worth it because these release artifacts:
291
288
@@ -298,12 +295,11 @@ is worth it because these release artifacts:
298
295
299
296
Some PRs don’t need the full test suite to be executed: trivial changes like
300
297
typo fixes or README improvements *shouldn’t* break the build, and testing every
301
-
single one of them for 2+ hours is a big waste of time. To solve this, we
298
+
single one of them for 2+ hours would be wasteful. To solve this, we
302
299
regularly create a "rollup", a PR where we merge several pending trivial PRs so
303
300
they can be tested together. Rollups are created manually by a team member using
304
301
the "create a rollup" button on the [merge queue]. The team member uses their
305
-
judgment to decide if a PR is risky or not, and are the best tool we have at the
306
-
moment to keep the queue in a manageable state.
302
+
judgment to decide if a PR is risky or not.
307
303
308
304
## Docker
309
305
@@ -316,18 +312,22 @@ platform’s custom [Docker container]. This has a lot of advantages for us:
316
312
- We can use ancient build environments to ensure maximum binary compatibility,
317
313
for example [using older CentOS releases][dist-x86_64-linux] on our Linux
318
314
builders.
319
-
- We can avoid reinstalling tools (like QEMU or the Android emulator) every time
315
+
- We can avoid reinstalling tools (like QEMU or the Android emulator) every time,
320
316
thanks to Docker image caching.
321
-
- Users can run the same tests in the same environment locally by just running
322
-
`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
317
+
- Users can run the same tests in the same environment locally by just running this command:
318
+
319
+
cargo run --manifest-path src/ci/citool/Cargo.toml run-local <job-name>
320
+
321
+
This is helpful for debugging failures.
322
+
Note that there are only Linux Docker images available locally due to licensing and
323
323
other restrictions.
324
324
325
-
The docker images prefixed with `dist-` are used for building artifacts while
325
+
The Docker images prefixed with `dist-` are used for building artifacts while
326
326
those without that prefix run tests and checks.
327
327
328
328
We also run tests for less common architectures (mainly Tier 2 and Tier 3
329
-
platforms) in CI. Since those platforms are not x86 we either run everything
330
-
inside QEMU or just cross-compile if we don’t want to run the tests for that
329
+
platforms) in CI. Since those platforms are not x86, we either run everything
330
+
inside QEMU, or we just cross-compile if we don’t want to run the tests for that
331
331
platform.
332
332
333
333
These builders are running on a special pool of builders set up and maintained
@@ -364,41 +364,41 @@ invalidated if one of the following changes:
0 commit comments