Skip to content

Commit 9431222

Browse files
authored
Switch to annotated tags for releases (#124)
Annotated tags conveniently facilitate bundling release notes. This changes the build process to require an annotated tag.
1 parent 81f917d commit 9431222

File tree

2 files changed

+20
-10
lines changed

2 files changed

+20
-10
lines changed

.github/workflows/release.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,25 @@ jobs:
2121
steps:
2222
- name: Checkout code
2323
uses: actions/checkout@v4
24+
with:
25+
fetch-depth: 0
26+
27+
# NB: actions/checkout quietly fetches all tags as lightweight tags,
28+
# even if they’re annotated upstream. That, of course, prevents use
29+
# of the tag message as release notes. This works around that.
30+
#
31+
# See https://github.com/actions/checkout/issues/290 for details.
32+
- name: Fetch tags
33+
run: git fetch --tags --force
2434

2535
- name: Set up Go
2636
uses: actions/setup-go@v4
2737

2838
- name: Build
2939
run: |
40+
set -o errexit
41+
TAG_NAME=$(git describe --exact-match)
42+
git tag --list --format='%(contents)' "$TAG_NAME" > RELEASE-NOTES
3043
for target in $TARGETS; do
3144
export GOOS=${target%/*}
3245
export GOARCH=${target#*/}
@@ -39,4 +52,5 @@ jobs:
3952
env:
4053
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
4154
with:
55+
body_path: RELEASE-NOTES
4256
files: migration_verifier_*

RELEASE.md

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,12 @@
11
# Releasing Migration Verifier
22

3-
To release Migration Verifier, just create a lightweight git tag, thus:
3+
To release Migration Verifier, create an annotated git tag, thus:
44
```
5-
git tag v0.0.2
5+
git tag --annotate v0.0.2
66
```
7-
… and push it to upstream.
7+
The tag contents will be the release notes. See prior releases for the format.
8+
Once you’re done, push your tag to upstream. A pre-configured GitHub Action
9+
will create the release.
810

9-
Versions **MUST** start with a `v` and follow
11+
**IMPORTANT:** Versions **MUST** start with a `v` and follow
1012
[semantic versioning](https://semver.org/).
11-
12-
An automated release process will build binaries and make them available
13-
for download. Check GitHub Actions for progress.
14-
15-
Note that this process **DOES NOT** create release notes. Users should peruse
16-
the repository’s commit history for changes.

0 commit comments

Comments
 (0)