summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorLinus Färnstrand <linus@mullvad.net>2025-04-08 09:40:44 +0200
committerLinus Färnstrand <linus@mullvad.net>2025-04-08 09:40:44 +0200
commitca7eba52b5ac9a63ba6d53747dbf9463cae19b33 (patch)
tree9eda90681cf7701a2762dc5815c3735b83e477d1
parent666455314b4339d7ee5200e750bf0c67631373a0 (diff)
parent1e15295e9a23d5ed2ce866ea70434845c4bb193b (diff)
downloadmullvadvpn-ca7eba52b5ac9a63ba6d53747dbf9463cae19b33.tar.xz
mullvadvpn-ca7eba52b5ac9a63ba6d53747dbf9463cae19b33.zip
Merge branch 'small-desktop-release-fixes'
-rwxr-xr-xdesktop/scripts/release/4-make-release8
-rwxr-xr-xdesktop/scripts/release/5-update-and-publish-metadata27
-rwxr-xr-xdesktop/scripts/release/download-release-artifacts11
-rw-r--r--desktop/scripts/release/release-config.sh8
4 files changed, 30 insertions, 24 deletions
diff --git a/desktop/scripts/release/4-make-release b/desktop/scripts/release/4-make-release
index 71f52a2acd..7274e50056 100755
--- a/desktop/scripts/release/4-make-release
+++ b/desktop/scripts/release/4-make-release
@@ -27,10 +27,10 @@ fi
PRODUCT_VERSION=$1
-ARTIFACT_DIR="./artifacts"
+# shellcheck source=desktop/scripts/release/release-config.sh
+source "$SCRIPT_DIR/release-config.sh"
-rm -rf $ARTIFACT_DIR
-mkdir -p $ARTIFACT_DIR
+rm -rf "$ARTIFACT_DIR" && mkdir -p "$ARTIFACT_DIR" || exit 1
function publish_release {
echo ">>> Downloading changelog"
@@ -85,5 +85,5 @@ function publish_release {
echo "The above URL contains the text \"untagged\", but don't worry it is tagged properly and everything will look correct once it's published."
}
-./download-release-artifacts "$PRODUCT_VERSION"
+./download-release-artifacts "$PRODUCT_VERSION" "$ARTIFACT_DIR"
publish_release
diff --git a/desktop/scripts/release/5-update-and-publish-metadata b/desktop/scripts/release/5-update-and-publish-metadata
index dd72c2d948..9c1e1d8417 100755
--- a/desktop/scripts/release/5-update-and-publish-metadata
+++ b/desktop/scripts/release/5-update-and-publish-metadata
@@ -1,7 +1,9 @@
#!/usr/bin/env bash
# This script downloads the build artifacts along with the signatures, verifies the signatures and
-# publishes new version metadata to Mullvads API. This should be run after `4-make-release`.
+# publishes new version metadata to Mullvads API.
+# * This should be run after `4-make-release`.
+# * You need to put the private ed25519 signing key in the clipboard before running this script.
set -eu
@@ -19,21 +21,14 @@ if [ $# -ne 3 ]; then
exit 1
fi
-# Duplicated from /scripts/utils/gh-ready-check
-if ! command -v gh > /dev/null; then
- echo "gh (GitHub CLI) is required to run this script"
- exit 1
-fi
-if ! gh auth status > /dev/null; then
- echo "Authentication through gh (GitHub CLI) is required to run this script"
- exit 1
-fi
-
PRODUCT_VERSION=$1
+# The hostname (can be the alias in your ~/.ssh/config) of the build server
BUILDSERVER_HOST=$2
+# The server to upload the metadata to *from* the build server (argument above)
METADATA_SERVER_HOST=$3
-ARTIFACT_DIR="./artifacts"
+# shellcheck source=desktop/scripts/release/release-config.sh
+source "$SCRIPT_DIR/release-config.sh"
function publish_metadata {
local platforms
@@ -55,11 +50,11 @@ function publish_metadata {
echo ""
echo ">>> Adding new release $PRODUCT_VERSION (rollout = 1)"
- mullvad-release add-release "$PRODUCT_VERSION" "${platforms[@]}" 1
+ mullvad-release add-release "$PRODUCT_VERSION" --rollout 1 "${platforms[@]}"
echo ""
- echo ">>> Signing $PRODUCT_VERSION metadata"
- mullvad-release sign "${platforms[@]}"
+ echo ">>> Signing $PRODUCT_VERSION metadata. Reading signing key from clipboard"
+ xclip -sensitive | mullvad-release sign "${platforms[@]}"
echo ""
echo ">>> Verifying signed metadata"
@@ -79,6 +74,6 @@ function remove_release_artifacts {
rm -r "$ARTIFACT_DIR"
}
-./download-release-artifacts "$PRODUCT_VERSION"
+./download-release-artifacts "$PRODUCT_VERSION" "$ARTIFACT_DIR"
publish_metadata
remove_release_artifacts
diff --git a/desktop/scripts/release/download-release-artifacts b/desktop/scripts/release/download-release-artifacts
index 8e8a77f0ad..aec0fbfe3e 100755
--- a/desktop/scripts/release/download-release-artifacts
+++ b/desktop/scripts/release/download-release-artifacts
@@ -7,19 +7,22 @@ set -eu
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
cd "$SCRIPT_DIR"
-if [ $# -ne 1 ]; then
+if [ $# -ne 2 ]; then
echo "Please provide the following arguments:"
echo " $(basename "$0") \\"
- echo " <product version>"
+ echo " <product version> \\"
+ echo " <artifact download directory> "
exit 1
fi
+# The app version to download
PRODUCT_VERSION=$1
+# The directory where the artifacts will be downloaded to
+ARTIFACT_DIR=$2
-ARTIFACT_DIR="./artifacts"
URL_BASE="https://releases.mullvad.net/desktop/releases"
-mkdir -p $ARTIFACT_DIR
+mkdir -p "$ARTIFACT_DIR"
# The signer key file "mullvad-code-signing-key.asc" is expected to exist in the current working directory.
SIGNER_KEY_FILE="./mullvad-code-signing-key.asc"
diff --git a/desktop/scripts/release/release-config.sh b/desktop/scripts/release/release-config.sh
new file mode 100644
index 0000000000..3e053da880
--- /dev/null
+++ b/desktop/scripts/release/release-config.sh
@@ -0,0 +1,8 @@
+#!/usr/bin/env bash
+
+# Configuration variables shared between the release scripts in this directory.
+
+# Where to download app installers locally during the release process.
+# This value is also hardcoded into the `mullvad-release` binary and
+# has to be in sync with that value
+export ARTIFACT_DIR="artifacts"