[gnome-disk-utility] Add release helper
- From: Kai Lüke <kailueke src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-disk-utility] Add release helper
- Date: Fri, 18 Mar 2022 20:07:58 +0000 (UTC)
commit c2b5025758154a1f37d3b2da30174dce938e6d86
Author: Kai Lüke <kailueke riseup net>
Date: Fri Mar 18 20:49:20 2022 +0100
Add release helper
The manual release process was only documented locally for me and also
a bit error prone due to the many steps.
release | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 86 insertions(+)
---
diff --git a/release b/release
new file mode 100755
index 00000000..04b32c43
--- /dev/null
+++ b/release
@@ -0,0 +1,86 @@
+#!/bin/bash
+set -euo pipefail
+
+DRY="${DRY:-0}"
+KEYNAME="${KEYNAME:-id_gnome}"
+USERNAME="${USERNAME:-kailueke}"
+KEY="${HOME}/.ssh/${KEYNAME}"
+
+ARG="${1-}"
+if [ "${ARG}" = "" ] || [ "${ARG}" = "-h" ] || [ "${ARG}" = "--help" ]; then
+ echo "Usage: [USERNAME=mygnomeuser] [KEYNAME=id_rsa] [DRY=1] $0 VERSION"
+ echo "Pulls the current branch, generates the NEWS entries, bumps meson version,"
+ echo "then tags and pushes the commit and uploads the tar ball"
+ exit 1
+fi
+
+git pull
+
+if ! echo "${ARG}" | grep "\." -q; then
+ echo "No minor version given"
+ exit 1
+fi
+MAJOR=$(echo "${ARG}" | cut -d . -f 1)
+MINOR=$(echo "${ARG}" | cut -d . -f 2)
+if [ "${MAJOR}" = "" ] || [ "${MINOR}" = "" ]; then
+ echo "Major '${MAJOR}' or minor '${MINOR}' version empty"
+ exit 1
+fi
+BRANCH=$(git rev-parse --abbrev-ref HEAD)
+if [ "${BRANCH}" != "master" ] && [ "${BRANCH}" != "gnome-${MAJOR}" ]; then
+ echo "Branch ${BRANCH} does not match the expected 'master' or 'gnome-${MAJOR}' branch"
+ exit 1
+fi
+
+REMOTE=$(git remote -v | grep "ssh://git gitlab gnome org" | grep -m 1 push | cut -f 1)
+LAST_TAG=$(git describe --tags --abbrev=0)
+
+{
+ DATE=$(LC_ALL=C date '+%B %d, %Y')
+ HEADER="${ARG} - ${DATE}"
+ echo "${HEADER}"
+ echo "${HEADER}" | tr '[:print:]' '='
+ echo
+ git shortlog "${LAST_TAG}..HEAD" -- ':!po/*.po' | sed 's/ ([0-9]*):$/:/' | sed 's/^ [ ]*/ \* /'
+ echo "Updated translations:"
+ {
+ echo -n ' * '
+ git log "${LAST_TAG}..HEAD" --pretty=format:%an --name-only -- po/*.po | sed -e :a -e
'$!N;s|\npo/\(.*\)\.po| \(\1\)|;ta' | sort -u | sed '$!N;s/^\n//' | python3 -c 'print(",
".join(open("/dev/stdin").read().strip().split("\n")))'
+ } | fold -s -w 75 | sed -e '2,$s/^/ /' | sed -e 's/[[:space:]]*$//'
+ echo
+} | {
+ if [ "${DRY}" = "0" ]; then
+ cat - NEWS | sponge NEWS
+ else
+ cat
+ fi
+}
+
+if [ "${DRY}" = "0" ]; then
+ SEDARG="-i"
+ PASS="cat"
+else
+ SEDARG=""
+ PASS="grep -m 1 version"
+fi
+sed ${SEDARG} -e "3,\$s/^ version: '${LAST_TAG}',\$/ version: '${ARG}',/" meson.build | ${PASS}
+
+if [ "${DRY}" = "0" ]; then
+ git add NEWS meson.build
+ git commit -m "Prepare ${ARG}"
+ git tag -a -m "GNOME Disks ${ARG}" "${ARG}"
+ rm -r builddir
+ meson builddir
+ ninja -C builddir dist
+ git push "${REMOTE}"
+ git push "${REMOTE}" "${ARG}"
+ scp -i "${KEY}" "${PWD}/builddir/meson-dist/gnome-disk-utility-${ARG}.tar.xz"
"${USERNAME}@master.gnome.org:"
+ ssh -i "${KEY}" "${USERNAME}@master.gnome.org" ftpadmin install "gnome-disk-utility-${ARG}.tar.xz"
+ echo "Success"
+else
+ echo "GNOME Disks ${ARG} (dry run)"
+fi
+if [ "${MINOR}" = "0" ]; then
+ echo "If this is a stable release, create the branch:"
+ echo "git branch gnome-${MAJOR} && git checkout gnome-${MAJOR} && git push ${REMOTE} && echo Success"
+fi
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]