Skip to content

Commit d7f8c78

Browse files
authored
Update installed version of static linux SDK to 0.1.0 (#241)
1 parent bca81f7 commit d7f8c78

1 file changed

Lines changed: 41 additions & 10 deletions

File tree

.github/workflows/scripts/install-and-build-with-sdk.sh

Lines changed: 41 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ SWIFT_API_INSTALL_ROOT="https://www.swift.org/api/v1/install"
202202
# and gets the checksum for the patch version's Static Linux and/or Wasm Swift SDK.
203203
#
204204
# $1 (string): A minor Swift version, e.g. "6.1"
205-
# Output: A string of the form "<patch-version>|<android-checksum>|<static-checksum>|<wasm-checksum>
205+
# Output: A string of the form "<patch-version>|<android-checksum>|<static-checksum>|<static-version>|<wasm-checksum>
206206
find_latest_swift_version() {
207207
local minor_version="$1"
208208

@@ -245,6 +245,7 @@ find_latest_swift_version() {
245245
fi
246246

247247
local static_linux_sdk_checksum=""
248+
local static_linux_sdk_version=""
248249
if [[ "$INSTALL_STATIC_LINUX" == true ]]; then
249250
static_linux_sdk_checksum=$(echo "$releases_json" | jq -r --arg version "$latest_version" '
250251
.[]
@@ -259,6 +260,20 @@ find_latest_swift_version() {
259260
fi
260261

261262
log "Found Static Linux Swift SDK checksum: ${static_linux_sdk_checksum:0:12}..."
263+
264+
static_linux_sdk_version=$(echo "$releases_json" | jq -r --arg version "$latest_version" '
265+
.[]
266+
| select(.name == $version)
267+
| .platforms[]
268+
| select(.platform == "static-sdk")
269+
| .version
270+
')
271+
272+
if [[ -z "$static_linux_sdk_version" ]]; then
273+
fatal "No Static Linux Swift SDK version found for Swift $latest_version"
274+
fi
275+
276+
log "Found Static Linux Swift SDK version: ${static_linux_sdk_version}"
262277
fi
263278

264279
local wasm_sdk_checksum=""
@@ -278,7 +293,7 @@ find_latest_swift_version() {
278293
log "Found Swift SDK for Wasm checksum: ${wasm_sdk_checksum:0:12}..."
279294
fi
280295

281-
echo "${latest_version}|${android_sdk_checksum}|${static_linux_sdk_checksum}|${wasm_sdk_checksum}"
296+
echo "${latest_version}|${android_sdk_checksum}|${static_linux_sdk_checksum}|${static_linux_sdk_version}|${wasm_sdk_checksum}"
282297
}
283298

284299
# Finds the latest Android or Static Linux or Wasm
@@ -287,8 +302,8 @@ find_latest_swift_version() {
287302
#
288303
# $1 (string): Nightly Swift version, e.g. "6.2" or "main"
289304
# $2 (string): "android" or "static" or "wasm"
290-
# Output: A string of the form "<snapshot>|<sdk-checksum>",
291-
# e.g. "swift-6.2-DEVELOPMENT-SNAPSHOT-2025-07-29-a|<sdk-checksum>"
305+
# Output: A string of the form "<snapshot>|<sdk-checksum>|<download-filename>",
306+
# e.g. "swift-6.2-DEVELOPMENT-SNAPSHOT-2025-07-29-a|<sdk-checksum>|swift-6.2-DEVELOPMENT-SNAPSHOT-2025-07-29-a_static-linux-0.0.1.artifactbundle.tar.gz"
292307
find_latest_sdk_snapshot() {
293308
local version="$1"
294309
local sdk_name="$2"
@@ -319,7 +334,17 @@ find_latest_sdk_snapshot() {
319334

320335
log "Found ${sdk_name}-sdk checksum: ${checksum:0:12}..."
321336

322-
echo "${snapshot_tag}|${checksum}"
337+
# Extract the download filename
338+
local download
339+
download=$(echo "$sdk_json" | jq -r '.[0].download')
340+
341+
if [[ -z "$download" || "$download" == "null" ]]; then
342+
fatal "No download filename found for ${sdk_name}-sdk snapshot"
343+
fi
344+
345+
log "Found ${sdk_name}-sdk download filename: $download"
346+
347+
echo "${snapshot_tag}|${checksum}|${download}"
323348
}
324349

325350
SWIFT_VERSION_BRANCH=""
@@ -329,6 +354,8 @@ ANDROID_SDK_PATH_SEP="-"
329354

330355
STATIC_LINUX_SDK_TAG=""
331356
STATIC_LINUX_SDK_CHECKSUM=""
357+
STATIC_LINUX_SDK_VERSION=""
358+
STATIC_LINUX_SDK_FILENAME=""
332359
WASM_SDK_TAG=""
333360
WASM_SDK_CHECKSUM=""
334361

@@ -353,6 +380,7 @@ if [[ "$SWIFT_VERSION_INPUT" == nightly-* ]]; then
353380

354381
STATIC_LINUX_SDK_TAG=$(echo "$static_linux_sdk_info" | cut -d'|' -f1)
355382
STATIC_LINUX_SDK_CHECKSUM=$(echo "$static_linux_sdk_info" | cut -d'|' -f2)
383+
STATIC_LINUX_SDK_FILENAME=$(echo "$static_linux_sdk_info" | cut -d'|' -f3)
356384
fi
357385

358386
if [[ "$INSTALL_WASM" == true ]]; then
@@ -372,9 +400,11 @@ else
372400

373401
STATIC_LINUX_SDK_TAG="swift-${latest_version}-RELEASE"
374402
STATIC_LINUX_SDK_CHECKSUM=$(echo "$latest_version_info" | cut -d'|' -f3)
403+
STATIC_LINUX_SDK_VERSION=$(echo "$latest_version_info" | cut -d'|' -f4)
404+
STATIC_LINUX_SDK_FILENAME="${STATIC_LINUX_SDK_TAG}_static-linux-${STATIC_LINUX_SDK_VERSION}.artifactbundle.tar.gz"
375405

376406
WASM_SDK_TAG="swift-${latest_version}-RELEASE"
377-
WASM_SDK_CHECKSUM=$(echo "$latest_version_info" | cut -d'|' -f4)
407+
WASM_SDK_CHECKSUM=$(echo "$latest_version_info" | cut -d'|' -f5)
378408
fi
379409

380410
# Validate that required Swift SDK tags are set
@@ -692,16 +722,17 @@ install_android_sdk() {
692722
}
693723

694724
install_static_linux_sdk() {
725+
local sdk_name="${STATIC_LINUX_SDK_FILENAME%.artifactbundle.tar.gz}"
726+
695727
# Check if the Static Linux Swift SDK is already installed
696-
if "$SWIFT_EXECUTABLE_FOR_STATIC_LINUX_SDK" sdk list 2>/dev/null | grep -q "^${STATIC_LINUX_SDK_TAG}_static-linux-0.0.1"; then
728+
if "$SWIFT_EXECUTABLE_FOR_STATIC_LINUX_SDK" sdk list 2>/dev/null | grep -q "^${sdk_name}"; then
697729
log "✅ Static Linux Swift SDK ${STATIC_LINUX_SDK_TAG} is already installed, skipping installation"
698730
return 0
699731
fi
700732

701733
log "Installing Static Linux Swift SDK: $STATIC_LINUX_SDK_TAG"
702734

703-
local static_linux_sdk_filename="${STATIC_LINUX_SDK_TAG}_static-linux-0.0.1.artifactbundle.tar.gz"
704-
local sdk_url="${STATIC_LINUX_SDK_DOWNLOAD_ROOT}/${STATIC_LINUX_SDK_TAG}/${static_linux_sdk_filename}"
735+
local sdk_url="${STATIC_LINUX_SDK_DOWNLOAD_ROOT}/${STATIC_LINUX_SDK_TAG}/${STATIC_LINUX_SDK_FILENAME}"
705736

706737
if ! swift_sdk_install_with_retry "$SWIFT_EXECUTABLE_FOR_STATIC_LINUX_SDK" "$sdk_url" "$STATIC_LINUX_SDK_CHECKSUM" "Static Linux Swift"; then
707738
fatal "Failed to install Static Linux Swift SDK"
@@ -782,7 +813,7 @@ build() {
782813
if [[ "$INSTALL_STATIC_LINUX" == true ]]; then
783814
log "Running Swift build with Static Linux Swift SDK"
784815

785-
local sdk_name="${STATIC_LINUX_SDK_TAG}_static-linux-0.0.1"
816+
local sdk_name="${STATIC_LINUX_SDK_FILENAME%.artifactbundle.tar.gz}"
786817
alias swift='$SWIFT_EXECUTABLE_FOR_STATIC_LINUX_SDK'
787818
local build_command="$SWIFT_BUILD_COMMAND --swift-sdk $sdk_name"
788819
if [[ -n "$SWIFT_BUILD_FLAGS" ]]; then

0 commit comments

Comments
 (0)