From dc8936ba8758c2cd56ebbd7a82c3b4cffa0db808 Mon Sep 17 00:00:00 2001 From: "J. Ryan Stinnett" Date: Wed, 15 Apr 2020 18:12:02 +0100 Subject: [PATCH] Add a release script This adds a release script based on the JS SDK one used elsewhere for Riot. It disables pushing to NPM, since that's not relevant here. Fixes https://github.com/vector-im/riot-web/issues/13176 --- .gitignore | 1 + release.sh | 60 +++++++++++++++++++++++++++++++++++++++++++++ release_config.yaml | 1 + 3 files changed, 62 insertions(+) create mode 100755 release.sh create mode 100644 release_config.yaml diff --git a/.gitignore b/.gitignore index d9931d1..a049439 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ /.hak /.yarnrc /docker +/.npmrc diff --git a/release.sh b/release.sh new file mode 100755 index 0000000..ce2bd3c --- /dev/null +++ b/release.sh @@ -0,0 +1,60 @@ +#!/bin/bash +# +# Script to perform a release of riot-desktop. +# +# Requires githib-changelog-generator; to install, do +# pip install git+https://github.com/matrix-org/github-changelog-generator.git + +set -e + +cd `dirname $0` + +for i in matrix-js-sdk +do + echo "Checking version of $i..." + depver=`cat package.json | jq -r .devDependencies[\"$i\"]` + latestver=`yarn info -s $i dist-tags.next` + if [ "$depver" != "$latestver" ] + then + echo "The latest version of $i is $latestver but package.json depends on $depver." + echo -n "Type 'u' to auto-upgrade, 'c' to continue anyway, or 'a' to abort:" + read resp + if [ "$resp" != "u" ] && [ "$resp" != "c" ] + then + echo "Aborting." + exit 1 + fi + if [ "$resp" == "u" ] + then + echo "Upgrading $i to $latestver..." + yarn add -ED $i@$latestver + git add -u + # The `-e` flag opens the editor and gives you a chance to check + # the upgrade for correctness. + git commit -m "Upgrade $i to $latestver" -e + fi + fi +done + +./node_modules/matrix-js-sdk/release.sh -n -z "$@" + +release="${1#v}" +prerelease=0 +# We check if this build is a prerelease by looking to +# see if the version has a hyphen in it. Crude, +# but semver doesn't support postreleases so anything +# with a hyphen is a prerelease. +echo $release | grep -q '-' && prerelease=1 + +if [ $prerelease -eq 0 ] +then + # For a release, reset SDK deps back to the `develop` branch. + for i in matrix-js-sdk + do + echo "Resetting $i to develop branch..." + yarn add -D github:matrix-org/$i#develop + git add -u + git commit -m "Reset $i back to develop branch" + done + git push origin develop +fi diff --git a/release_config.yaml b/release_config.yaml new file mode 100644 index 0000000..49d7ccd --- /dev/null +++ b/release_config.yaml @@ -0,0 +1 @@ +signing_id: releases@riot.im