Release 11.4.0-rc1
Preparation
-
Create preparation MRs for this version and add the links below: # In the release-tools project: bundle exec rake "patch_merge_request[11.4.0-rc1]"
-
Cherry-pick changes into preparation MRs following their instructions -
Ensure the CE preparation MR has been fully merged into the EE counterpart -
Merge the preparation branches -
For omnibus-gitlab
cherry-pick remaining merge requests directly into CE stable branch. Then, merge the CE Omnibus stable branch into EE. -
Check the following list of critical issues/MRs which are to be included in
11.4.0-rc1
. Ensure each has made both CE and EE:-
REFERENCE_TO_MR_TO_PICK
-
-
Ensure builds are green on Omnibus CE stable branch and Omnibus EE stable branch
Packaging
-
Sync stable branches for CE, EE, and Omnibus to dev
-
Check for any problematic migrations in EE, and paste the diff in a snippet: git diff -M --diff-filter=RA v<PREVIOUS_TAG>-ee..11-4-stable-ee -- db/migrate db/post_migrate ee/db/migrate ee/db/post_migrate
=> -
Tag the 11.4.0-rc1
version using therelease
command:# In Slack: /chatops run tag 11.4.0-rc1
-
Check progress of EE packages build and CE packages build - This might take a while (around 80 min).
- We only need the EE packages to finish to continue with next steps.
Deploy
Deploys to production require confirmation from a production team member before
proceeding. Use !oncall prod
in the #production
channel to find who's on
call and ping someone. Deploys to staging or canary can be done at will, just
mention it in the #production
channel.
-
Warm up the packages on takeoff by running: # In the takeoff project: bin/takeoff-deploy -v 11.4.0-rc1.ee.0 -w
staging.gitlab.com
-
Notify #production that you're about to deploy on staging -
On video call, deploy 11.4.0-rc1
to staging.gitlab.com# In the takeoff project: bin/takeoff-deploy -e gstg -v 11.4.0-rc1.ee.0
-
Comment with the output of the migrations from the takeoff script in this issue
QA
-
Create a "QA Task" issue using the ChatOps command: # In Slack, replacing LAST_DEPLOYED_VERSION with the appropriate value: /chatops run qa_issue vLAST_DEPLOYED_VERSION..v11.4.0-rc1
-
Wait for the QA Task deadline to pass
canary VMs on gitlab.com
-
Notify #production that you're about to deploy on canary -
On video call, deploy 11.4.0-rc1
to the canary VMs on gitlab.com# In the takeoff project: bin/takeoff-deploy -e gprd-cny -v 11.4.0-rc1.ee.0
-
Confirm that there are no errors on canary
gitlab.com (production)
-
Get confirmation from a production team member to deploy production. If someone besides the oncall confirms, @mention
the oncall so they are aware. -
Confirm there are no critical alerts on gitlab.com on the alerting dashboard -
On video call, deploy 11.4.0-rc1
to GitLab.com# In the takeoff project: bin/takeoff-deploy -e gprd -v 11.4.0-rc1.ee.0
Release
-
Publish the packages via ChatOps: # In Slack: /chatops run publish 11.4.0-rc1
-
Verify that packages appear on packages.gitlab.com
-
Post a tweet about the 11.4.0-rc1
release in the#releases
channel:!tweet "GitLab 11.4.0-rc1 is available: https://packages.gitlab.com/gitlab/unstable This is a release candidate, we'll release 11.4 on the 22nd of this month."