Make "expeditive" pipelines way faster
Given the following, I think pipeline:expedite pipelines should be way faster:
- only master:broken MR are allowed to have pipeline:expedite, which means
master
is already broken and the priority is to fix it - in most cases, pipeline:expedite MRs are reverts of MRs that were merged a few hours earlier, so the risk of breaking
master
even more with the revert is minimal compared to keepingmaster
broken while pipeline:expedite pipeline is running - the merge commit will trigger a complete pipeline anyway afterward, so in the worst case,
master
will stay broken after merge🤷🏼
What I propose is to reduce the number of jobs we run in pipeline:expedite pipelines:
- only run predictive jobs (don't run full rspec after approval nor foss-impact)
- don't run permutation jobs (as-if-foss, single-db, es8 etc.)
- don't run
db:*
jobs - don't run
jest
jobs - we could even go further and only run linting and
gitlab:setup
Example of a current pipeline:expedite MR where we had 606 jobs: https://gitlab.com/gitlab-org/gitlab/-/pipelines/834222144 (finished in 84 minutes).
Example of the new pipeline:expedite behavior I propose, with 27 jobs: https://gitlab.com/gitlab-org/gitlab/-/pipelines/837674691 (finished in 9 minutes).
Edited by Rémy Coutable