37 lines
792 B
Bash
Executable File
37 lines
792 B
Bash
Executable File
#!/bin/bash
|
|
set -euo pipefail
|
|
|
|
err() {
|
|
>&2 echo "ERROR: $*"
|
|
exit 1
|
|
}
|
|
|
|
git status --porcelain | grep -q "" &&
|
|
err "working tree is dirty, commit your changes first."
|
|
|
|
for file in sha256sum-*; do
|
|
err "found $file from previous release, delete it first"
|
|
done
|
|
|
|
[[ "$1" =~ ^v([0-9]+)\.([0-9]+)(\.([0-9]+))?$ ]] || \
|
|
err "arg1 accepts the following formats: v1.0 v1.0.0"
|
|
|
|
git tag | grep -q "^$1$" &&
|
|
err "tag $1 already exists"
|
|
|
|
last_tag=$(git tag | tail -1)
|
|
|
|
make -B -j"$(nproc)" VSN="$1" sha256sum-asc
|
|
|
|
{
|
|
echo undocker "$1"
|
|
echo
|
|
echo Changelog since "$last_tag":
|
|
git log --pretty=format:"- [%cn] %s" "$last_tag"..HEAD
|
|
echo
|
|
echo
|
|
echo sha256sums of released binaries:
|
|
cat sha256sum-*.txt
|
|
echo
|
|
} | git tag -u motiejus@jakstys.lt -F - "$1"
|