Simplify releases with a script
This commit is contained in:
parent
c4bc77402e
commit
f70d6b0cf0
@ -1,14 +1,7 @@
|
||||
# Release process
|
||||
|
||||
- [ ] Update version number in `Cargo.toml`
|
||||
- [ ] Run `cargo check`
|
||||
- [ ] Commit changes to `Cargo.*` with the message format `Release vN.N.N`
|
||||
- [ ] Make git tag `vN.N.N`
|
||||
- [ ] Run `gitchangelog`, review and make any manual adjustments as needed
|
||||
- [ ] Regenerate README: `docs/generate.sh`
|
||||
- [ ] Stage `CHANGES.md`, `README.md` and amend previous commit
|
||||
- [ ] Force update git tag `vN.N.N`
|
||||
- [ ] Push changes & tag
|
||||
- [ ] Run `./make-new-release.sh`
|
||||
- [ ] Push the created release commit/tag to GitHub
|
||||
- [ ] Wait for builds to turn green (<https://github.com/zoni/obsidian-export/actions>)
|
||||
- [ ] Run `cargo publish`
|
||||
- [ ] Publish drafted release (<https://github.com/zoni/obsidian-export/releases>)
|
||||
|
37
make-new-release.sh
Executable file
37
make-new-release.sh
Executable file
@ -0,0 +1,37 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
get_next_version_number() {
|
||||
DATEPART=$(date +%y.%-m)
|
||||
ITERATION=0
|
||||
|
||||
while true; do
|
||||
VERSION_STRING="${DATEPART}.${ITERATION}"
|
||||
if git rev-list "v$VERSION_STRING" > /dev/null 2>&1; then
|
||||
((ITERATION++))
|
||||
else
|
||||
echo "$VERSION_STRING"
|
||||
return
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
VERSION=$(get_next_version_number)
|
||||
|
||||
sed -i -E "s/^version = \".+\"$/version = \"${VERSION}\"/" Cargo.toml
|
||||
cargo check
|
||||
git commit "Cargo.*" --message "Release v${VERSION}"
|
||||
git tag "v${VERSION}"
|
||||
|
||||
gitchangelog
|
||||
${EDITOR:-vim} CHANGES.md
|
||||
docs/generate.sh
|
||||
git add CHANGES.md README.md
|
||||
git commit --amend --no-edit
|
||||
git tag "v${VERSION}" --force
|
||||
|
||||
printf "\n\nSuccessfully created release %s\n" "v${VERSION}"
|
||||
printf "\nYou'll probably want to continue with:\n"
|
||||
printf "\tgit push origin main\n"
|
||||
printf "\tgit push origin %s\n" "v${VERSION}"
|
Loading…
Reference in New Issue
Block a user