Skip to content

GitLab Runner 11.7 release checklist

GitLab Runner 11.7 release checklist

GitLab Runner Release manager: @tmaczukin

Release blog post MR: gitlab-com/www-gitlab-com!17766 (merged)

Runner entries need to be added to blog post until: 2019-01-11

Technical description of the release, with commands examples, can be found at: https://gitlab.com/gitlab-org/gitlab-runner/blob/master/docs/release_process/how_to_release_runner.md

Before 7th

  • chose a release manager

  • link release blog post's MR

  • set deadline for add entries to release blog post

    Please check what deadline is set for `General Contributions` section 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 eraliest one.
  • Update the .Major and .Minor to a specific release version

  • Update the .HelmChartMajor, .HelmChartMinor and .HelmChartPatch to a specific release version

First working day after 7th - v11.7.0-rc1 release

  • check if Pipeline for master is passing: pipeline status

    • add all required fixes to make master Pipeline passing
  • git checkout master && git pull in your local working copy!

  • prepare CHANGELOG entries

    ./scripts/prepare-changelog-entries.rb

    Copy the lines to the beginning of CHANGELOG.md file and add a proper header:

    v11.7.0-rc1 (TODAY_DATE_HERE)
  • add v11.7.0-rc1 CHANGELOG entries and commit

    git add CHANGELOG.md; git commit -m "Update CHANGELOG for v11.7.0-rc1" -S
  • tag and push v11.7.0-rc1:

    git tag -s v11.7.0-rc1 -m "Version v11.7.0-rc1" && git push origin v11.7.0-rc1
  • create and push 11-7-stable branch:

    git checkout -b 11-7-stable; git push -u origin 11-7-stable
  • checkout to master, update VERSION file to 11.8.0 and push master:

    git checkout master; echo -n "11.8.0" > VERSION; git add VERSION; git commit -m "Bump version to 11.8.0" -S && git push
  • wait for Pipeline for v11.7.0-rc1 to pass pipeline status

    • add all required fixes to make v11.7.0-rc1 passing
  • deploy v11.7.0-rc1 (https://gitlab.com/gitlab-com/runbooks/blob/master/howto/update-gitlab-runner-on-managers.md)

  • update runner helm chart to use v11.7.0-rc1 version

    • check if Pipeline for master is passing: pipeline status

      • add all required fixes to make master Pipeline passing
    • go to your local working copy of https://gitlab.com/charts/gitlab-runner

    • git checkout master && git pull in your local working copy!

    • set Helm Chart to use v11.7.0-rc1 version of Runner

      • create new branch, update Runner version and push the branch:

        git checkout -b update-runner-to-11-7-0-rc1 && sed -i "s/^appVersion: .*/appVersion: 11.7.0-rc1/" Chart.yaml && git add Chart.yaml && git commit -m "Bump used Runner version to 11.7.0-rc1" -S && git push -u origin update-runner-to-11-7-0-rc1
      • create Merge Request pointing master: charts/gitlab-runner!78

      • manage to merge the MR

    • check if Pipeline for master is passing: pipeline status

      • add all required fixes to make master Pipeline passing
    • git checkout master && git pull in your local working copy!

    • prepare CHANGELOG entries

      ./scripts/prepare-changelog-entries.rb

      Copy the lines to the beginning of CHANGELOG.md file and add a proper header:

      ## v0.1.45-rc1 (TODAY_DATE_HERE)
    • add v0.1.45-rc1 CHANGELOG entries and commit

      git add CHANGELOG.md && git commit -m "Update CHANGELOG for v0.1.45-rc1" -S
    • bump version of the Helm Chart to 0.1.45-rc1

      sed -i "s/^version: .*/version: 0.1.45-rc1/" Chart.yaml && git add Chart.yaml && git commit -m "Bump version to 0.1.45-rc1" -S && git push
    • tag and push v0.1.45-rc1:

      git tag -s v0.1.45-rc1 -m "Version v0.1.45-rc1" && git push origin v0.1.45-rc1
    • create and push 0-1-45-stable branch:

      git checkout -b 0-1-45-stable && git push -u origin 0-1-45-stable
    • checkout to master, bump version of the Helm Chart to 0.1.46-beta and push master:

      git checkout master; sed -i "s/^version: .*/version: 0.1.46-beta/" Chart.yaml && git add Chart.yaml && git commit -m "Bump version to 0.1.46-beta" -S && git push

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-01-11)

  • 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:

    Add description to the SECONDARY FEATURES list using following template:

    - name: GitLab Runner 11.7
      available_in: [core, starter, premium, ultimate]
      documentation_link: 'https://docs.gitlab.com/runner'
      documentation_text: "Read through the documentation of GitLab Runner"
      description: |
        We're also releasing GitLab Runner 11.7 today! GitLab Runner is the open source project
        that is used to run your CI/CD jobs and send the results back to GitLab.
    
        ##### Most interesting changes:
    
        * [Kill Web Terminal session when build is cancelled](https://gitlab.com/gitlab-org/gitlab-runner/merge_requests/1058)
        * [Fix path separator for CI_PROJECT_DIR in Windows](https://gitlab.com/gitlab-org/gitlab-runner/merge_requests/1128)
    
        List of all changes can be found in GitLab Runner's [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-runner/blob/v11.7.0/CHANGELOG.md).

At 20th - next RC release

At this day we should release an RC version, if there was no RC recently - especially if the only RC version was the RC1 released near 7th day of month.

Notice: If there was no new commits picked into 11-7-stable branch since previous RC, we can skip this step. There is no need in releasing and deploying an RC identical to the one that already exists.

  • check if Pipeline for 11-7-stable is passing: pipeline status

    • add all required fixes to make 11-7-stable Pipeline passing
  • git checkout 11-7-stable && git pull in your local working copy!

  • prepare CHANGELOG entries

    ./scripts/prepare-changelog-entries.rb

    Copy the lines to the beginning of CHANGELOG.md file and add a proper header:

    v11.7.0-rcZ (TODAY_DATE_HERE)
  • add v11.7.0-rcZ CHANGELOG entries and commit

    git add CHANGELOG.md; git commit -m "Update CHANGELOG for v11.7.0-rcZ" -S
  • tag and push v11.7.0-rcZ and 11-7-stable:

    git tag -s v11.7.0-rcZ -m "Version v11.7.0-rcZ" && git push origin v11.7.0-rcZ 11-7-stable
  • wait for Pipeline for v11.7.0-rcZ to pass pipeline status

    • add all required fixes to make v11.7.0-rcZ passing
  • deploy v11.7.0-rcZ (https://gitlab.com/gitlab-com/runbooks/blob/master/howto/update-gitlab-runner-on-managers.md)

  • update runner helm chart to use v11.7.0-rcZ version

    • check if Pipeline for 0-1-45-stable is passing: pipeline status

      • add all required fixes to make 0-1-45-stable Pipeline passing
    • go to your local working copy of https://gitlab.com/charts/gitlab-runner

    • git checkout 0-1-45-stable && git pull in your local working copy!

    • set Helm Chart to use v11.7.0-rcZ version of Runner

      • create new branch, update Runner version and push the branch:

        git checkout -b update-runner-to-11-7-0-rcZ && sed -i "s/^appVersion: .*/appVersion: 11.7.0-rcZ/" Chart.yaml && git add Chart.yaml && git commit -m "Bump used Runner version to 11.7.0-rcZ" -S && git push -u origin update-runner-to-11-7-0-rcZ
      • create Merge Request pointing 0-1-45-stable: [link to MR here]

      • manage to merge the MR

    • check if Pipeline for 0-1-45-stable is passing: pipeline status

      • add all required fixes to make 0-1-45-stable Pipeline passing
    • git checkout 0-1-45-stable && git pull in your local working copy!

    • prepare CHANGELOG entries

      ./scripts/prepare-changelog-entries.rb

      Copy the lines to the beginning of CHANGELOG.md file and add a proper header:

      ## v0.1.45-rcZ (TODAY_DATE_HERE)
    • add v0.1.45-rcZ CHANGELOG entries and commit

      git add CHANGELOG.md && git commit -m "Update CHANGELOG for v0.1.45-rcZ" -S
    • bump version of the Helm Chart to 0.1.45-rcZ

      sed -i "s/^version: .*/version: 0.1.45-rcZ/" Chart.yaml && git add Chart.yaml && git commit -m "Bump version to 0.1.45-rcZ" -S && git push
    • tag and push v0.1.45-rcZ and 0-1-45-stable:

      git tag -s v0.1.45-rcZ -m "Version v0.1.45-rcZ" && git push origin v0.1.45-rcZ 0-1-45-stable

At 22th - the release day

Before 12:00 UTC

  • check if Pipeline for 11-7-stable is passing: pipeline status

    • add all required fixes to make 11-7-stable Pipeline passing
  • git checkout 11-7-stable && git pull in your local working copy!

  • merge all RCx CHANGELOG entries into release entry

    Put a proper header at the begining:

    v11.7.0 (TODAY_DATE_HERE)
  • add v11.7.0 CHANGELOG entries and commit

    git add CHANGELOG.md && git commit -m "Update CHANGELOG for v11.7.0" -S
  • tag and push v11.7.0 and 11-7-stable:

    git tag -s v11.7.0 -m "Version v11.7.0" && git push origin v11.7.0 11-7-stable
  • checkout to master and merge 11-7-stable into master (only this one time, to update CHANGELOG.md and make the tag available for ./scripts/prepare-changelog-entries.rb in next stable release), push master:

    git checkout master; git merge --no-ff 11-7-stable
    # check that the only changes are in CHANGELOG.md
    git push
  • update runner helm chart to use v11.7.0 version

    • check if Pipeline for 0-1-45-stable is passing: pipeline status

      • add all required fixes to make 0-1-45-stable Pipeline passing
    • go to your local working copy of https://gitlab.com/charts/gitlab-runner

    • git checkout 0-1-45-stable && git pull in your local working copy!

    • set Helm Chart to use v11.7.0 version of Runner

      • create new branch, update Runner version and push the branch:

        git checkout -b update-runner-to-11-7-0 && sed -i "s/^appVersion: .*/appVersion: 11.7.0/" Chart.yaml && git add Chart.yaml && git commit -m "Bump used Runner version to 11.7.0" -S && git push -u origin update-runner-to-11-7-0
      • create Merge Request pointing 0-1-45-stable: charts/gitlab-runner!82

      • manage to merge the MR

    • check if Pipeline for 0-1-45-stable is passing: pipeline status

      • add all required fixes to make 0-1-45-stable Pipeline passing
    • git checkout 0-1-45-stable && git pull in your local working copy!

    • merge all RCx CHANGELOG entries into release entry

      Put a proper header at the begining:

      ## v0.1.45 (TODAY_DATE_HERE)
    • add v0.1.45 CHANGELOG entries and commit

      git add CHANGELOG.md && git commit -m "Update CHANGELOG for v0.1.45" -S
    • bump version of the Helm Chart to 0.1.45

      sed -i "s/^version: .*/version: 0.1.45/" Chart.yaml && git add Chart.yaml && git commit -m "Bump version to 0.1.45" -S && git push
    • tag and push v0.1.45 and 0-1-45-stable:

      git tag -s v0.1.45 -m "Version v0.1.45" && git push origin v0.1.45 0-1-45-stable
    • checkout to master and merge 0-1-45-stable into master (only this one time, to update CHANGELOG.md and make the tag available for ./scripts/prepare-changelog-entries.rb in next stable release), push master:

      git checkout master; git merge --no-ff 0-1-45-stable
      # check that the only changes are in CHANGELOG.md
      git push
    • update Runner's chart version used by GitLab: gitlab-org/gitlab-ce!24564

    • update Runner's chart version used by GitLab chart: charts/gitlab!654

Before 15:00 UTC

  • wait for Pipeline for v11.7.0 to pass pipeline status
    • add all required fixes to make v11.7.0 passing
  • deploy stable version to all production Runners

RC release template

There should be at least one RC version between RC1 and stable release. If there are any important changes merged into stable branch (like bug/security fixes) the RC should be prepared and deployed as soon as possible. For a less important changes (documentation, simple fixes of typos etc.) the RC can wait a little.

When deciding to release a new RC version, please update the checklist using the following template:

## At _day here_ - **v11.7.0-rcZ** release

- [ ] check if Pipeline for `11-7-stable` is passing: [![pipeline status](https://gitlab.com/gitlab-org/gitlab-runner/badges/11-7-stable/pipeline.svg)](https://gitlab.com/gitlab-org/gitlab-runner/commits/11-7-stable)
    - [ ] add all required fixes to make `11-7-stable` Pipeline passing
- [ ] `git checkout 11-7-stable && git pull` in your local working copy!
- [ ] prepare CHANGELOG entries

    ```bash
    ./scripts/prepare-changelog-entries.rb
    ```

    Copy the lines to the beginning of `CHANGELOG.md` file and add a proper header:

    ```markdown
    v11.7.0-rcZ (TODAY_DATE_HERE)
    ```

- [ ] add **v11.7.0-rcZ** CHANGELOG entries and commit

    ```bash
    git add CHANGELOG.md; git commit -m "Update CHANGELOG for v11.7.0-rcZ" -S
    ```

- [ ] tag and push **v11.7.0-rcZ** and **11-7-stable**:

    ```bash
    git tag -s v11.7.0-rcZ -m "Version v11.7.0-rcZ" && git push origin v11.7.0-rcZ 11-7-stable
    ```

- [ ] wait for Pipeline for `v11.7.0-rcZ` to pass [![pipeline status](https://gitlab.com/gitlab-org/gitlab-runner/badges/v11.7.0-rcZ/pipeline.svg)](https://gitlab.com/gitlab-org/gitlab-runner/commits/v11.7.0-rcZ)
    - [ ] add all required fixes to make `v11.7.0-rcZ` passing
- [ ] deploy **v11.7.0-rcZ** (https://gitlab.com/gitlab-com/runbooks/blob/master/howto/update-gitlab-runner-on-managers.md)
- [ ] update runner [helm chart](https://gitlab.com/charts/gitlab-runner) to use `v11.7.0-rcZ` version
    - [ ] check if Pipeline for `0-1-45-stable` is passing: [![pipeline status](https://gitlab.com/charts/gitlab-runner/badges/0-1-45-stable/pipeline.svg)](https://gitlab.com/charts/gitlab-runner/commits/0-1-45-stable)
        - [ ] add all required fixes to make `0-1-45-stable` Pipeline passing
    - [ ] go to your local working copy of https://gitlab.com/charts/gitlab-runner
    - [ ] `git checkout 0-1-45-stable && git pull` in your local working copy!
    - [ ] set Helm Chart to use `v11.7.0-rcZ` version of Runner
        - [ ] create new branch, update Runner version and push the branch:

            ```bash
            git checkout -b update-runner-to-11-7-0-rcZ && sed -i "s/^appVersion: .*/appVersion: 11.7.0-rcZ/" Chart.yaml && git add Chart.yaml && git commit -m "Bump used Runner version to 11.7.0-rcZ" -S && git push -u origin update-runner-to-11-7-0-rcZ
            ```

        - [ ] create Merge Request pointing `0-1-45-stable`: [link to MR here]
        - [ ] manage to merge the MR
    - [ ] check if Pipeline for `0-1-45-stable` is passing: [![pipeline status](https://gitlab.com/charts/gitlab-runner/badges/0-1-45-stable/pipeline.svg)](https://gitlab.com/charts/gitlab-runner/commits/0-1-45-stable)
        - [ ] add all required fixes to make `0-1-45-stable` Pipeline passing
    - [ ] `git checkout 0-1-45-stable && git pull` in your local working copy!
    - [ ] prepare CHANGELOG entries

        ```bash
        ./scripts/prepare-changelog-entries.rb
        ```

        Copy the lines to the beginning of `CHANGELOG.md` file and add a proper header:

        ```markdown
        ## v0.1.45-rcZ (TODAY_DATE_HERE)
        ```

    - [ ] add **v0.1.45-rcZ** CHANGELOG entries and commit

        ```bash
        git add CHANGELOG.md && git commit -m "Update CHANGELOG for v0.1.45-rcZ" -S
        ```

    - [ ] bump version of the Helm Chart to `0.1.45-rcZ`

        ```bash
        sed -i "s/^version: .*/version: 0.1.45-rcZ/" Chart.yaml && git add Chart.yaml && git commit -m "Bump version to 0.1.45-rcZ" -S && git push
        ```

    - [ ] tag and push **v0.1.45-rcZ** and **0-1-45-stable**:

        ```bash
        git tag -s v0.1.45-rcZ -m "Version v0.1.45-rcZ" && git push origin v0.1.45-rcZ 0-1-45-stable
        ```
Edited by Tomasz Maczukin