Skip to content

Commit 4927569

Browse files
committed
1 parent 78c5f7a commit 4927569

File tree

5 files changed

+22
-29
lines changed

5 files changed

+22
-29
lines changed

swift-ci/sdks/android/Dockerfile

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ ARG ZLIB_VERSION=1.3.1
1818
# Architecture to build on (empty means x86-64)
1919
ARG OS_ARCH_SUFFIX=
2020

21-
# the branch name to use for the Swift build
22-
ARG SWIFT_BRANCH=
21+
# the Swift toolchain URL to download
22+
ARG SWIFT_TOOLCHAIN_URL=
2323

2424
# ............................................................................
2525

@@ -53,18 +53,16 @@ ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069
5353
ARG SWIFT_PLATFORM=ubuntu
5454
ARG OS_MAJOR_VER=24
5555
ARG OS_MINOR_VER=04
56-
ARG SWIFT_WEBROOT=https://download.swift.org/$SWIFT_BRANCH
5756

5857
ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \
5958
SWIFT_PLATFORM=$SWIFT_PLATFORM \
6059
OS_MAJOR_VER=$OS_MAJOR_VER \
6160
OS_MINOR_VER=$OS_MINOR_VER \
62-
OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER.$OS_MINOR_VER \
63-
SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_MINOR_VER$OS_ARCH_SUFFIX"
61+
OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER.$OS_MINOR_VER
6462

6563
COPY scripts/install-swift.sh /scripts/install-swift.sh
6664
RUN chmod ugo+x /scripts/install-swift.sh
67-
RUN /scripts/install-swift.sh
65+
RUN /scripts/install-swift.sh "${SWIFT_TOOLCHAIN_URL}"
6866
ENV PATH="/usr/local/swift/bin:${PATH}"
6967

7068
ARG ANDROID_NDK_VERSION=android-ndk-r27c

swift-ci/sdks/android/build

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#!/bin/bash
1+
#!/bin/bash -ex
22
#
33
# ===----------------------------------------------------------------------===
44
#
@@ -45,11 +45,16 @@ case "${BUILD_VERSION}" in
4545
;;
4646
esac
4747

48+
# FIXME: this is the host operating system, but we need the Docker OS
49+
HOST_OS=ubuntu24.04
50+
SWIFT_BASE=$SWIFT_TAG-$HOST_OS
51+
SWIFT_TOOLCHAIN_URL="https://download.swift.org/$SWIFT_BRANCH/$(echo $HOST_OS | tr -d '.')/$SWIFT_TAG/$SWIFT_BASE.tar.gz"
52+
4853
ANDROID_API=28
4954
ANDROID_NDK_VERSION=android-ndk-r27c
5055

5156
# Build the Docker image
52-
$DOCKER build --build-arg OS_ARCH_SUFFIX=$OS_ARCH_SUFFIX --build-arg SWIFT_BRANCH=$SWIFT_BRANCH --build-arg ANDROID_NDK_VERSION=$ANDROID_NDK_VERSION -t swift-android .
57+
$DOCKER build --build-arg OS_ARCH_SUFFIX=$OS_ARCH_SUFFIX --build-arg SWIFT_TOOLCHAIN_URL=$SWIFT_TOOLCHAIN_URL --build-arg ANDROID_NDK_VERSION=$ANDROID_NDK_VERSION -t swift-android .
5358

5459
# Check-out the sources
5560
scripts/fetch-source.sh --source-dir source --swift-tag ${SWIFT_TAG}

swift-ci/sdks/android/build-local

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,13 @@ case "${BUILD_VERSION}" in
4141
esac
4242

4343
SWIFT_BASE=$SWIFT_TAG-$HOST_OS
44+
SWIFT_TOOLCHAIN_URL="https://download.swift.org/$SWIFT_BRANCH/$(echo $HOST_OS | tr -d '.')/$SWIFT_TAG/$SWIFT_BASE.tar.gz"
4445

4546
if [[ ! -d "$SWIFT_ROOT/$SWIFT_BASE" ]]; then
4647
mkdir -p $SWIFT_ROOT
4748
pushd $SWIFT_ROOT
4849

49-
SWIFT_URL="https://download.swift.org/$SWIFT_BRANCH/$(echo $HOST_OS | tr -d '.')/$SWIFT_TAG/$SWIFT_BASE.tar.gz"
50-
wget -q $SWIFT_URL
50+
wget -q $SWIFT_TOOLCHAIN_URL
5151
tar xzf $SWIFT_BASE.tar.gz
5252

5353
popd

swift-ci/sdks/android/scripts/build.sh

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -256,16 +256,13 @@ quiet_pushd ${source_dir}/swift-project
256256
for patch in "$swift_android_patch" "$testing_patch"; do
257257
echo "applying patch $patch in $PWD"
258258

259-
if git apply --reverse --check "$patch" >/dev/null 2>&1 ; then
259+
if git apply -C1 --reverse --check "$patch" >/dev/null 2>&1 ; then
260260
echo "already patched"
261-
elif git apply "$patch" ; then
261+
elif git apply -C1 "$patch" ; then
262262
echo "done"
263263
else
264264
echo "failed to apply patch $patch in $PWD"
265-
# tolerate failed patches in trunk for now
266-
if [[ "${BUILD_VERSION}" != 'trunk' ]]; then
267-
exit 1
268-
fi
265+
exit 1
269266
fi
270267
done
271268

swift-ci/sdks/android/scripts/install-swift.sh

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,8 @@
88

99
set -e
1010

11-
echo "Installing Swift"
12-
13-
# Get latest toolchain info
14-
latest_build=$(curl -s ${SWIFT_WEBROOT}/latest-build.yml)
15-
download=$(echo "$latest_build" | grep '^download: ' | sed 's/^download: //g')
16-
download_signature=$(echo "$latest_build " | grep '^download_signature: ' | sed 's/^download_signature: //g')
17-
download_dir=$(echo "$latest_build" | grep '^dir: ' | sed 's/^dir: //g')
18-
19-
echo "Latest build is ${download_dir}"
11+
SWIFT_TOOLCHAIN_URL=$1
12+
echo "Installing Swift from: ${SWIFT_TOOLCHAIN_URL}"
2013

2114
# Make a temporary directory
2215
tmpdir=$(mktemp -d)
@@ -29,13 +22,13 @@ pushd "$tmpdir" >/dev/null
2922
export GNUPGHOME="$tmpdir"
3023

3124
# Fetch the toolchain and signature
32-
echo "Going to fetch ${SWIFT_WEBROOT}/${download_dir}/${download}"
25+
echo "Going to fetch ${SWIFT_TOOLCHAIN_URL}"
3326

34-
curl -fsSL "${SWIFT_WEBROOT}/${download_dir}/${download}" -o toolchain.tar.gz
27+
curl -fsSL "${SWIFT_TOOLCHAIN_URL}" -o toolchain.tar.gz
3528

36-
echo "Going to fetch ${SWIFT_WEBROOT}/${download_dir}/${download_signature}"
29+
echo "Going to fetch ${SWIFT_TOOLCHAIN_URL}.sig"
3730

38-
curl -fsSL "${SWIFT_WEBROOT}/${download_dir}/${download_signature}" -o toolchain.sig
31+
curl -fsSL "${SWIFT_TOOLCHAIN_URL}.sig" -o toolchain.sig
3932

4033
echo "Fetching keys"
4134

0 commit comments

Comments
 (0)