diff options
author | Eric Biggers <ebiggers@google.com> | 2022-02-06 10:55:14 -0800 |
---|---|---|
committer | Eric Biggers <ebiggers@google.com> | 2022-02-06 10:58:13 -0800 |
commit | d1e856b59dd7f205f65b22c2bca534505eaed1e1 (patch) | |
tree | 5ceba7a63522caa3db59189fd54df32cb8f4a505 | |
parent | c7434e7c68f7d039a82a8594dd59638cb9ea9ef0 (diff) | |
download | fsverity-utils-d1e856b59dd7f205f65b22c2bca534505eaed1e1.tar.gz |
scripts/do-release.sh: split into prepare and publish
Signed-off-by: Eric Biggers <ebiggers@google.com>
-rwxr-xr-x | scripts/do-release.sh | 101 |
1 files changed, 65 insertions, 36 deletions
diff --git a/scripts/do-release.sh b/scripts/do-release.sh index 9f6bf73..3f68497 100755 --- a/scripts/do-release.sh +++ b/scripts/do-release.sh @@ -9,44 +9,73 @@ set -e -u -o pipefail cd "$(dirname "$0")/.." -if [ $# != 1 ]; then - echo "Usage: $0 VERS" 1>&2 - echo " e.g. $0 1.0" 1>&2 +usage() +{ + echo "Usage: $0 prepare|publish VERS" 1>&2 + echo " e.g. $0 prepare 1.0" 1>&2 + echo " $0 publish 1.0" 1>&2 exit 2 +} + +if [ $# != 2 ]; then + usage fi -VERS=$1 +PUBLISH=false +case $1 in +publish) + PUBLISH=true + ;; +prepare) + ;; +*) + usage + ;; +esac +VERS=$2 PKG=fsverity-utils-$VERS -git checkout -f -git clean -fdx -./scripts/run-tests.sh -git clean -fdx - -major=$(echo "$VERS" | cut -d. -f1) -minor=$(echo "$VERS" | cut -d. -f2) -month=$(LC_ALL=C date +%B) -year=$(LC_ALL=C date +%Y) - -sed -E -i -e "/FSVERITY_UTILS_MAJOR_VERSION/s/[0-9]+/$major/" \ - -e "/FSVERITY_UTILS_MINOR_VERSION/s/[0-9]+/$minor/" \ - include/libfsverity.h -sed -E -i "/Version:/s/[0-9]+\.[0-9]+/$VERS/" \ - lib/libfsverity.pc.in -sed -E -i -e "/^% /s/fsverity-utils v[0-9]+(\.[0-9]+)+/fsverity-utils v$VERS/" \ - -e "/^% /s/[a-zA-Z]+ 2[0-9]{3}/$month $year/" \ - man/*.[1-9].md -git commit -a --signoff --message="v$VERS" -git tag --sign "v$VERS" --message="$PKG" - -git archive "v$VERS" --prefix="$PKG/" > "$PKG.tar" -tar xf "$PKG.tar" -( cd "$PKG" && make check ) -rm -r "$PKG" - -gpg --detach-sign --armor "$PKG.tar" -DESTDIR=/pub/linux/kernel/people/ebiggers/fsverity-utils/v$VERS -kup mkdir "$DESTDIR" -kup put "$PKG.tar" "$PKG.tar.asc" "$DESTDIR/$PKG.tar.gz" -git push -git push --tags +prepare_release() +{ + git checkout -f + git clean -fdx + ./scripts/run-tests.sh + git clean -fdx + + major=$(echo "$VERS" | cut -d. -f1) + minor=$(echo "$VERS" | cut -d. -f2) + month=$(LC_ALL=C date +%B) + year=$(LC_ALL=C date +%Y) + + sed -E -i -e "/FSVERITY_UTILS_MAJOR_VERSION/s/[0-9]+/$major/" \ + -e "/FSVERITY_UTILS_MINOR_VERSION/s/[0-9]+/$minor/" \ + include/libfsverity.h + sed -E -i "/Version:/s/[0-9]+\.[0-9]+/$VERS/" \ + lib/libfsverity.pc.in + sed -E -i -e "/^% /s/fsverity-utils v[0-9]+(\.[0-9]+)+/fsverity-utils v$VERS/" \ + -e "/^% /s/[a-zA-Z]+ 2[0-9]{3}/$month $year/" \ + man/*.[1-9].md + git commit -a --signoff --message="v$VERS" + git tag --sign "v$VERS" --message="$PKG" + + git archive "v$VERS" --prefix="$PKG/" > "$PKG.tar" + tar xf "$PKG.tar" + ( cd "$PKG" && make check ) + rm -r "$PKG" +} + +publish_release() +{ + gpg --detach-sign --armor "$PKG.tar" + DESTDIR=/pub/linux/kernel/people/ebiggers/fsverity-utils/v$VERS + kup mkdir "$DESTDIR" + kup put "$PKG.tar" "$PKG.tar.asc" "$DESTDIR/$PKG.tar.gz" + git push + git push --tags +} + +if $PUBLISH; then + publish_release +else + prepare_release +fi |