[gnome-initial-setup] build: Automate tagging and pushing release



commit e2ccc8f68cde84713ec6819d03e648a84da518d9
Author: Will Thompson <wjt endlessm com>
Date:   Sat Apr 25 21:28:48 2020 +0100

    build: Automate tagging and pushing release
    
    Gradually automating https://wiki.gnome.org/MaintainersCorner/Releasing
    from the bottom up.

 build-aux/maintainer-upload-release | 31 +++++++++++++++++++++++++------
 build-aux/meson.build               |  3 ++-
 2 files changed, 27 insertions(+), 7 deletions(-)
---
diff --git a/build-aux/maintainer-upload-release b/build-aux/maintainer-upload-release
index f533600..8da13d2 100755
--- a/build-aux/maintainer-upload-release
+++ b/build-aux/maintainer-upload-release
@@ -1,7 +1,26 @@
 #!/bin/bash
-set -e
-tarball="${1:?tarball filename is required}"
-cd "${MESON_BUILD_ROOT}/meson-dist"
-[[ -e "$tarball" ]]
-scp "$tarball" master.gnome.org:
-ssh master.gnome.org ftpadmin install "$tarball"
+set -ex
+: "${MESON_BUILD_ROOT:?}"
+: "${MESON_SOURCE_ROOT:?}"
+project_name="${1:?project name is required}"
+project_version="${2:?project version is required}"
+tarball_basename="${project_name}-${project_version}.tar.xz"
+tarball_path="${MESON_BUILD_ROOT}/meson-dist/${tarball_basename}"
+[[ -e "$tarball_path" ]]  # ninja dist must have been successful
+
+gnome_series=${project_version%.*}
+expected_branch=gnome-${gnome_series/./-}
+
+pushd "$MESON_SOURCE_ROOT"
+    branch=$(git rev-parse --abbrev-ref HEAD)
+    if [[ "$branch" != "master" ]] && [[ "$branch" != "$expected_branch" ]]; then
+        echo "Project version $project_version does not match branch $branch" >&2
+        exit 1
+    fi
+    git tag -s "$project_version" -m "Version $project_version"
+    git push --atomic origin "$branch" "$project_version"
+popd
+
+scp "$tarball_path" master.gnome.org:
+# shellcheck disable=SC2029
+ssh master.gnome.org ftpadmin install "$tarball_basename"
diff --git a/build-aux/meson.build b/build-aux/meson.build
index 04ce5de..ab4cbea 100644
--- a/build-aux/meson.build
+++ b/build-aux/meson.build
@@ -1,3 +1,4 @@
 run_target('maintainer-upload-release',
   command: ['maintainer-upload-release',
-            '@0@-@1  tar xz'.format(meson.project_name(), meson.project_version())])
+            meson.project_name(),
+            meson.project_version()])


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]