rework release process to work with merge-queues

This commit is contained in:
Jörg Thalheim 2025-05-09 17:16:28 +02:00
parent 70e533483b
commit 7e24237575
2 changed files with 39 additions and 16 deletions

View file

@ -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}"