summaryrefslogtreecommitdiffstats
path: root/build-aux
diff options
context:
space:
mode:
Diffstat (limited to 'build-aux')
-rwxr-xr-xbuild-aux/maintainer-upload-release32
-rw-r--r--build-aux/meson.build4
2 files changed, 36 insertions, 0 deletions
diff --git a/build-aux/maintainer-upload-release b/build-aux/maintainer-upload-release
new file mode 100755
index 0000000..3893c5b
--- /dev/null
+++ b/build-aux/maintainer-upload-release
@@ -0,0 +1,32 @@
+#!/bin/bash
+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
+ if type git-evtag &>/dev/null; then
+ # Can't specify tag message on command line
+ # https://github.com/cgwalters/git-evtag/issues/9
+ EDITOR=true git evtag sign "$project_version"
+ else
+ git tag -s "$project_version" -m "Version $project_version"
+ fi
+ 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
new file mode 100644
index 0000000..ab4cbea
--- /dev/null
+++ b/build-aux/meson.build
@@ -0,0 +1,4 @@
+run_target('maintainer-upload-release',
+ command: ['maintainer-upload-release',
+ meson.project_name(),
+ meson.project_version()])