meta: release.sh

cargo-release doesn't do everything we want during the release process,
so a separate script ends up being necessary if I don't want to forget
steps.
pull/48/head
Jake McGinty 2021-04-09 14:09:55 +09:00
parent a87d56cfc9
commit 0a0ce0793d
2 changed files with 37 additions and 15 deletions

View File

@ -1,15 +0,0 @@
#!/usr/bin/env bash
set -ex
if ! command -v help2man &> /dev/null
then
echo "help2man binary could not be found"
exit
fi
cargo build
for binary in "innernet" "innernet-server"; do
help2man --no-discard-stderr -s8 "target/debug/$binary" -N > "doc/$binary.8"
gzip -f "doc/$binary.8"
done

37
release.sh Executable file
View File

@ -0,0 +1,37 @@
#!/usr/bin/env bash
set -e
die () {
echo >&2 "$@"
exit 1
}
for command in help2man cargo-release; do
if ! command -v $command &> /dev/null
then
echo "$command binary could not be found"
exit
fi
done
[ "$#" -eq 1 ] || die "usage: ./release.sh [patch|major|minor|rc]"
git diff --quiet || die 'ERROR: git repo is dirty.'
cargo build
for binary in "innernet" "innernet-server"; do
help2man --no-discard-stderr -s8 "target/debug/$binary" -N > "doc/$binary.8"
gzip -f "doc/$binary.8"
done
git add doc
git commit -m "meta: update manpages"
cargo release "$1" --no-confirm --exclude "hostsfile"
# re-stage the manpage commit and the cargo-release commit
git reset --soft @~2
VERSION="$(cargo pkgid -p shared | cut -d '#' -f 2)"
git commit -m "meta: release v$VERSION"
git tag "v$VERSION"