diff --git a/bin/create-release.sh b/bin/create-release.sh new file mode 100755 index 0000000..28d669a --- /dev/null +++ b/bin/create-release.sh @@ -0,0 +1,38 @@ +#!/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)" != "main" ]]; then + echo "must be on main 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-fast-build main +unpushed_commits=$(git log --format=oneline origin/main..main) +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}\";!" default.nix +sed -i -e "s!^version = \".*\"\$!version = \"${version}\"!" pyproject.toml +git add pyproject.toml default.nix +nix flake check -vL +git commit -m "bump version ${version}" +git tag "${version}" + +echo "now run 'git push --tags origin main'"