diff options
| author | David Lönnhager <david.l@mullvad.net> | 2025-03-20 15:09:41 +0100 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2025-03-20 15:09:41 +0100 |
| commit | f9c44d63533bcaaa91435b92abec1ba8cea25925 (patch) | |
| tree | d10bc627761d75f73a7dd73f70a671f3df9daf9c /ci | |
| parent | e5b0413051697ef6bfec7518b05a07537dbc31f5 (diff) | |
| parent | 45c92e37b9fd0c1f40e817d49b5de19e4922aa39 (diff) | |
| download | mullvadvpn-f9c44d63533bcaaa91435b92abec1ba8cea25925.tar.xz mullvadvpn-f9c44d63533bcaaa91435b92abec1ba8cea25925.zip | |
Merge branch 'add-upload-option-build-sh'
Diffstat (limited to 'ci')
| -rwxr-xr-x | ci/buildserver-upload.sh | 29 |
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 |
