From dd78d2b2a14b033e539862359e8387db6462ad02 Mon Sep 17 00:00:00 2001 From: Jonas Nick Date: Wed, 8 Jul 2020 10:14:38 +0000 Subject: [PATCH] Add --dry-run option to push-release script --- helper/push-release.sh | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/helper/push-release.sh b/helper/push-release.sh index b471d00..11967be 100755 --- a/helper/push-release.sh +++ b/helper/push-release.sh @@ -4,21 +4,34 @@ set -euo pipefail REPO=fort-nix/nix-bitcoin BRANCH=master OAUTH_TOKEN=$(pass show nix-bitcoin/github/oauth-token) +DRY_RUN= +TAG_NAME= if [[ ! $OAUTH_TOKEN ]]; then echo "Please set OAUTH_TOKEN variable" fi -if [[ $# < 1 ]]; then - echo "$0 " +for arg in "$@"; do + case $arg in + --dry-run|-n) + DRY_RUN=1 + ;; + *) + TAG_NAME="$arg" + ;; + esac +done + +if [[ ! $TAG_NAME ]]; then + echo "$0 [--dry-run|-n] " exit fi -TAG_NAME=$1 +if [[ $DRY_RUN ]]; then echo "Dry run"; fi RESPONSE=$(curl https://api.github.com/repos/$REPO/releases/latest 2> /dev/null) echo "Latest release" $(echo $RESPONSE | jq -r '.tag_name' | tail -c +2) while true; do - read -p "Create release $1? [yn] " yn + read -p "Create release $TAG_NAME? [yn] " yn case $yn in [Yy]* ) break;; [Nn]* ) exit;; @@ -27,7 +40,7 @@ while true; do done TMPDIR=$(mktemp -d) -trap "rm -rf $TMPDIR" EXIT +if [[ ! $DRY_RUN ]]; then trap "rm -rf $TMPDIR" EXIT; fi ARCHIVE_NAME=nix-bitcoin-$TAG_NAME.tar.gz ARCHIVE=$TMPDIR/$ARCHIVE_NAME @@ -40,6 +53,11 @@ SHA256SUMS=$TMPDIR/SHA256SUMS.txt (cd $TMPDIR; sha256sum $ARCHIVE_NAME > $SHA256SUMS) gpg -o $SHA256SUMS.asc -a --detach-sig $SHA256SUMS +if [[ $DRY_RUN ]]; then + echo "Created v$TAG_NAME in $TMPDIR" + exit 0 +fi + POST_DATA="{ \"tag_name\": \"v$TAG_NAME\", \"name\": \"nix-bitcoin-$TAG_NAME\", \"body\": \"nix-bitcoin-$TAG_NAME\", \"target_comitish\": \"$BRANCH\" }" RESPONSE=$(curl -H "Authorization: token $OAUTH_TOKEN" -d "$POST_DATA" https://api.github.com/repos/$REPO/releases 2> /dev/null) ID=$(echo $RESPONSE | jq -r '.id') @@ -50,8 +68,8 @@ fi post_asset() { GH_ASSET="https://uploads.github.com/repos/$REPO/releases/$ID/assets?name=" - curl -H "Authorization: token $OAUTH_TOKEN" --data-binary "@$1" -H "Content-Type: application/octet-stream" \ - $GH_ASSET/$(basename $1) &> /dev/null + curl -H "Authorization: token $OAUTH_TOKEN" --data-binary "@$TAG_NAME" -H "Content-Type: application/octet-stream" \ + $GH_ASSET/$(basename $TAG_NAME) &> /dev/null } post_asset $ARCHIVE post_asset $SHA256SUMS