summaryrefslogtreecommitdiffhomepage
path: root/ci
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2025-03-20 15:09:41 +0100
committerDavid Lönnhager <david.l@mullvad.net>2025-03-20 15:09:41 +0100
commitf9c44d63533bcaaa91435b92abec1ba8cea25925 (patch)
treed10bc627761d75f73a7dd73f70a671f3df9daf9c /ci
parente5b0413051697ef6bfec7518b05a07537dbc31f5 (diff)
parent45c92e37b9fd0c1f40e817d49b5de19e4922aa39 (diff)
downloadmullvadvpn-f9c44d63533bcaaa91435b92abec1ba8cea25925.tar.xz
mullvadvpn-f9c44d63533bcaaa91435b92abec1ba8cea25925.zip
Merge branch 'add-upload-option-build-sh'
Diffstat (limited to 'ci')
-rwxr-xr-xci/buildserver-upload.sh29
1 files changed, 18 insertions, 11 deletions
diff --git a/ci/buildserver-upload.sh b/ci/buildserver-upload.sh
index fde7c192b8..f09ae11ea0 100755
--- a/ci/buildserver-upload.sh
+++ b/ci/buildserver-upload.sh
@@ -1,7 +1,7 @@
#!/usr/bin/env bash
set -eu
-shopt -s nullglob
+shopt -s nullglob globstar
CODE_SIGNING_KEY_FINGERPRINT="A1198702FC3E0A09A9AE5B75D5A1D4F266DE8DDF"
@@ -23,35 +23,42 @@ function rsync_upload {
while true; do
sleep 10
- for checksums_path in *.sha256; do
+ for checksums_path in **/*.sha256; do
sleep 1
+ checksums_dir=$(dirname "$checksums_path")
+ checksums_filename=$(basename "$checksums_path")
+
# Parse the platform name and version out of the filename of the checksums file.
- platform="$(echo "$checksums_path" | cut -d + -f 1)"
- version="$(echo "$checksums_path" | cut -d + -f 3,4 | sed 's/\.sha256//')"
- if ! sha256sum --quiet -c "$checksums_path"; then
+ platform="$(echo "$checksums_filename" | cut -d + -f 1)"
+ version="$(echo "$checksums_filename" | cut -d + -f 3,4 | sed 's/\.sha256//')"
+ if ! (cd "$checksums_dir" && sha256sum --quiet -c "$checksums_filename"); then
echo "Failed to verify checksums for $version"
continue
fi
- if [[ $version == *"-dev-"* ]]; then
+ if [[ "$platform" == "installer-downloader" ]]; then
+ upload_path="desktop/installer-downloader"
+ elif [[ $version == *"-dev-"* ]]; then
upload_path="$platform/builds"
else
upload_path="$platform/releases"
fi
- files=$(awk '{print $2}' < "$checksums_path")
- for file in $files; do
+ readarray -t files < <(cut -f 2- -d ' ' < "$checksums_path" | sed 's/^\*\(.*\)/\1/')
+ for filename in "${files[@]}"; do
+ file="$checksums_dir/$filename"
+
file_upload_dir="$upload_path/$version"
- if [[ $platform == "desktop" && ! $file == MullvadVPN-* ]]; then
+ if [[ $platform == "desktop" && ! $filename == MullvadVPN-* ]]; then
file_upload_dir="$file_upload_dir/additional-files"
- elif [[ $platform == "android" && ! $file =~ MullvadVPN-"$version"(.apk|.play.apk|.play.aab) ]]; then
+ elif [[ $platform == "android" && ! $filename =~ MullvadVPN-"$version"(.apk|.play.apk|.play.aab) ]]; then
file_upload_dir="$file_upload_dir/additional-files"
fi
rsync_upload "$file" "$file_upload_dir/" || continue
- if [[ $file == MullvadVPN-* ]]; then
+ if [[ $filename == MullvadVPN-* || $filename == Install* ]]; then
rm -f "$file.asc"
gpg -u $CODE_SIGNING_KEY_FINGERPRINT --pinentry-mode loopback --sign --armor --detach-sign "$file"
rsync_upload "$file.asc" "$file_upload_dir/" || continue