Enable DAG for some jobs
What does this MR do?
This MR does the following changes to our pipeline in order to speed it up by parallelising jobs:
- Makes several
Test
stage jobs not depend strictly onPrebuild
stage, but rather on whether thePrepare
stage has completed, allowing the 2 stages to run in parallel. - Makes
Build
stage jobs not depend strictly onTest
stage, but rather on whether thePrebuild
stage has completed, allowing the 2 stages to run in parallel.- New
prebuild done
job is used as a straw-man for the completion of thePrebuild
stage, so that we we kick off theBuild
jobs as soon as that simple job fromTest
stage is completed.
- New
- Makes the
static QA
job depend oncode_quality
and all linting jobs depend on as few jobs as possible, so they can run ASAP and fail fast. This pipeline demonstrates that releases get built even ifcode_quality
job fails.
The build pipeline was improved from ~46 minutes to ~29 minutes.
Why was this MR needed?
To make feedback to the developer as fast as possible by levering the DAG functionality.
Are there points in the code the reviewer needs to double check?
Does this MR meet the acceptance criteria?
-
Documentation created/updated -
Added tests for this feature/bug -
In case of conflicts with master
- branch was rebased
What are the relevant issue numbers?
Edited by Tomasz Maczukin