Reduce the complexity of our CI configuration
EE port: https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/15121
What does this MR do?
This tries to reduce the complexity of our CI configuration:
- No more global before_script!
🎉 - There's no global cache so this isn't needed.
- The idea is to define a single keyword for each "extensions". For instance .default_before_script only defines before_script, .no-qa only defines except etc.
- Use atomic
extends
as much as possible. - Improve job names as much as possible.
I've also pushed the same branch to qa-branch-gather-jobs-data
and docs-branch-gather-jobs-data
to double-check that this change doesn't affect the jobs that are run and/or timings (https://gitlab.com/gitlab-org/gitlab-ce/-/branches/all?utf8=✓&search=branch-gather-jobs-data).
I've also pushed these branches to my fork here: https://gitlab.com/rymai/gitlab-ce/-/branches/all?utf8=✓&search=branch-gather-jobs-data to double-check that this change doesn't affect the jobs that are run and/or timings.
Lastly, here are the corresponding EE branches: https://gitlab.com/gitlab-org/gitlab-ee/-/branches/all?utf8=✓&search=branch-gather-jobs-data
Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/65702, https://gitlab.com/gitlab-org/gitlab-ce/issues/51367.
Comparison with existing pipelines
For a feature branch
Without theses changes:
- https://gitlab.com/gitlab-org/gitlab-ce/pipelines/76331045: 99 jobs, 116 minutes.
-
https://gitlab.com/gitlab-org/gitlab-ce/pipelines/76331662: 99 jobs (+
review-stop
), 105 minutes. - (For a fork) https://gitlab.com/rymai/gitlab-ce/pipelines/75750986: 82 jobs, 54 minutes.
With theses changes:
- https://gitlab.com/gitlab-org/gitlab-ce/pipelines/77314535: 99 jobs, 68 minutes.
- (For a fork) https://gitlab.com/rymai/gitlab-ce/pipelines/77346374: 82 jobs, 38 minutes.
For a QA branch
Without theses changes:
- https://gitlab.com/gitlab-org/gitlab-ce/pipelines/76313587: 33 jobs, 170 minutes.
- https://gitlab.com/gitlab-org/gitlab-ce/pipelines/76302387: 33 jobs (+ 1 retry), 106 minutes.
- https://gitlab.com/gitlab-org/gitlab-ce/pipelines/76302292: 34 jobs (+ 1 retry), 109 minutes.
- (For a fork) https://gitlab.com/rymai/gitlab-ce/pipelines/75763661: 18 jobs, 32 minutes.
With theses changes:
- https://gitlab.com/gitlab-org/gitlab-ce/pipelines/77314646: 33 jobs, 151 minutes.
- (For a fork) https://gitlab.com/rymai/gitlab-ce/pipelines/77346422: 18 jobs, 32 minutes.
For a Docs branch
Without theses changes:
- https://gitlab.com/gitlab-org/gitlab-ce/pipelines/76291086: 7 jobs, 3 minutes.
- https://gitlab.com/gitlab-org/gitlab-ce/pipelines/76214788: 7 jobs, 3 minutes.
- (For a fork) https://gitlab.com/rymai/gitlab-ce/pipelines/75751203: 3 jobs, 3 minutes.
With theses changes:
- https://gitlab.com/gitlab-org/gitlab-ce/pipelines/77314753: 7 jobs, 3 minutes.
- (For a fork) https://gitlab.com/rymai/gitlab-ce/pipelines/77346438: 3 jobs, 3 minutes.
Does this MR meet the acceptance criteria?
Conformity
- [-] Changelog entry for user-facing changes, or community contribution. Check the link for other scenarios.
- [-] Documentation created/updated or follow-up review issue created
-
Code review guidelines -
Merge request performance guidelines -
Style guides - [-] Database guides
-
Separation of EE specific content