Make platform-specific job chains modular/optional pipeline executions
What does this MR do?
Allow (optional) selection of platforms to execute pipeline on.
Main goal was to create compartments/chains of execution so that pipeline can be (re)executed in parts, giving us better control both during development and in cases of pipeline failure.
Changes effects
- whenever failure occurs for a single platform (say,
gke130
), entire platform chain can be re-launched/restarted with a single restart. This shall reduce:- need for manual re-launch of
review_*
jobs, along with any other jobs - need to manually
stop_*
launched environments (partially addresses concerns of Create a scheduled pipeline or kube-janitor to ... (#5326) )
- need for manual re-launch of
- whenever changes are made for a specific platform, or are platform-independent one can limit scope of pipeline execution to speed up processing and feedback
- Allure QA reports segregated by platform making it easier to spot differences in results across platforms and address them.
Current State
- each platform CI jobs are isolated into their own child pipeline
- two gates available:
current
andsecondary
separating CI execution for either single "current" k8s platform or a full range of supported platforms.
- two gates available:
- Narrowed down CNG testing to a single (
current
) k8s platform - testing both cpuarm64 and cpuamd64
Related issues
- Relates to #5805
Author checklist
For general guidance, please follow our Contributing guide.
Required
For anything in this list which will not be completed, please provide a reason in the MR discussion.
-
Merge Request Title and Description are up to date, accurate, and descriptive. -
MR targeting the appropriate branch. -
MR has a green pipeline. -
Documentation created/updated. -
Tests added/updated, and test plan for scenarios not covered by automated tests. -
Equivalent MR/issue for omnibus-gitlab opened.
Reviewers checklist
-
MR has a green pipeline on https://gitlab.com/gitlab-org/charts/gitlab. -
Consider downstream impact to the Operator, as per evaluating impact from changes to GitLab Chart.
Edited by Dmytro Makovey