Release 13.7.0-rc3
Preparation
- Check that the following list of critical issues/MRs which are to be included in
13.7.0-rc3
have merged into Master.-
gitlab-org/gitlab!48632 (merged) - import pull request reviews (e.g. "approved by") -
gitlab-org/gitlab!48561 (merged) - import pull request "merged by" -
gitlab-org/gitlab!48512 (merged) - adds logs to make debugging github importing easier -
gitlab-org/gitaly!2853 (merged) -
Double check that the above covers everything expected in this RC
-
Packaging
-
Tag 13.7.0-rc3
:# In Slack: /chatops run release tag 13.7.0-rc3
-
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
-
Deploy to pre -
Check GitLab.com is running on the pre environment -
Make sure QA tests pass on Pre
Release
-
Publish the packages via ChatOps: # In Slack: /chatops run publish 13.7.0-rc3
-
Verify that packages appear on packages.gitlab.com
-
Verify that Docker images appear on hub.docker.com
: EE / CE
Post release - don't perform this step without Yorick around
-
Remove the 13-7-stable stable branches. This is necessary for the next RC starts off at the right commit
To wipe the stable branches, download this script to wipe.rb
:
wipe.rb
# frozen_string_literal: true
# rubocop: disable all
require 'gitlab'
com = Gitlab::Client.new(
private_token: ENV.fetch('COM_TOKEN'),
endpoint: 'https://gitlab.com/api/v4'
)
dev = Gitlab::Client.new(
private_token: ENV.fetch('DEV_TOKEN'),
endpoint: 'https://dev.gitlab.org/api/v4'
)
BRANCHES = %w[13-7-stable 13-7-stable-ee]
com_projects = %w[
gitlab-org/gitlab
gitlab-org/gitlab-foss
gitlab-org/charts/gitlab
gitlab-org/omnibus-gitlab
gitlab-org/build/CNG
gitlab-org/gitaly
]
security_projects = %w[
gitlab-org/security/gitlab
gitlab-org/security/gitlab-foss
gitlab-org/security/charts/gitlab
gitlab-org/security/omnibus-gitlab
gitlab-org/security/charts/components/images
gitlab-org/security/gitaly
]
dev_projects = %w[
gitlab/gitlab-ee
gitlab/gitlabhq
gitlab/charts/gitlab
gitlab/omnibus-gitlab
gitlab/charts/components/images
gitlab/gitaly
]
def wipe_branches(projects, client)
projects.each do |project|
BRANCHES.each do |branch_name|
branch =
begin
client.branch(project, branch_name)
rescue Gitlab::Error::NotFound
next
end
deleted =
begin
client.delete_branch(project, branch_name)
'🗑️ Removed'
rescue StandardError => ex
"⚠️ Failed to remove: #{ex.message}"
end
puts "#{project.ljust(50, ' ')} #{branch.name.ljust(20, ' ')} #{branch.commit.id[0..5].ljust(10, ' ')} #{deleted}"
end
end
end
puts "⚠️ The following branches will be removed: #{BRANCHES.join(', ')}"
print "Type #{BRANCHES.length} and press Enter to continue: "
if STDIN.gets.strip.to_i != BRANCHES.length
abort 'The confirmation is incorrect'
end
wipe_branches(com_projects, com)
puts
wipe_branches(security_projects, com)
puts
wipe_branches(dev_projects, dev)
Then run it as follows:
gem install gitlab
env DEV_TOKEN='hunter2' COM_TOKEN='hunter2' ruby wipe.rb
The variable DEV_TOKEN
should be set to the value of the Release Tools CI variable RELEASE_BOT_DEV_TOKEN
, while COM_TOKEN
should be set to the value of RELEASE_BOT_PRODUCTION_TOKEN
. You can find the current values for these variables here in the "Variables" section.
Edited by Amy Phillips