Files
runner-images/images/ubuntu/scripts/build/install-swift.sh
T

59 lines
2.4 KiB
Bash
Raw Normal View History

2020-10-07 13:49:40 +05:00
#!/bin/bash -e
2020-03-24 09:27:15 +03:00
################################################################################
2023-11-22 21:49:23 +01:00
## File: install-swift.sh
## Desc: Install Swift
2020-03-24 09:27:15 +03:00
################################################################################
2021-03-30 15:23:57 +03:00
# Source the helpers for use with the script
source $HELPER_SCRIPTS/install.sh
source $HELPER_SCRIPTS/etc-environment.sh
2020-12-29 10:02:46 +03:00
2020-03-27 13:55:47 +03:00
# Install
image_label="ubuntu$(lsb_release -rs)"
2023-07-28 20:18:41 +02:00
swift_version=$(curl -fsSL "https://api.github.com/repos/apple/swift/releases/latest" | jq -r '.tag_name | match("[0-9.]+").string')
swift_release_name="swift-${swift_version}-RELEASE-${image_label}"
2020-03-24 15:56:42 +03:00
archive_url="https://swift.org/builds/swift-${swift_version}-release/${image_label//./}/swift-${swift_version}-RELEASE/${swift_release_name}.tar.gz"
archive_path=$(download_with_retry "$archive_url")
2020-10-07 13:49:40 +05:00
2024-03-14 10:53:11 +01:00
# Verifying PGP signature using official Swift PGP key. Referring to https://www.swift.org/install/linux/#Installation-via-Tarball
2024-04-11 14:28:25 +02:00
# Download and import Swift PGP keys
gpg --keyserver hkps://keyserver.ubuntu.com:443 \
2024-04-11 14:28:25 +02:00
--recv-keys \
'7463 A81A 4B2E EA1B 551F FBCF D441 C977 412B 37AD' \
'1BE1 E29A 084C B305 F397 D62A 9F59 7F4D 21A5 6D5F' \
'A3BA FD35 56A5 9079 C068 94BD 63BC 1CFE 91D3 06C6' \
'5E4D F843 FB06 5D7F 7E24 FBA2 EF54 30F0 71E1 B235' \
'8513 444E 2DA3 6B7C 1659 AF4D 7638 F1FB 2B2B 08C4' \
'A62A E125 BBBF BB96 A6E0 42EC 925C C1CC ED3D 1561' \
'8A74 9566 2C3C D4AE 18D9 5637 FAF6 989E 1BC1 6FEA' \
2024-09-18 03:11:29 +05:30
'E813 C892 820A 6FA1 3755 B268 F167 DF1A CF9C E069' \
'52BB 7E3D E28A 71BE 22EC 05FF EF80 A866 B47A 981F'
gpg --keyserver hkps://keyserver.ubuntu.com:443 --refresh-keys Swift
# Download and verify signature
signature_path=$(download_with_retry "${archive_url}.sig")
2024-04-11 14:28:25 +02:00
gpg --verify "$signature_path" "$archive_path"
2024-03-14 10:53:11 +01:00
# Remove Swift PGP public key with temporary keyring
2024-04-11 14:28:25 +02:00
rm -rf ~/.gnupg
# Extract and install swift
tar xzf "$archive_path" -C /tmp
2020-03-24 15:56:42 +03:00
SWIFT_INSTALL_ROOT="/usr/share/swift"
2023-12-29 12:36:27 +01:00
swift_bin_root="$SWIFT_INSTALL_ROOT/usr/bin"
swift_lib_root="$SWIFT_INSTALL_ROOT/usr/lib"
mv "/tmp/${swift_release_name}" $SWIFT_INSTALL_ROOT
mkdir -p /usr/local/lib
2023-12-29 12:36:27 +01:00
ln -s "$swift_bin_root/swift" /usr/local/bin/swift
ln -s "$swift_bin_root/swiftc" /usr/local/bin/swiftc
ln -s "$swift_lib_root/libsourcekitdInProc.so" /usr/local/lib/libsourcekitdInProc.so
2023-12-29 12:36:27 +01:00
set_etc_environment_variable "SWIFT_PATH" "${swift_bin_root}"
2020-03-24 09:27:15 +03:00
2021-11-07 16:07:58 +00:00
invoke_tests "Common" "Swift"