summaryrefslogtreecommitdiffhomepage
path: root/ci/buildserver-upload.sh
blob: cf2a88a0d63097b9637e04a45b152cfcf3c27358 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/usr/bin/env bash

UPLOAD_DIR="/home/upload/upload"

set -eu
shopt -s nullglob

cd $UPLOAD_DIR

while true; do
  sleep 10
  for f_checksum in MullvadVPN-*.{deb,rpm,exe,pkg,apk,aab}.sha256; do
    sleep 1
    f="${f_checksum/.sha256/}"
    if ! sha256sum --quiet -c "$f_checksum"; then
      echo "Failed to verify checksum for $f"
      continue
    fi

    version=$(echo "$f" | sed -Ee 's/MullvadVPN-(.*)(\.exe|\.pkg|_amd64\.deb|_x86_64\.rpm|\.apk|\.aab)/\1/g')
    if [[ $version == *"-dev-"* ]]; then
        upload_path="builds"
    else
        upload_path="releases"
    fi

    rsync -av --rsh='ssh -p 1122' "$f" "build@releases.mullvad.net:$upload_path/$version/" || continue

    rm -f "$f.asc"
    gpg -u A1198702FC3E0A09A9AE5B75D5A1D4F266DE8DDF --pinentry-mode loopback --sign --armor --detach-sign "$f"
    rsync -av --rsh='ssh -p 1122' "$f.asc" "build@releases.mullvad.net:$upload_path/$version/" || continue
    yes | rm "$f" "$f_checksum" "$f.asc"
  done

  # Upload PDB files (Windows debugging info)
  for f_checksum in pdb-*.sha256; do
    sleep 1
    f="${f_checksum/.sha256/}"
    if ! sha256sum --quiet -c "$f_checksum"; then
      echo "Failed to verify checksum for $f"
      continue
    fi

    rsync -av --rsh='ssh -p 1122' "$f" "build@releases.mullvad.net:builds/pdb/" || continue
    yes | rm "$f" "$f_checksum"
  done
done