mesa/.gitlab-ci
Eric Engestrom a66e227748 ci/build: lower the delay to start build-only jobs
What we need is a way to tell GitLab "queue `build-only` jobs after
`build-for-tests` jobs have started", to make sure that `build-only`
jobs don't start before `build-for-tests` jobs and thus delays test jobs
and the overall pipeline.

The best I had found was "queue `build-only` jobs after *all* the
`build-for-tests` jobs have finished", but this introduces a larger
delay than we want, and causes `build-only` jobs to often be the last
ones to finish in a pipeline, after test jobs that respect the 15min
runtime limit.

Instead, we can tell GitLab "queue `build-only` jobs after the
`build-for-tests` jobs have been queued for X minutes", which is closer
to what we want, and in particular this ensures the correct order of
*starting* jobs as long as the CI is not overwhelmed and doesn't manage
to actually start a queued `build-for-tests` job within 5min, in which
case I'd argue we don't care about job order anymore because we have
bigger problems anyway and likely everything's going to timeout.

This also gets rid of the hard-to-maintain `.build-for-tests-jobs` list
of `needs:`, which also needed to be manually merged in half the jobs.

The trade-off is that we need to make a (shallow) copy of the
`.container+build-rules` list, that replaces all the `when: on_success`
with `when: delayed` + `start_in: 5 minutes`. This means that we'll need
to make sure the two lists of conditions remain identical, but this
seems more manageable; nevertheless, I added a comment to remind us.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33564>
2025-02-22 19:18:08 +00:00
..
b2c ci/b2c: allow jobs to opt-in into the new mars setup command 2025-02-15 14:22:24 +02:00
bare-metal ci: rename generate-env.sh to export-gitlab-job-env-for-dut.sh 2025-02-12 14:25:30 +00:00
build ci/build: lower the delay to start build-only jobs 2025-02-22 19:18:08 +00:00
common ci: Simplify downloading kernel for crosvm 2025-02-21 14:52:56 +00:00
container ci/alpine: control wayland & wayland-protocols versions 2025-02-22 09:58:49 +00:00
firmware intel/ci: Update GuC firmware for ADL-S and ADL-N 2025-02-21 14:52:56 +00:00
fluster ci/fluster: Add radeonsi-raven-vaapi-fluster jobs 2025-01-25 08:48:04 +00:00
fossils ci: enable shellcheck on whole .gitlab-ci 2023-05-25 16:06:53 +02:00
lava ci: rename generate-env.sh to export-gitlab-job-env-for-dut.sh 2025-02-12 14:25:30 +00:00
meson ci: disable LTO for nightly debian-build-testing 2025-02-08 13:22:13 +02:00
piglit ci: skip slow tests on all non-"full" jobs 2024-10-25 08:26:31 +00:00
test ci: move shader-db test job from build jobs yaml to test jobs yaml 2025-02-22 19:18:08 +00:00
tests ci/lava: Uprev freezegun 2024-11-21 04:10:52 +00:00
windows CI/Windows: Update container deps 2025-02-01 01:20:52 +00:00
.flake8 ci: update_traces_checksum: fix E501 line too long 2024-12-23 20:47:16 +00:00
all-skips.txt Uprev Piglit to 04d901e49de6b650f9dceaf73220371273d87f73 2025-02-21 11:53:36 +00:00
angle-skips.txt ci: Add global ANGLE skips for its waiver 2024-10-18 20:39:33 +00:00
bin ci: move the CI handling scripts into bin/ci 2022-12-19 16:36:19 +01:00
create-llvm-meson-wrap-file.sh ci/android: build llvmpipe driver for Android by forcing llvm fallback 2025-01-02 19:31:41 +00:00
cross-xfail-ppc64el ci: update xfails for ppc64le and s390x 2021-03-23 14:01:49 +00:00
cross-xfail-s390x llvmpipe: Use lp_build_round_arch on IBM Z (s390x) 2021-11-23 17:49:02 +00:00
crosvm-init.sh ci: enable shellcheck on whole .gitlab-ci 2023-05-25 16:06:53 +02:00
crosvm-runner.sh ci: Simplify downloading kernel for crosvm 2025-02-21 14:52:56 +00:00
cuttlefish-runner.sh ci/angle: Rework building ANGLE (again) 2025-02-12 09:03:48 +00:00
deqp-runner.sh ci/android: fix problem with deqp version file when building for Android 2025-01-02 19:31:41 +00:00
docs docs: Move the current CI .rst doc to docs/ci/ and link to it from .gitlab-ci. 2020-07-08 20:13:11 +00:00
download-git-cache.sh ci: identify and label S3 buckets 2024-05-07 22:08:07 +00:00
farm-rules.yml ci: rename "freedreno" farm to "google-freedreno" 2024-10-21 09:36:05 +00:00
fossilize-runner.sh ci: prune dri from LD_LIBRARY_PATH 2024-07-24 15:53:12 +00:00
fossils.yml gitlab-ci: add parallel-rdp fossils 2020-06-25 08:03:09 +02:00
gbm-skips.txt ci/piglit: Exclude swapbuffers front-readback tests with PIGLIT_PLATFORM=gbm. 2023-01-24 00:13:03 +00:00
gtest-runner.sh ci: Make section emission really quiet 2024-10-20 11:32:43 +01:00
image-tags.yml ci/alpine: control wayland & wayland-protocols versions 2025-02-22 09:58:49 +00:00
prepare-artifacts-python.sh ci/python: Fix section emission 2024-10-20 11:32:42 +01:00
prepare-artifacts.sh ci/fluster: Add radeonsi-raven-vaapi-fluster jobs 2025-01-25 08:48:04 +00:00
report-flakes.py ci: Add known-flake handling for the IRC flake reports 2021-06-01 20:31:00 +00:00
run-pytest.sh ci: set python version 3.11 for run-pytest.sh 2024-12-23 20:47:16 +00:00
run-shader-db.sh ci: Make section emission really quiet 2024-10-20 11:32:43 +01:00
run-shellcheck.sh ci: move shellcheck options to .shellcheckrc 2024-10-24 22:43:03 +00:00
run-yamllint.sh ci: Crank up the yamllint line length limit. 2023-04-20 02:22:41 +00:00
setup-test-env.sh ci: Remove duplicate slash before $RESULTS_DIR 2024-11-09 08:40:48 +00:00
test-source-dep.yml meson: rename meson_options.txt 2025-02-09 08:13:27 +00:00
vkd3d-runner.sh ci: Make section emission really quiet 2024-10-20 11:32:43 +01:00
x11-skips.txt ci/piglit: Add some common piglit skips for Mesa CI's testing of glx. 2023-01-24 00:13:02 +00:00