Early branch: Test the release candidate automation on 18.3

Context

gitlab-com/gl-infra/software-delivery&1 (closed) proposes to move the active stable branch generation one week earlier in the release schedule to allow for thorough testing and timely backports. This will increase the quality, safety, and reliability of the monthly release while enabling a better developer experience and confidence.

The new workflow will be:

  • 2nd Wednesday of the month: RC and Stable branch creation (after the patch release is out)
  • Up to 3rd Tuesday of the month: Bug fixes are backported to the ongoing stable branch (see
  • 3rd Tuesday of the month (Late EMEA or early AMER): Final RC is created
  • 3rd Wednesday of the month Tag the final version
  • 3rd Thursday of the month Release

Automation has been implemented to tag the initial and final release candidates. This automation was thoroughly tested on #21327 (closed)

Test the release candidate automation on 18.3

The release candidate automation should be retested on 18.3 to:

  • Gather feedback from release managers
  • Review the release candidate automation behavior. Several follow-up issues were created after #21327 (closed).

Requirements

Initial release candidate (to be performed on 2025-08-19)

Job execution

  • Start the monthly_release_initial_rc:start job
  • Ensure the monthly_release_initial_rc:tag is executed after the start job
  • After the tag job completed:
    • Review the verify_ce job is automatically triggered
    • Review the update_branch_permissions job is automatically triggered
    • Review the release_environment job is automatically triggered
  • 120 minutes, after the tag job completed:
    • Review the verify_rc_pipeline is automatically triggered
    • Review the verify_pre_deployment is automatically triggered

monthly_release_initial_rc:start job

  • Ensure a notification is sent to the #f_upcoming_release channel

monthly_release_initial_rc:tag

monthly_release_initial_rc:verify_ce

  • Ensure the monthly_release_initial_rc:verify_ce job is successfully executed: https://ops.gitlab.net/gitlab-org/release/tools/-/jobs/19306141
  • Verify that a Slack notification was sent
  • Verify that the CE stable branch contains the right commits
    • There should be at least two commits: the last commit from the previous stable branch (usually a version update), and the sync commit created by the merge train.
    • The sync commit will have the message "Add latest changes from gitlab-org/gitlab@18-3-stable-ee"

monthly_release_initial_rc:verify_rc_pipeline

monthly_release_initial_rc:verify_pre_deployment

  • Ensure the monthly_release_initial_rc:verify_pre_deployment is successfully executed
  • Ensure it waits for the pre deployment pipeline
  • Verify that a Slack notification was sent
  • Verify that the RC has been deployed to the pre environment
    • Deployment to pre will start automatically. It can take 2 hours to start once the RC is tagged. A notification will be sent to the #announcements channel in Slack when it starts.

monthly_release_initial_rc:update_branch_permissions

monthly_release_initial_rc:release_environment

  • Ensure the monthly_release_initial_rc:release_environment is successfully executed
  • Verify that a Slack notification was sent
  • Review whether the release environment is automatically triggered

monthly_release_initial_rc:update_release_status

  • Ensure the monthly_release_initial_rc:update_release_status is successfully executed
  • Verify that a Slack notification was sent
  • Review the dashboard reflects the closed status for the monthly section.

Clean-up

This is not needed if the next release candidate can be created

Final release candidate (to be performed on 2025-08-19)

Job execution

  • Start the monthly_release:final_rc:start job
  • Ensure the monthly_release_final_rc:verify_stable_branch is executed after the start job
  • Ensure the monthly_release_final_rc:update_branch_permission is executed after the start job
  • Ensure the monthly_release_final_rc:tag is executed after the verify_stable_branch and update_branch_permissions jobs
  • After the tag job completed, review the monthly_release_final_rc:verify_ce job is automatically triggered
  • 120 minutes, after the tag job is completed:
    • Review the verify_rc_pipeline is automatically triggered
    • Review the verify_pre_deployment is automatically triggered

monthly_release:final_rc:start job

  • Ensure a notification is sent to the #f_upcoming_release channel

monthly_release_final_rc:verify_stable_branch

monthly_release_final_rc:update_branch_permission

monthly_release_final_rc:tag

monthly_release_final_rc:verify_ce

  • Ensure the monthly_release_final_rc:verify_ce job executes successfully
  • Verify that the CE stable branch contains the right commits
    • There should be at least two commits: the last commit from the previous stable branch (usually a version update), and the sync commit created by the merge train.
    • The sync commit will have the message "Add latest changes from gitlab-org/gitlab@18-3-stable-ee"

monthly_release_final_rc:verify_rc_pipeline

  • Ensure the monthly_release_initial_rc:verify_rc_pipeline is successfully executed
  • Verify that pipelines are green /chatops run release status 18.3.0-rc43

monthly_release_final_rc:verify_pre_deployment

  • Ensure the monthly_release_final_rc:verify_pre_deployment is successfully executed
  • Ensure it waits for the pre deployment pipeline
  • Verify that the RC has been deployed to the pre environment
    • Deployment to pre will start automatically. It can take 2 hours to start once the RC is tagged. A notification will be sent to the #announcements channel in Slack when it starts.

Clean-up

  • [-] Remove the 18-3-stable-ee branch permission => Decided to leave it to see how it plays with the finalize:update_protected_branches job
  • Disable the early_branch_creation

Follow-ups

Edited by Mayra Cabrera