Skip to content

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 after monthly_release_tag_day:check_omnibus_packages_tagging job.
  • The job monthly_release_tag:verify_release_deploy to check the release instance 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

Screenshot 2025-05-02 at 16.47.36.png

As you can see in the following screenshot, the new jobs have their own stages, running after tagging

Screenshot 2025-05-02 at 16.48.16.png

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

Screenshot 2025-05-02 at 16.54.01.png

Functional Testing

https://ops.gitlab.net/gitlab-org/release/tools/-/pipelines/4458034

  • A Slack message is sent when starting:

    Screenshot 2025-05-02 at 17.57.44.png

  • 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)

Merge request reports

Loading