diff --git a/bin/create-release.sh b/bin/create-release.sh new file mode 100755 index 0000000..037446d --- /dev/null +++ b/bin/create-release.sh @@ -0,0 +1,37 @@ +#!/usr/bin/env bash + +set -eu -o pipefail + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null && pwd)" +cd "$SCRIPT_DIR/.." + +version=${1:-} +if [[ -z "$version" ]]; then + echo "USAGE: $0 version" >&2 + exit 1 +fi + +if [[ "$(git symbolic-ref --short HEAD)" != "master" ]]; then + echo "must be on master branch" >&2 + exit 1 +fi + +# ensure we are up-to-date +uncommitted_changes=$(git diff --compact-summary) +if [[ -n "$uncommitted_changes" ]]; then + echo -e "There are uncommitted changes, exiting:\n${uncommitted_changes}" >&2 + exit 1 +fi +git pull git@github.com:Mic92/nix-update master +unpushed_commits=$(git log --format=oneline origin/master..master) +if [[ "$unpushed_commits" != "" ]]; then + echo -e "\nThere are unpushed changes, exiting:\n$unpushed_commits" >&2 + exit 1 +fi +sed -i -e "s!^version = \".*\"\$!version = \"${version}\"!" pyproject.toml default.nix +git add pyproject.toml default.nix +nix flake check -vL +git commit -m "bump version ${version}" +git tag -e "${version}" + +echo "now run 'git push --tags origin master'"