summaryrefslogtreecommitdiffstats
path: root/testing/get-swift.sh
blob: 3e780824157e3c94c4ef442596e3d3b9db903b55 (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
#!/usr/bin/env bash
# This is a script used in CI to install swift
set -euo pipefail

. /etc/lsb-release
if [ "$DISTRIB_CODENAME" = "jammy" ]; then
    SWIFT_URL='https://download.swift.org/swift-5.7.1-release/ubuntu2204/swift-5.7.1-RELEASE/swift-5.7.1-RELEASE-ubuntu22.04.tar.gz'
    SWIFT_HASH='7f60291f5088d3e77b0c2364beaabd29616ee7b37260b7b06bdbeb891a7fe161'
else
    echo "unknown dist: ${DISTRIB_CODENAME}" 1>&2
    exit 1
fi

check() {
    echo "$SWIFT_HASH  $TGZ" | sha256sum --check
}

TGZ="$HOME/.swift/swift.tar.gz"
mkdir -p "$(dirname "$TGZ")"
if ! check >& /dev/null; then
    rm -f "$TGZ"
    curl --location --silent --output "$TGZ" "$SWIFT_URL"
    check
fi

mkdir -p /tmp/swift
tar -xf "$TGZ" --strip 1 --directory /tmp/swift

echo '##vso[task.prependpath]/tmp/swift/usr/bin'