Skip to content

Draft: Generate a single predictive child pipeline

Context

Closes gitlab-org/quality/engineering-productivity/team#444

See gitlab-org/quality/engineering-productivity/team#427 (comment 1821337510).

In gitlab-org/quality/engineering-productivity/team#427, we wanted to run rspec:coverage and rspec:undercoverage in the backend predictive child pipeline, but we currently run two predictive child pipelines.

What does this MR do?

We used to create two separate child pipelines for EE and FOSS.

We now merge those two children pipelines together.

We could not "just merge them" ™️, because they have some CI/CD templating jobs that are identical. We first extracted what they had in common in another template, so that the final rendering was possible.

Proof of work

No tests to run

https://gitlab.com/gitlab-org/gitlab/-/pipelines/1221043587

Possible thanks to this line.

(fun fact: thanks to YAML, we generate three jobs named no-op because we have three empty files for the detected tests, and they are "merged together" into a single no-op job 🎉 )

Test is with only FOSS tests

https://gitlab.com/gitlab-org/gitlab/-/pipelines/1220975796

Possible thanks to this line.

Test is with only EE tests

https://gitlab.com/gitlab-org/gitlab/-/pipelines/1222271121

Possible thanks to this line and this line.

Test it with both FOSS/EE tests

https://gitlab.com/gitlab-org/gitlab/-/pipelines/1220908120

Possible thanks to this line

MR acceptance checklist

Please evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

Screenshots or screen recordings

Screenshots are required for UI changes, and strongly recommended for all other merge requests.

Before After

How to set up and validate locally

Numbered steps to set up and validate the change are strongly suggested.

Edited by David Dieulivol

Merge request reports