diff --git a/scripts/create-release.sh b/scripts/create-release.sh index 1ca8fdb..b05f8a7 100755 --- a/scripts/create-release.sh +++ b/scripts/create-release.sh @@ -16,6 +16,17 @@ if [[ "$(git symbolic-ref --short HEAD)" != "master" ]]; then exit 1 fi +waitForPr() { + local pr=$1 + while true; do + if gh pr view "$pr" | grep -q 'MERGED'; then + break + fi + echo "Waiting for PR to be merged..." + sleep 5 + done +} + sed -Ei "s!(version = ).*!\1\"$version\";!" default.nix sed -Ei "s!(NIX_DIRENV_VERSION=).*!\1$version!" direnvrc @@ -24,6 +35,32 @@ sed -i README.md templates/flake/.envrc \ -e 's?\( ! nix_direnv_version \)[0-9.]\+\(; \)?\1'"${version}"'\2?' git add README.md direnvrc templates/flake/.envrc default.nix git commit -m "bump version ${version}" -git tag -e "${version}" +git tag "${version}" +git branch -D "release-${version}" || true +git checkout -b "release-${version}" +git push origin --force "release-${version}" +gh pr create \ + --base master \ + --head "release-${version}" \ + --title "Release ${version}" \ + --body "Release ${version} of nix-direnv" -echo "now run 'git push --tags origin master && ./scripts/update-checksum.sh'" +gh pr merge --auto "release-${version}" + +waitForPr "release-${version}" +git push origin "$version" + +sha256=$(direnv fetchurl "https://raw.githubusercontent.com/nix-community/nix-direnv/${version}/direnvrc" | grep -m1 -o 'sha256-.*') +sed -i README.md templates/flake/.envrc -e "s!sha256-.*!${sha256}\"!" +git add README.md templates/flake/.envrc +git commit -m "update fetchurl checksum" +git push origin --force "release-${version}" +gh pr create \ + --base master \ + --head "release-${version}" \ + --title "Update checksums for release ${version} of nix-direnv" \ + --body "Update checksums for release ${version} of nix-direnv" +gh pr merge --auto "release-${version}" +waitForPr "release-${version}" + +echo "You can now create a release at https://github.com/nix-community/nix-direnv/releases for version ${version}" diff --git a/scripts/update-checksum.sh b/scripts/update-checksum.sh deleted file mode 100755 index b0c6c2b..0000000 --- a/scripts/update-checksum.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null && pwd)" -cd "$SCRIPT_DIR/.." - -tag=$(git describe --tags | cut -d- -f1) -sha256=$(direnv fetchurl "https://raw.githubusercontent.com/nix-community/nix-direnv/${tag}/direnvrc" | grep -m1 -o 'sha256-.*') - -sed -i README.md templates/flake/.envrc -e "s!sha256-.*!${sha256}\"!" -git add README.md templates/flake/.envrc -git commit -m "update fetchurl checksum" -echo "Now run: git push" -echo "And create a release at https://github.com/nix-community/nix-direnv/releases for version ${tag}"