Reduce wait time for test job to run as soon as their needed build job is finished#11470
Conversation
🟢 Java Benchmark SLOs — All performance SLOs passed
PR vs. master resultsStartup Time
Commit: Load and DaCapo benchmarks can be triggered manually in the GitLab pipeline. Results will appear in the Benchmarking Platform UI after completion. |
AlexeyKuznetsov-DD
left a comment
There was a problem hiding this comment.
Cool!
Maybe worth to add some comments explaining that feature?
left minor comments about unused anchors...
|
/merge |
|
View all feedbacks in Devflow UI.
This pull request is not mergeable according to GitHub. Common reasons include pending required checks, missing approvals, or merge conflicts — but it could also be blocked by other repository rules or settings.
The expected merge time in
|
What Does This Do
Narrows selected GitLab
tests-stage jobs fromneeds: [ build_tests ]toneeds:parallel:matrixentries that point at the matchingbuild_testsmatrix row.This covers the
base,profiling,instrumentation,latest-dependencyinstrumentation,smoke, andmuzzlejobs that have a build matrix counterpart. Jobs without a direct counterpart keep the inherited default dependency behavior.Motivation
Test jobs were only started when all tests have been built. Allowing to run test jobs sooner reduces the feedback loop.
Technically a
needsentry that references a parallel matrix job waits for every generated job in that matrix by default.Using
needs:parallel:matrixlets each mapped test job wait only for the build row it actually needs.Relevant GitLab docs:
Additional Notes
Later, we'll run on GitLab 18.6 or later, matrix expressions could reduce the static repetition here in a future cleanup. In particular,
$[[ matrix.IDENTIFIER ]]can express 1:1 dependencies between parallel matrix jobs at pipeline creation time, if the downstream job matrix carries the same selector identifiers.Docs: https://docs.gitlab.com/ci/yaml/matrix_expressions/