GitLab Runner 12.5 release checklist
Previous release checklist issue: #4756 (closed)
GitLab Runner Release manager: @steveazz
Release blog post MR: gitlab-com/www-gitlab-com!34283 (merged)
Runner entries need to be added to blog post until: 2019-11-15
First working day after 7th - v12.5.0-rc1 release
-
check if Pipeline for masteris passing:-
add all required fixes to make masterPipeline passing
-
-
git checkout master && git pullin your local working copy! -
prepare CHANGELOG entries ./scripts/prepare-changelog-entries.rbCopy the lines to the beginning of
CHANGELOG.mdfile and add a proper header:v12.5.0-rc1 (TODAY_DATE_HERE) -
add v12.5.0-rc1 CHANGELOG entries and commit git add CHANGELOG.md && \ git commit -m "Update CHANGELOG for v12.5.0-rc1" -S -
tag and push v12.5.0-rc1: git tag -s v12.5.0-rc1 -m "Version v12.5.0-rc1" && \ git push origin v12.5.0-rc1 -
create and push 12-5-stablebranch:git checkout -b 12-5-stable && \ git push -u origin 12-5-stable -
checkout to master, updateVERSIONfile to12.6.0and pushmaster:git checkout master; echo -n "12.6.0" > VERSION && \ git add VERSION && \ git commit -m "Bump version to 12.6.0" -S && \ git push -
wait for Pipeline for v12.5.0-rc1to pass-
add all required fixes to make v12.5.0-rc1passing
-
-
update runner helm chart to use v12.5.0-rc1version-
check if Pipeline for masteris passing:-
add all required fixes to make masterPipeline passing
-
-
go to your local working copy of https://gitlab.com/gitlab-org/charts/gitlab-runner -
git checkout master && git pullin your local working copy! -
prepare CHANGELOG entries ./scripts/prepare-changelog-entries.rbCopy the lines to the beginning of
CHANGELOG.mdfile and add a proper header:## v0.11.0-rc1 (TODAY_DATE_HERE) -
add v0.11.0-rc1 CHANGELOG entries and commit git add CHANGELOG.md && \ git commit -m "Update CHANGELOG for v0.11.0-rc1" -S -
set Helm Chart to use v12.5.0-rc1version of Runnersed -i".bak" "s/^appVersion: .*/appVersion: 12.5.0-rc1/" Chart.yaml && \ rm Chart.yaml.bak && \ git add Chart.yaml && \ git commit -m "Bump used Runner version to 12.5.0-rc1" -S -
bump version of the Helm Chart to 0.11.0-rc1sed -i".bak" "s/^version: .*/version: 0.11.0-rc1/" Chart.yaml && \ rm Chart.yaml.bak && \ git add Chart.yaml && \ git commit -m "Bump version to 0.11.0-rc1" -S -
tag and push v0.11.0-rc1: git tag -s v0.11.0-rc1 -m "Version v0.11.0-rc1" && \ git push origin v0.11.0-rc1 -
create and push 0-11-0-stablebranch:git checkout -b 0-11-0-stable && \ git push -u origin 0-11-0-stable -
checkout to master, bump version of the Helm Chart to0.12.0-beta, set back thebleedingversion of Runner and pushmaster:git checkout master && \ sed -i".bak" "s/^version: .*/version: 0.12.0-beta/" Chart.yaml && \ rm Chart.yaml.bak && \ sed -i".bak" "s/^appVersion: .*/appVersion: bleeding/" Chart.yaml && \ rm Chart.yaml.bak && \ git add Chart.yaml && \ git commit -m "Bump version to 0.12.0-beta" -S && \ git push
-
-
deploy v12.5.0-rc1 Detailed description of Runners deployment for GitLab.com CI fleet can be found in the runbook.
-
at RC1 release day: to prmXrunners-
go to your local chef-repoworking directory and execute:knife ssh -afqdn 'roles:gitlab-runner-prm' -- sudo systemctl stop chef-client knife ssh -afqdn 'roles:gitlab-runner-prm' -- sudo systemctl is-active chef-client git checkout master && git pull git checkout -b update-prm-runners-to-12-5-0-rc1 -
update version $EDITOR roles/gitlab-runner-prm.jsonIn the role definition prepare the
override_attributesentry. It should be placed at the top of the file:"override_attributes": { "cookbook-gitlab-runner": { "gitlab-runner": { "repository": "unstable", "version": "12.5.0-rc1" } } }, -
git add roles/gitlab-runner-prm.json && git commit -m "Update prmX runners to v12.5.0-rc1" -
git push -u origin update-prm-runners-to-12-5-0-rc1 -
after pushing the branch, create and manage to merge the chef-repoMR -
check the apply to stagingjob if it tries to update only the changed role -
start the manual apply to prodjob -
after the job is finished execute: knife ssh -C 1 -afqdn 'roles:gitlab-runner-prm' -- sudo /root/runner_upgrade.sh & time wait
-
-
next day (if no problems): to rest of the runners -
go to your local chef-repoworking directory and execute:knife ssh -afqdn 'roles:gitlab-runner-gsrm OR roles:gitlab-runner-srm' -- sudo systemctl stop chef-client knife ssh -afqdn 'roles:gitlab-runner-gsrm OR roles:gitlab-runner-srm' -- sudo systemctl is-active chef-client git checkout master && git pull git checkout -b update-runners-to-12-5-0-rc1 -
update version $EDITOR roles/gitlab-runner-base.jsonIn the role definition prepare the
gitlab-runnerentry:"cookbook-gitlab-runner": { "gitlab-runner": { "repository": "unstable", "version": "12.5.0-rc1" } } -
remove overrides from prmXrunners$EDITOR roles/gitlab-runner-prm.json -
git add roles/gitlab-runner-prm.json roles/gitlab-runner-base.json && git commit -m "Update runners to v12.5.0-rc1" -
git push -u origin update-runners-to-12-5-0-rc1 -
after pushing the branch, create and manage to merge the chef-repoMR -
check the apply to stagingjob if it tries to update only the changed role -
start the manual apply to prodjob -
after the job is finished execute (we're not touching prmX- they are already updated):knife ssh -C1 -afqdn 'roles:gitlab-runner-builder' -- sudo /root/runner_upgrade.sh & knife ssh -C1 -afqdn 'roles:gitlab-runner-gsrm' -- sudo /root/runner_upgrade.sh & knife ssh -C1 -afqdn 'roles:gitlab-runner-srm' -- sudo /root/runner_upgrade.sh & time wait
-
-
New features window is closed - things not merged into master up to
this day, will be released with next release.
7 working days before 22th (2019-11-15)
-
prepare GitLab Runner entries for the release blog post. Items can be generated with ./scripts/changelog2releasepost | less(executed in Runner's local working copy directory) -
add release entry: Copy template
data/release_posts/unreleased/samples/seconday.ymlfeatures: secondary: - name: "GitLab Runner 12.5" available_in: [core, starter, premium, ultimate] documentation_link: 'https://docs.gitlab.com/runner' documentation_text: "Read through the documentation of GitLab Runner" stage: verify description: | We're also releasing GitLab Runner 12.5 today! GitLab Runner is the open source project that is used to run your CI/CD jobs and send the results back to GitLab. #### Changes include: * [__Title__](https://gitlab.com/gitlab-org/gitlab-runner/merge_requests/__ID__) The list of all changes can be found in GitLab Runner's [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-runner/blob/v12.5.0/CHANGELOG.md).
Pick into stable branch for RC2 phase
At this moment, until the next RC creation, we're in the pick into stable phase. The release manager should periodically review the list of merged MRs with a pick into X.Y label:
- GitLab Runner ~"Pick into 12.5" Merge Requests
- GitLab Runner Helm Chart ~"Pick into 0.11" Merge Requests
GitLab Runner MRs:
GitLab Runner's Helm Chart MRs:
For each such Merge Request the release manager should (reveal for details)
-
Find the merge commit for the Merge Request
-
Copy the commit reference
-
Checkout to the branch:
-
git checkout 12-5-stable && git pullfor GitLab Runner, or -
git checkout 0-11-0-stable && git pullfor GitLab Runner's Helm Chart
-
-
Pick the merge commit with:
git cherry-pick -m 1 [merge commit SHA here] -
Remove the
Pick into X.Ylabel from the Merge Request and leave a note that it was picked:
-
for GitLab Runner use this message:
/unlabel ~"Pick into 12.5" The MR was picked into `12-5-stable` branch and will be released with `v12.5.0-rc2` -
for GitLab Runner's Helm Chart use this message:
/unlabel ~"Pick into 0.11" The MR was picked into `0-11-0-stable` branch and will be released with `v0.11.0-rc2`
To prepare the `Pick into ...` MRs list execute:
rrhelper \
list-pick-mrs-for-rc \
--non-interactive \
--do-not-create \
--major 12 \
--minor 5 \
--helm-chart-major 0 \
--helm-chart-minor 11 \
4867 2
RC2 (if needed)
If any commit was picked into the stable branch since RC1 was released, RC2 version must be released no later than at 18th day of the month or immediately if changes were picked after 18th.
If you need to create RC2 version, then please execute this and follow the created checklist for RC2:
rrhelper \
create-next-rc-checklist \
--non-interactive \
--do-not-create \
--major 12 \
--minor 5 \
--helm-chart-major 0 \
--helm-chart-minor 11 \
4867 2
At 20th - the release day of GitLab Runner
-
check if Pipeline for 12-5-stableis passing:-
add all required fixes to make 12-5-stablePipeline passing
-
-
git checkout 12-5-stable && git pullin your local working copy! -
merge all RCx CHANGELOG entries into release entry Put a proper header at the beginning:
v12.5.0 (TODAY_DATE_HERE) -
add v12.5.0 CHANGELOG entries and commit git add CHANGELOG.md && \ git commit -m "Update CHANGELOG for v12.5.0" -S -
tag and push v12.5.0 and 12-5-stable: git tag -s v12.5.0 -m "Version v12.5.0" && \ git push origin v12.5.0 12-5-stable -
checkout to masterand merge12-5-stableintomaster(only this one time, to update CHANGELOG.md and make the tag available for ./scripts/prepare-changelog-entries.rb in next stable release), pushmaster:git checkout master && \ git pull && \ git merge --no-ff 12-5-stable # check that the only changes are in CHANGELOG.md git push -
update runner helm chart to use v12.5.0version-
check if Pipeline for 0-11-0-stableis passing:-
add all required fixes to make 0-11-0-stablePipeline passing
-
-
go to your local working copy of https://gitlab.com/gitlab-org/charts/gitlab-runner -
git checkout 0-11-0-stable && git pullin your local working copy! -
merge all RCx CHANGELOG entries into release entry Put a proper header at the begining:
## v0.11.0 (TODAY_DATE_HERE) -
add v0.11.0 CHANGELOG entries and commit git add CHANGELOG.md && \ git commit -m "Update CHANGELOG for v0.11.0" -S -
update Runner version sed -i".bak" "s/^appVersion: .*/appVersion: 12.5.0/" Chart.yaml && \ rm Chart.yaml.bak && \ git add Chart.yaml && \ git commit -m "Bump used Runner version to 12.5.0" -S -
bump version of the Helm Chart to 0.11.0sed -i".bak" "s/^version: .*/version: 0.11.0/" Chart.yaml && \ rm Chart.yaml.bak && \ git add Chart.yaml && \ git commit -m "Bump version to 0.11.0" -S -
tag and push v0.11.0 and 0-11-0-stable: git tag -s v0.11.0 -m "Version v0.11.0" && \ git push origin v0.11.0 0-11-0-stable -
checkout to masterand merge0-11-0-stableintomaster(only this one time, to update CHANGELOG.md and make the tag available for./scripts/prepare-changelog-entries.rbin next stable release), pushmaster:git checkout master && \ git pull && \ git merge --no-ff 0-11-0-stable # check that the only changes are in CHANGELOG.md git push
-
-
update Runner's chart version used by GitLab: gitlab!20461 (merged) -
create branch rrhelper \ --dry-run \ create-branch \ gitlab-org/gitlab \ update-gitlab-runner-helm-chart-to-0-11-0 -
create Merge Request rrhelper \ --dry-run \ create-merge-request \ --release-checklist-issue 4867 \ --replace-link-in-release-checklist-issue link_to_MR__gce_rhcvu \ --milestone 12.6 \ --runner-version 12.5.0 \ --helm-chart-version 0.11.0 \ gitlab-org/gitlab \ update-gitlab-runner-helm-chart-to-0-11-0 \ master \ runner-helm-chart-upgrade-in-gitlab \ "Update GitLab Runner Helm Chart to 0.11.0/12.5.0" -
Adjust and apply the patch to the GitLab CE sources See the patch draft
-
Adjust the following patch (set proper current version; set the Merge Request ID in the CHANGELOG entry file) and save it at /tmp/patch.gitlab.cat > /tmp/patch.gitlab << EOF diff --git a/app/models/clusters/applications/runner.rb b/app/models/clusters/applications/runner.rb index 0c0247da1fb..f17da0bb7b1 100644 --- a/app/models/clusters/applications/runner.rb +++ b/app/models/clusters/applications/runner.rb @@ -3,7 +3,7 @@ module Clusters module Applications class Runner < ApplicationRecord - VERSION = '0.10.0' + VERSION = '0.11.0' self.table_name = 'clusters_applications_runners' diff --git a/changelogs/unreleased/update-gitlab-runner-helm-chart-to-0-11-0.yml b/changelogs/unreleased/update-gitlab-runner-helm-chart-to-0-11-0.yml new file mode 100644 index 00000000000..7d92929221f --- /dev/null +++ b/changelogs/unreleased/update-gitlab-runner-helm-chart-to-0-11-0.yml @@ -0,0 +1,5 @@ +--- +title: Update GitLab Runner Helm Chart to 0.11.0 +merge_request: XXX +author: +type: other EOF -
Go to your local GitLab CE working directory: git checkout master && \ git pull && \ git checkout update-gitlab-runner-helm-chart-to-0-11-0 && \ git apply /tmp/patch.gitlab && \ git add . && \ git commit -m "Update GitLab Runner Helm Chart to 0.11.0" -
Push changes git push -u origin update-gitlab-runner-helm-chart-to-0-11-0
-
-
-
update Runner's chart version used by GitLab chart: gitlab-org/charts/gitlab!1046 (merged) -
create branch rrhelper \ --dry-run \ create-branch \ gitlab-org/charts/gitlab \ update-gitlab-runner-helm-chart-to-0-11-0 -
create Merge Request rrhelper \ --dry-run \ create-merge-request \ --release-checklist-issue 4867 \ --replace-link-in-release-checklist-issue link_to_MR__ghc_rhcvu \ --milestone 12.5 \ --runner-version 12.5.0 \ --helm-chart-version 0.11.0 \ gitlab-org/charts/gitlab \ update-gitlab-runner-helm-chart-to-0-11-0 \ master \ runner-helm-chart-upgrade-in-gitlab-helm-chart \ "Update GitLab Runner Helm Chart to 0.11.0/12.5.0" -
Adjust and apply the patch to the GitLab Helm Chart sources See the patch draft
-
Adjust the following patch (set proper current version; set the Merge Request ID in the CHANGELOG entry file) and save it at /tmp/patch.gitlab-helm-chart.cat > /tmp/patch.gitlab-helm-chart << EOF diff --git a/changelogs/unreleased/update-gitlab-runner-to-0-11-0.yml b/changelogs/unreleased/update-gitlab-runner-to-0-11-0.yml new file mode 100644 index 00000000..5fd73668 --- /dev/null +++ b/changelogs/unreleased/update-gitlab-runner-to-0-11-0.yml @@ -0,0 +1,5 @@ +--- +title: Update gitlab-runner to 0.11.0/12.5.0 +merge_request: XXX +author: +type: other diff --git a/requirements.yaml b/requirements.yaml index 82a0192a..c6293a8d 100644 --- a/requirements.yaml +++ b/requirements.yaml @@ -13,6 +13,6 @@ dependencies: repository: https://kubernetes-charts.storage.googleapis.com/ condition: postgresql.install - name: gitlab-runner - version: 0.10.0 + version: 0.11.0 repository: https://charts.gitlab.io/ condition: gitlab-runner.install EOF -
Go to your local GitLab Helm Chart working directory: git checkout master && \ git pull && \ git checkout update-gitlab-runner-helm-chart-to-0-11-0 && \ git apply /tmp/patch.gitlab-helm-chart && \ git add . && \ git commit -m "Update GitLab Runner Helm Chart to 0.11.0" -
Push changes git push -u origin update-gitlab-runner-helm-chart-to-0-11-0
-
-
At 22nd - the official day of GitLab release
-
wait for Pipeline for v12.5.0to pass-
add all required fixes to make v12.5.0passing
-
-
deploy v12.5.0 Detailed description of Runners deployment for GitLab.com CI fleet can be found in the runbook.
-
at release day: to prmXrunners-
go to your local chef-repoworking directory and execute:knife ssh -afqdn 'roles:gitlab-runner-prm' -- sudo systemctl stop chef-client knife ssh -afqdn 'roles:gitlab-runner-prm' -- sudo systemctl is-active chef-client git checkout master && git pull git checkout -b update-prm-runners-to-12-5-0 -
update version $EDITOR roles/gitlab-runner-prm.jsonIn the role definition prepare the
override_attributesentry. It should be placed at the top of the file:"override_attributes": { "cookbook-gitlab-runner": { "gitlab-runner": { "repository": "gitlab-runner", "version": "12.5.0" } } }, -
git add roles/gitlab-runner-prm.json && git commit -m "Update prmX runners to v12.5.0" -
git push -u origin update-prm-runners-to-12-5-0 -
after pushing the branch, create and manage to merge the chef-repoMR -
check the apply to stagingjob if it tries to update only the changed role -
start the manual apply to prodjob -
after the job is finished execute: knife ssh -C 1 -afqdn 'roles:gitlab-runner-prm' -- sudo /root/runner_upgrade.sh & time wait
-
-
next day (if no problems): to rest of the runners -
go to your local chef-repoworking directory and execute:knife ssh -afqdn 'roles:gitlab-runner-gsrm OR roles:gitlab-runner-srm' -- sudo systemctl stop chef-client knife ssh -afqdn 'roles:gitlab-runner-gsrm OR roles:gitlab-runner-srm' -- sudo systemctl is-active chef-client git checkout master && git pull git checkout -b update-runners-to-12-5-0 -
update version $EDITOR roles/gitlab-runner-base.jsonIn the role definition prepare the
gitlab-runnerentry:"cookbook-gitlab-runner": { "gitlab-runner": { "repository": "gitlab-runner", "version": "12.5.0" } } -
remove overrides from prmXrunners$EDITOR roles/gitlab-runner-prm.json -
git add roles/gitlab-runner-prm.json roles/gitlab-runner-base.json && git commit -m "Update runners to v12.5.0" -
git push -u origin update-runners-to-12-5-0 -
after pushing the branch, create and manage to merge the chef-repoMR -
check the apply to stagingjob if it tries to update only the changed role -
start the manual apply to prodjob -
after the job is finished execute (we're not touching prmX- they are already updated):knife ssh -C1 -afqdn 'roles:gitlab-runner-builder' -- sudo /root/runner_upgrade.sh & knife ssh -C1 -afqdn 'roles:gitlab-runner-gsrm' -- sudo /root/runner_upgrade.sh & knife ssh -C1 -afqdn 'roles:gitlab-runner-srm' -- sudo /root/runner_upgrade.sh & time wait
-
-
Before next 7th
-
chose a release manager -
create a Pick into 0.12label in Helm Chart's project -
@release manager: create the new Release Checklist issue: [link to the ISSUE]rrhelper \ create-release-checklist \ --do-not-create \ --non-interactive \ --previous-release-checklist-issue 4867Ensure, that the above command handles:
-
adding link to the release blog post's MR -
setting deadline for add entries to release blog post Please check what deadline is set for
General Contributionssection in the release blog post Merge Request. It should be 6th working day before the 22nd. In that case we can set our deadline for 7th working day before 22nd, however if the deadline from the MR is earlier, then use the earliest one. -
updating the .Majorand.Minorto a specific release version -
updating the .HelmChartMajorand.HelmChartMinorto a specific release version
-