GitLab's annual major release is around the corner. Along with a lot of new and exciting features, there will be a few breaking changes. Learn more here.

Release Checklist.md 8.92 KB
Newer Older
1
/label ~"devops:verify"
2 3
/label ~release
/label ~Deliverable
Tomasz Maczukin's avatar
Tomasz Maczukin committed
4 5
/milestone %"{{.Major}}.{{.Minor}}"
/assign @{{.ReleaseManagerHandle}}
6

Tomasz Maczukin's avatar
Tomasz Maczukin committed
7
# GitLab Runner {{.Major}}.{{.Minor}} release checklist
8

Tomasz Maczukin's avatar
Tomasz Maczukin committed
9
GitLab Runner Release manager: **@{{.ReleaseManagerHandle}}**
10

Tomasz Maczukin's avatar
Tomasz Maczukin committed
11
Release blog post MR: **gitlab-com/www-gitlab-com!{{.ReleaseBlogPostMR}}**
12

Tomasz Maczukin's avatar
Tomasz Maczukin committed
13
Runner entries need to be added to blog post until: **{{.ReleaseBlogPostDeadline}}**
14

15 16 17
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

18 19 20 21 22
## Before 7th

- [ ] chose a release manager
- [ ] link release blog post's MR
- [ ] set deadline for _add entries to release blog post_
23 24 25 26 27 28

      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.

Tomasz Maczukin's avatar
Tomasz Maczukin committed
29
- [ ] Update the `.Major` and `.Minor` to a specific release version
30

Tomasz Maczukin's avatar
Tomasz Maczukin committed
31
## First working day after 7th - **v{{.Major}}.{{.Minor}}.0-rc1 release**
32 33 34

