diff options
Diffstat (limited to 'build-aux/maintainer-upload-release')
-rwxr-xr-x | build-aux/maintainer-upload-release | 32 |
1 files changed, 32 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" |