Add update paths testing to monthly release pipeline
What does this MR do and why?
Describe in detail what your merge request does and why.
Content
- Add update paths testing to monthly release pipeline
In order to replace the release instance, the QA scenario Test::Omnibus::UpdateFromPrevious is used. This change does it by:
- Use the class
ReleaseTools::UpdatePaths::DynamicPipeline, which is added in !4107 (merged), to create and run a dynamic pipeline which validate the update path of monthly release. - Add two new jobs to the tagging stage of the patch release pipeline, to generate the dynamic pipeline and run it.
- `monthly_release_tag:update_path:create_dynamic_pipeline`` - depends on the monthly_release_tag:check_omnibus_packages_tagging job, because the QA uses the Docker image built in the Omnibus pipeline.
-
monthly_release_tag:update_path- trigger the downstream pipeline. The downstream pipeline has only one stage with one job. - To make sure it work without breaking the current workflow, the new jobs all have allow_failure: true
- How the new jobs are triggered:
- When the stage runs stand-alone (i.e.
MONTHLY_RELEASE_PIPELINE=update_paths): we manually trigger the start - When the stage runs in a full pipeline (i.e.
MONTHLY_RELEASE_PIPELINE=true): the stage runs automatically aftermonthly_release_tag_day:check_omnibus_packages_taggingjob.
- When the stage runs stand-alone (i.e.
- The job
monthly_release_tag:verify_release_deployto check thereleaseinstance stays unchanged
Ref: gitlab-com/gl-infra/delivery#21073 (closed)
Job dependency
Full release pipeline MONTHLY_RELEASE_PIPELINE=true
https://ops.gitlab.net/gitlab-org/release/tools/-/pipelines/4458001
As you can see in the following screenshot, the new jobs have their own stages, running after tagging
Looking at job dependencies, we see the stage starts after monthly_release_tag_day:check_omnibus_packages_tagging job, because the update paths QA needs the new Omnibus package.
Stand-alone stage MONTHLY_RELEASE_PIPELINE=update_paths
https://ops.gitlab.net/gitlab-org/release/tools/-/pipelines/4458032
When running the stage stand-alone, the start job is a manual job
Functional Testing
https://ops.gitlab.net/gitlab-org/release/tools/-/pipelines/4458034
-
A Slack message is sent when starting:
-
Test updating from the latest version to the upcoming one: Note that, at the moment, 17.11.1 is the latest one. Before 18.0.0, there will be 17.11.2, so when the job runs at that time, it will be correct. (please ignore the job name, it is wrong because of an unrelated issue, which is being fixed in !4124 (merged))
[May 02 2025 14:58:50 UTC (Gitlab QA)] INFO -- Performing gitlab update: gitlab/gitlab-ee:17.11.1-ee.0 => dev.gitlab.org:5005/gitlab/omnibus-gitlab/gitlab-ee:18.0.0-ee.0 (18.0.0)