- [ ] check if Pipeline for `master` is passing: [![pipeline status](https://gitlab.com/gitlab-org/gitlab-runner/badges/master/pipeline.svg)](https://gitlab.com/gitlab-org/gitlab-runner/commits/master)
    - [ ] add all required fixes to make `master` Pipeline passing
35 36 37 38
- [ ] `git checkout master && git pull` in your local working copy!
- [ ] add **v{{.Major}}.{{.Minor}}.0-rc1** CHANGELOG entries and commit

    ```bash
39
    git add CHANGELOG.md; git commit -m "Update CHANGELOG for v{{.Major}}.{{.Minor}}.0-rc1" -S
40 41 42 43 44
    ```

- [ ] tag and push **v{{.Major}}.{{.Minor}}.0-rc1**:

    ```bash
45
    git tag -s v{{.Major}}.{{.Minor}}.0-rc1 -m "Version v{{.Major}}.{{.Minor}}.0-rc1" && git push origin v{{.Major}}.{{.Minor}}.0-rc1
46 47 48 49 50 51 52 53 54 55 56
    ```

- [ ] create and push `{{.Major}}-{{.Minor}}-stable` branch:

    ```bash
    git checkout -b {{.Major}}-{{.Minor}}-stable; git push -u origin {{.Major}}-{{.Minor}}-stable
    ```

- [ ] checkout to `master`, update `VERSION` file to `{{.Major}}.{{inc .Minor}}.0` and push `master`:

    ```bash
57
    git checkout master; echo -n "{{.Major}}.{{inc .Minor}}.0" > VERSION; git add VERSION; git commit -m "Bump version to {{.Major}}.{{inc .Minor}}.0" -S && git push
58 59 60 61
    ```

- [ ] wait for Pipeline for `v{{.Major}}.{{.Minor}}.0-rc1` to pass [![pipeline status](https://gitlab.com/gitlab-org/gitlab-runner/badges/v{{.Major}}.{{.Minor}}.0-rc1/pipeline.svg)](https://gitlab.com/gitlab-org/gitlab-runner/commits/v{{.Major}}.{{.Minor}}.0-rc1)
    - [ ] add all required fixes to make `v{{.Major}}.{{.Minor}}.0-rc1` passing
Tomasz Maczukin's avatar
Tomasz Maczukin committed
62
- [ ] deploy **v{{.Major}}.{{.Minor}}.0-rc1** (https://gitlab.com/gitlab-com/runbooks/blob/master/howto/update-gitlab-runner-on-managers.md)
63 64 65 66

_New features_ window is closed - things not merged into `master` up to
this day, will be released with next release.

Tomasz Maczukin's avatar
Tomasz Maczukin committed
67
## 7 working days before 22th (**{{.ReleaseBlogPostDeadline}}**)
68

69 70
- [ ] prepare entries for the release blog post. Items can be generated with `./scripts/changelog2releasepost | less`
- [ ] add release entry:
71 72 73 74

    Add description to the `SECONDARY FEATURES` list using following template:

    ```markdown
Tomasz Maczukin's avatar
Tomasz Maczukin committed
75
    - name: GitLab Runner {{.Major}}.{{.Minor}}
Fabio Busatto's avatar
Fabio Busatto committed
76
      available_in: [core, starter, premium, ultimate]
77
      documentation_link: 'https://docs.gitlab.com/runner'
Tomasz Maczukin's avatar
Tomasz Maczukin committed
78
      documentation_text: "Read through the documentation of GitLab Runner"
79
      description: |
Tomasz Maczukin's avatar
Tomasz Maczukin committed
80
        We're also releasing GitLab Runner {{.Major}}.{{.Minor}} today! GitLab Runner is the open source project
81
        that is used to run your CI/CD jobs and send the results back to GitLab.
82 83 84

        ##### Most interesting changes:

85
        * [__Title__](https://gitlab.com/gitlab-org/gitlab-runner/merge_requests/__ID__)
86

Tomasz Maczukin's avatar
Tomasz Maczukin committed
87
        List of all changes can be found in GitLab Runner's [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-runner/blob/v{{.Major}}.{{.Minor}}.0/CHANGELOG.md).
88 89 90 91 92 93 94
    ```

## 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.

Tomasz Maczukin's avatar
Tomasz Maczukin committed
95 96
- [ ] check if Pipeline for `{{.Major}}-{{.Minor}}-stable` is passing: [![pipeline status](https://gitlab.com/gitlab-org/gitlab-runner/badges/{{.Major}}-{{.Minor}}-stable/pipeline.svg)](https://gitlab.com/gitlab-org/gitlab-runner/commits/{{.Major}}-{{.Minor}}-stable)
    - [ ] add all required fixes to make `{{.Major}}-{{.Minor}}-stable` Pipeline passing
97 98 99 100
- [ ] `git checkout {{.Major}}-{{.Minor}}-stable && git pull` in your local working copy!
- [ ] add **v{{.Major}}.{{.Minor}}.0-rcZ** CHANGELOG entries and commit

    ```bash
101
    git add CHANGELOG.md; git commit -m "Update CHANGELOG for v{{.Major}}.{{.Minor}}.0-rcZ" -S
102 103
    ```

104
- [ ] tag and push **v{{.Major}}.{{.Minor}}.0-rcZ** and **{{.Major}}-{{.Minor}}-stable**:
105 106

    ```bash
107
    git tag -s v{{.Major}}.{{.Minor}}.0-rcZ -m "Version v{{.Major}}.{{.Minor}}.0-rcZ" && git push origin {{.Major}}-{{.Minor}}-stable v{{.Major}}.{{.Minor}}.0-rcZ
108 109 110 111
    ```

- [ ] wait for Pipeline for `v{{.Major}}.{{.Minor}}.0-rcZ` to pass [![pipeline status](https://gitlab.com/gitlab-org/gitlab-runner/badges/v{{.Major}}.{{.Minor}}.0-rcZ/pipeline.svg)](https://gitlab.com/gitlab-org/gitlab-runner/commits/v{{.Major}}.{{.Minor}}.0-rcZ)
    - [ ] add all required fixes to make `v{{.Major}}.{{.Minor}}.0-rcZ` passing
Tomasz Maczukin's avatar
Tomasz Maczukin committed
112
- [ ] deploy **v{{.Major}}.{{.Minor}}.0-rcZ** (https://gitlab.com/gitlab-com/runbooks/blob/master/howto/update-gitlab-runner-on-managers.md)
113 114 115 116

## At 22th - the release day

- [ ] Before 12:00 UTC
117 118 119 120
    - [ ] `git checkout {{.Major}}-{{.Minor}}-stable && git pull` in your local working copy!
    - [ ] merge all RCx CHANGELOG entries into release entry and commit

    ```bash
121
    git add CHANGELOG.md && git commit -m "Update CHANGELOG for v{{.Major}}.{{.Minor}}.0" -S
122 123
    ```

124
    - [ ] tag and push **v{{.Major}}.{{.Minor}}.0** and **{{.Major}}-{{.Minor}}-stable**:
125 126

        ```bash
127
        git tag -s v{{.Major}}.{{.Minor}}.0 -m "Version v{{.Major}}.{{.Minor}}.0" && git push origin {{.Major}}-{{.Minor}}-stable v{{.Major}}.{{.Minor}}.0
128 129 130 131 132
        ```

    - [ ] checkout to `master` and merge `{{.Major}}-{{.Minor}}-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`:

        ```bash
133 134 135
        git checkout master; git merge --no-ff {{.Major}}-{{.Minor}}-stable
        # check that the only changes are in CHANGELOG.md
        git push
136 137
        ```

138
- [ ] Before 15:00 UTC
139 140
    - [ ] wait for Pipeline for `v{{.Major}}.{{.Minor}}.0` to pass [![pipeline status](https://gitlab.com/gitlab-org/gitlab-runner/badges/v{{.Major}}.{{.Minor}}.0/pipeline.svg)](https://gitlab.com/gitlab-org/gitlab-runner/commits/v{{.Major}}.{{.Minor}}.0)
        - [ ] add all required fixes to make `v{{.Major}}.{{.Minor}}.0` passing
141
    - [ ] deploy stable version to all production Runners
142
    - [ ] update runner [helm chart](https://gitlab.com/charts/gitlab-runner) to latest production version
143 144 145 146


**RC release template**

147
There should be at least one RC version between RC1 and stable release. If there are any
148 149 150 151 152 153 154 155
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:

```markdown
Tomasz Maczukin's avatar
Tomasz Maczukin committed
156
## At _day here_ - **v{{.Major}}.{{.Minor}}.0-rcZ** release
157

Tomasz Maczukin's avatar
Tomasz Maczukin committed
158 159
- [ ] check if Pipeline for `{{.Major}}-{{.Minor}}-stable` is passing: [![pipeline status](https://gitlab.com/gitlab-org/gitlab-runner/badges/{{.Major}}-{{.Minor}}-stable/pipeline.svg)](https://gitlab.com/gitlab-org/gitlab-runner/commits/{{.Major}}-{{.Minor}}-stable)
    - [ ] add all required fixes to make `{{.Major}}-{{.Minor}}-stable` Pipeline passing
160 161 162 163
- [ ] `git checkout {{.Major}}-{{.Minor}}-stable && git pull` in your local working copy!
- [ ] add **v{{.Major}}.{{.Minor}}.0-rcZ** CHANGELOG entries and commit

    ```bash
164
    git add CHANGELOG.md; git commit -m "Update CHANGELOG for v{{.Major}}.{{.Minor}}.0-rcZ" -S
165 166
    ```

167
- [ ] tag and push **v{{.Major}}.{{.Minor}}.0-rcZ** and **{{.Major}}-{{.Minor}}-stable**:
168 169

    ```bash
170
    git tag -s v{{.Major}}.{{.Minor}}.0-rcZ -m "Version v{{.Major}}.{{.Minor}}.0-rcZ" && git push origin  {{.Major}}-{{.Minor}}-stable v{{.Major}}.{{.Minor}}.0-rcZ
171 172 173 174
    ```

- [ ] wait for Pipeline for `v{{.Major}}.{{.Minor}}.0-rcZ` to pass [![pipeline status](https://gitlab.com/gitlab-org/gitlab-runner/badges/v{{.Major}}.{{.Minor}}.0-rcZ/pipeline.svg)](https://gitlab.com/gitlab-org/gitlab-runner/commits/v{{.Major}}.{{.Minor}}.0-rcZ)
    - [ ] add all required fixes to make `v{{.Major}}.{{.Minor}}.0-rcZ` passing
Tomasz Maczukin's avatar
Tomasz Maczukin committed
175
- [ ] deploy **v{{.Major}}.{{.Minor}}.0-rcZ** (https://gitlab.com/gitlab-com/runbooks/blob/master/howto/update-gitlab-runner-on-managers.md)
176
```