Skip to content

Add a stage and basic CI configuration for the monthly release initial RC creation

What does this MR do and why?

Describe in detail what your merge request does and why.

As part of the aim to create the active stable branch one week earlier in the release schedule, a new stage to create the initial RC will be added to the monthly release pipeline.

This MR introduces a basic CI configuration for these new stages and jobs:

monthly_release_initial_rc:start

  • monthly_release_initial_rc:start

monthly_release:initial_rc

  • monthly_release_initial_rc:tag
  • monthly_release_initial_rc:verify_ce
  • monthly_release_initial_rc:verify_rc_pipeline
  • monthly_release_initial_rc:verify_pre_deployment
  • monthly_release_initial_rc:update_branch_permissions

Aside from the monthly_release_initial_rc:start that sends a Slack notification that the stage has started, the other jobs only have echo commands describing what will be executed on the specific job. This will be updated on separate implementation issues.

The monthly release task issue template is also updated to add a step to manually trigger the monthly_release_initial_rc:start job before the creation of the final RC.

Related issues: gitlab-com/gl-infra/delivery#21101 (closed), gitlab-com/gl-infra/delivery#21102 (closed)

Testing

Issue Task Template - RC tag day

  • when monthly_release_initial_rc? is enabled (TEST=true rake "release:issue[18.0.0]")

RC tag day: Tuesday, 2025-05-13

  • Determine what is the last auto deploy branch to have deployed to production and add it here: BRANCH

  • If you plan to use the latest commit deployed to production to create the RC, make sure:

    • To [execute the post-deploy migration pipeline] to ensure that all post-deploy migrations have been executed:

      /chatops run post_deploy_migrations execute
    • To verify if there are production incidents blocking deployments

  • If there was an Internal release after the last patch release and it includes a security fix:

    • Link the Internal release issue:
    • Use a commit before the internal release MR for the next tagging step:
  • Start the monthly_release_initial_rc:start job of the monthly release pipeline: https://example.com/foo/bar/-/pipelines/1

  • Verify that the [release information dashboard] reflects the accurate status "RC Tagged" for the active release version (18.0).

    • The updated status can take up to 15 minutes to display on the dashboard once the RC is tagged.
  • Notify Engineering Managers and developers that final candidate has been created:

    /chatops run notify ":mega: The stable branch has been created and the release candidate is tagged. Barring any show-stopping issues, this is the final commit to be released on the 15th.
    https://gitlab.com/gitlab-org/security/gitlab/-/commits/18-0-stable-ee
    You can check if an MR made the cut by using the following ChatOps command: `/chatops run release check [MR_URL] 18.0`
      * Documentation about `release check` chatops command: `https://gitlab.com/gitlab-org/release/docs/-/blob/master/general/deploy/auto-deploy.md#status-of-a-merged-mr-with-respect-to-monthly-releases`
      * When is the next Release? Check it on the 'Release Information' dashboard: https://dashboards.gitlab.net/d/delivery-release_info/delivery3a-release-information?orgId=1"

Pipeline creation

With MONTHLY_RELEASE_PIPELINE=true With MONTHLY_RELEASE_PIPELINE='initial_rc'
image.png image.png
Pipeline Pipeline

Configuration testing

This was to test the configuration of the pipeline (the job order).

Step Screenshot

Initialized as a manual pipeline

  • SLACK_TEST = true
  • MONTHLY_RELEASE_PIPELINE = initial_rc

We did not set TEST to true since we want to also test the Slack notification when the pipeline starts. Other jobs will only output an echo.

image.png

After monthly_release:initial_rc:start is manually triggered

image.png

Slack notification (Link)

image.png

After monthly_release:initial_rc:start is completed successfully, the

monthly_release_initial_rc:tag started and then later the remaining 4 jobs.

  • monthly_release_initial_rc:verify_ce
  • monthly_release_initial_rc:verify_rc_pipeline
  • monthly_release_initial_rc:verify_pre_deployment
  • monthly_release_initial_rc:update_branch_permissions

image.png

Pipeline

Content

  • Add spec for initial_rc:start rake task
  • Update the monthly release template to have the monthly_release_initial_rc:start trigger as a separate step from the final RC tagging
  • Add monthly:initial_rc:start rake task
  • Update the monthly release issue template to include trigger for the monthly_release_initial_rc:start job
  • Add stage and jobs for monthly_release_initial_rc steps

Author Check-list

  • Has documentation been updated?
Edited by Mawreen Dela Cruz

Merge request reports

Loading