Skip to content

Commit

Permalink
Update release checklist (FerretDB#1621)
Browse files Browse the repository at this point in the history
  • Loading branch information
AlekSi authored Dec 5, 2022
1 parent b13e7bb commit df54de4
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 17 deletions.
48 changes: 31 additions & 17 deletions .github/RELEASE_CHECKLIST.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# Release Checklist

## Preparation

1. Check tests, linters.
2. Check issues and pull requests, update milestones and labels.
3. Create draft release on GitHub with autogenerated release notes.
Expand All @@ -9,20 +11,32 @@
* Tweak spacing, headers levels.
5. Update CHANGELOG.md with the same release notes:
* Check spacing, header levels.
6. Make a signed tag `vX.Y.Z` with the relevant section of the changelog using `--cleanup=verbatim`.
7. Push it!
8. Make [release](https://github.com/FerretDB/FerretDB/releases).
9. Upload .deb and .rpm packages from the CI build for the tag.
10. Refresh
* `env GOPROXY=https://proxy.golang.org go install -x github.com/FerretDB/FerretDB/cmd/ferretdb@<tag>`
* `env GOPROXY=https://proxy.golang.org go install -x github.com/FerretDB/FerretDB/ferretdb@<tag>`
(expected error message is `package github.com/FerretDB/FerretDB/ferretdb is not a main package`)
* <https://pkg.go.dev/github.com/FerretDB/FerretDB?tab=versions>
11. `task docker-local`
12. `task docker-push` with four tags (`X.Y.Z` without leading `v` and `latest` for both ghcr.io and Docker Hub):
* `task docker-push DOCKER_IMAGE=ferretdb/ferretdb:latest`
* `task docker-push DOCKER_IMAGE=ferretdb/ferretdb:<tag>`
* `task docker-push DOCKER_IMAGE=ghcr.io/ferretdb/ferretdb:latest`
* `task docker-push DOCKER_IMAGE=ghcr.io/ferretdb/ferretdb:<tag>`
13. Close milestone in issues.
14. Announce it!
6. Push changes, check `git status`.

## Git tag

1. Make a signed tag `vX.Y.Z` with the relevant section of the changelog using `--cleanup=verbatim`.
2. Push it!
3. Check `task gen; cat internal/util/version/gen/version.txt; git status` output.
4. Refresh
* `env GOPROXY=https://proxy.golang.org go mod download -x github.com/FerretDB/FerretDB@<tag>`
* `https://pkg.go.dev/github.com/FerretDB/FerretDB@<tag>` from <https://pkg.go.dev/github.com/FerretDB/FerretDB?tab=versions>

## Docker

1. `task docker-cache`
2. `task docker-push` with four tags (`X.Y.Z` without leading `v` and `latest` for both ghcr.io and Docker Hub):
* `task docker-push DOCKER_IMAGE=ferretdb/ferretdb:latest`
* `task docker-push DOCKER_IMAGE=ferretdb/ferretdb:<tag>`
* `task docker-push DOCKER_IMAGE=ghcr.io/ferretdb/ferretdb:latest`
* `task docker-push DOCKER_IMAGE=ghcr.io/ferretdb/ferretdb:<tag>`
* Check <https://hub.docker.com/r/ferretdb/ferretdb/tags>, <https://github.com/FerretDB/FerretDB/pkgs/container/ferretdb>.

## Release

1. Upload .deb and .rpm packages [from the CI build for the tag](https://github.com/FerretDB/FerretDB/actions/workflows/packages.yml?query=event%3Apush) to the draft release.
2. Close milestone in issues.
3. Publish release on GitHub.
4. Announce it on Slack.
5. Bump the latest version on [Beacon](https://beacon.ferretdb.io).
6. Publish blog post, etc.
17 changes: 17 additions & 0 deletions Taskfile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -327,6 +327,7 @@ tasks:
- docker buildx create --driver=docker-container --name=ferretdb --use=false

docker-local:
desc: "Build `ferretdb-local` Docker image"
deps: [gen-version]
cmds:
- >
Expand All @@ -342,6 +343,22 @@ tasks:
COMMIT:
sh: cat internal/util/version/gen/commit.txt

docker-cache:
deps: [gen-version]
cmds:
- >
docker buildx build --builder=ferretdb
--build-arg VERSION={{.VERSION}}
--build-arg COMMIT={{.COMMIT}}
--build-arg RACEFLAG={{.RACEFLAG}}
--platform=linux/arm/v7,linux/arm64,linux/amd64
.
vars:
VERSION:
sh: cat internal/util/version/gen/version.txt
COMMIT:
sh: cat internal/util/version/gen/commit.txt

docker-push:
deps: [gen-version]
cmds:
Expand Down

0 comments on commit df54de4

Please sign in to comment.