diff options
| author | Oskar <oskar@mullvad.net> | 2025-06-27 13:44:15 +0200 |
|---|---|---|
| committer | Oskar <oskar@mullvad.net> | 2025-06-27 13:44:15 +0200 |
| commit | a58f7ac6633ca3e82cc75c72f96aa5bc740a53f3 (patch) | |
| tree | 5c0156db385ef6bac0ce5b5a36f70d583f895389 | |
| parent | 915efd1889adb45f1a0bc0781383fb37995970f7 (diff) | |
| download | mullvadvpn-automate-release-process.tar.xz mullvadvpn-automate-release-process.zip | |
Add script to handle verification and publishing of releaseautomate-release-process
| -rw-r--r-- | ci/buildserver-config.sh | 3 | ||||
| -rw-r--r-- | ci/buildserver-handle-release.sh | 33 | ||||
| -rwxr-xr-x | ci/buildserver-upload.sh | 12 |
3 files changed, 46 insertions, 2 deletions
diff --git a/ci/buildserver-config.sh b/ci/buildserver-config.sh index 4f3f7eb2a4..9cdd13fc7c 100644 --- a/ci/buildserver-config.sh +++ b/ci/buildserver-config.sh @@ -21,4 +21,7 @@ export CARGO_REGISTRY_VOLUME_NAME="cargo-registry" # buildserver-upload.sh should pick artifacts to upload export UPLOAD_DIR="PLEASE CONFIGURE ME" +export RELEASE_SCRIPT_DIR="PLEASE CONFIGURE ME" +export RELEASE_INBOX_DIR="/tmp/release-inbox" + export CODE_SIGNING_KEY_FINGERPRINT="A1198702FC3E0A09A9AE5B75D5A1D4F266DE8DDF" diff --git a/ci/buildserver-handle-release.sh b/ci/buildserver-handle-release.sh new file mode 100644 index 0000000000..53ca8dcf9d --- /dev/null +++ b/ci/buildserver-handle-release.sh @@ -0,0 +1,33 @@ +#!/usr/bin/env bash + +set -eu +shopt -s nullglob globstar + +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +cd "$SCRIPT_DIR" + +# shellcheck source=ci/buildserver-config.sh +source "$SCRIPT_DIR/buildserver-config.sh" + +while true; do + sleep 10 + + for version_dir in "$RELEASE_INBOX_DIR"/*; do + version=$(basename "$version_dir") + pkg_name="MullvadVPN-$version" + + for ext in .exe _arm64.exe _x64.exe _amd64.deb _arm64.deb _x86_64.rpm _aarch64.rpm .pkg; do + pkg_filename="$pkg_name$ext" + if ! [ -f "$version_dir/$pkg_filename" ]; then + continue 2 + fi + + "$RELEASE_SCRIPT_DIR/verify-artifacts.sh" "$pkg_filename" + done + + ./release-scripts/3-verify-build "$version" --wait + ./release-scripts/publish-github-release.sh "$version" "$version_dir" + + rm -f "$version_dir/$pkg_name"* + done +done diff --git a/ci/buildserver-upload.sh b/ci/buildserver-upload.sh index ebfa923f53..0638aacf36 100755 --- a/ci/buildserver-upload.sh +++ b/ci/buildserver-upload.sh @@ -35,11 +35,13 @@ while true; do continue fi + release="false" if [[ "$platform" == "installer-downloader" ]]; then upload_path="desktop/installer-downloader" elif [[ $version == *"-dev-"* ]]; then upload_path="$platform/builds" else + release="true" upload_path="$platform/releases" fi @@ -60,11 +62,17 @@ while true; do if [[ $filename == MullvadVPN-* || $filename == Install* ]]; then rm -f "$file.asc" - gpg -u $CODE_SIGNING_KEY_FINGERPRINT --pinentry-mode loopback --sign --armor --detach-sign "$file" + gpg -u "$CODE_SIGNING_KEY_FINGERPRINT" --pinentry-mode loopback --sign --armor --detach-sign "$file" rsync_upload "$file.asc" "$file_upload_dir/" || continue - rm -f "$file.asc" fi + if [[ $release == "true" ]] && [[ $filename == MullvadVPN-* ]]; then + version_inbox_dir="$RELEASE_INBOX_DIR/$version" + mkdir -p "$version_inbox_dir" + cp "$file" "$file.asc" "$version_inbox_dir" + fi + + rm -f "$file.asc" # shellcheck disable=SC2216 yes | rm "$file" done |
