From cc0e4394220772e29523efb9ea0139ac83b817de Mon Sep 17 00:00:00 2001 From: Ivan Valdes Date: Tue, 12 Nov 2024 11:25:41 -0700 Subject: [PATCH] release: add a prompt to release GitHub release Signed-off-by: Ivan Valdes --- scripts/release.sh | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/scripts/release.sh b/scripts/release.sh index 70e455e3ad8..7a9f56c0c12 100755 --- a/scripts/release.sh +++ b/scripts/release.sh @@ -343,13 +343,17 @@ main() { local release_url local gh_release_args=() - # For the main branch (v3.6), we should mark the release as a prerelease. - # The release-3.5 (v3.5) branch, should be marked as latest. And release-3.4 (v3.4) - # should be left without any additional mark (therefore, it doesn't need a special argument). - if [ "${BRANCH}" = "main" ]; then - gh_release_args=(--prerelease) - elif [ "${BRANCH}" = "release-3.5" ]; then - gh_release_args=(--latest) + local prompt + log_warning "WARNING: Only releases from the latest stable branch should be marked as the latest release" + read -p "Mark this as a the latest release [y/N]? " -r prompt + if [[ "${prompt,,}" == "y" ]]; then + gh_release_args=(--latest=true) + else + log_warning "WARNING: Only releases from the latest unstable branch should be marked as pre-releases (i.e., alpha, beta, or release candidates)" + read -p "Mark this as a pre-release [y/N]? " -r prompt + if [[ "${prompt,,}" == "y" ]]; then + gh_release_args=(--prerelease=true) + fi fi if [ "${REPOSITORY}" = "$(pwd)" ]; then @@ -392,9 +396,18 @@ main() { release_url=$(gh --repo "${gh_repo}" release view "${RELEASE_VERSION}" --json url --jq '.url') - log_warning "" - log_warning "WARNING: The GitHub release for ${RELEASE_VERSION} has been created as a draft, please go to ${release_url} and release it." - log_warning "" + # Give a 10 minute timeout to the user to confirm the release. + read -p "Release GitHub release for ${RELEASE_VERSION} [y/N]? " -t 600 -r confirm + if [[ "${confirm,,}" == "y" ]]; then + maybe_run gh release edit "${RELEASE_VERSION}" \ + --repo "${gh_repo}" \ + --draft=false \ + "${gh_release_args[@]}" + else + log_warning "" + log_warning "WARNING: The GitHub release for ${RELEASE_VERSION} has been created as a draft, please review it at ${release_url}." + log_warning "" + fi fi log_success "Success."