#!/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." [[ "$1" =~ ^v([0-9]+)\.([0-9]+)(\.([0-9]+))?(-rc([0-9]+))?$ ]] || \ _err "arg1 accepts the following formats: v1.0 v1.0.0 v1.0-rc1 v1.0.1-rc1" git tag | grep -q "^$1$" && _err "tag $1 already exists" # sanity test: do the tests pass? make -B -j"$(nproc)" test lint last_tag=$(git tag | tail -1) { echo undocker "$1" echo echo Changelog since "$last_tag": git log --pretty=format:"- [%an] %s" "$last_tag"..HEAD } | git tag -u motiejus@jakstys.lt -F - "$1"