File tree Expand file tree Collapse file tree 5 files changed +22
-29
lines changed Expand file tree Collapse file tree 5 files changed +22
-29
lines changed Original file line number Diff line number Diff line change @@ -18,8 +18,8 @@ ARG ZLIB_VERSION=1.3.1
18
18
# Architecture to build on (empty means x86-64)
19
19
ARG OS_ARCH_SUFFIX=
20
20
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 =
23
23
24
24
# ............................................................................
25
25
@@ -53,18 +53,16 @@ ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069
53
53
ARG SWIFT_PLATFORM=ubuntu
54
54
ARG OS_MAJOR_VER=24
55
55
ARG OS_MINOR_VER=04
56
- ARG SWIFT_WEBROOT=https://download.swift.org/$SWIFT_BRANCH
57
56
58
57
ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \
59
58
SWIFT_PLATFORM=$SWIFT_PLATFORM \
60
59
OS_MAJOR_VER=$OS_MAJOR_VER \
61
60
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
64
62
65
63
COPY scripts/install-swift.sh /scripts/install-swift.sh
66
64
RUN chmod ugo+x /scripts/install-swift.sh
67
- RUN /scripts/install-swift.sh
65
+ RUN /scripts/install-swift.sh "${SWIFT_TOOLCHAIN_URL}"
68
66
ENV PATH="/usr/local/swift/bin:${PATH}"
69
67
70
68
ARG ANDROID_NDK_VERSION=android-ndk-r27c
Original file line number Diff line number Diff line change 1
- #! /bin/bash
1
+ #! /bin/bash -ex
2
2
#
3
3
# ===----------------------------------------------------------------------===
4
4
#
@@ -45,11 +45,16 @@ case "${BUILD_VERSION}" in
45
45
;;
46
46
esac
47
47
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
+
48
53
ANDROID_API=28
49
54
ANDROID_NDK_VERSION=android-ndk-r27c
50
55
51
56
# 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 .
53
58
54
59
# Check-out the sources
55
60
scripts/fetch-source.sh --source-dir source --swift-tag ${SWIFT_TAG}
Original file line number Diff line number Diff line change @@ -41,13 +41,13 @@ case "${BUILD_VERSION}" in
41
41
esac
42
42
43
43
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"
44
45
45
46
if [[ ! -d " $SWIFT_ROOT /$SWIFT_BASE " ]]; then
46
47
mkdir -p $SWIFT_ROOT
47
48
pushd $SWIFT_ROOT
48
49
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
51
51
tar xzf $SWIFT_BASE .tar.gz
52
52
53
53
popd
Original file line number Diff line number Diff line change @@ -256,16 +256,13 @@ quiet_pushd ${source_dir}/swift-project
256
256
for patch in " $swift_android_patch " " $testing_patch " ; do
257
257
echo " applying patch $patch in $PWD …"
258
258
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
260
260
echo " already patched"
261
- elif git apply " $patch " ; then
261
+ elif git apply -C1 " $patch " ; then
262
262
echo " done"
263
263
else
264
264
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
269
266
fi
270
267
done
271
268
Original file line number Diff line number Diff line change 8
8
9
9
set -e
10
10
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} "
20
13
21
14
# Make a temporary directory
22
15
tmpdir=$( mktemp -d)
@@ -29,13 +22,13 @@ pushd "$tmpdir" >/dev/null
29
22
export GNUPGHOME=" $tmpdir "
30
23
31
24
# Fetch the toolchain and signature
32
- echo " Going to fetch ${SWIFT_WEBROOT} / ${download_dir} / ${download }"
25
+ echo " Going to fetch ${SWIFT_TOOLCHAIN_URL } "
33
26
34
- curl -fsSL " ${SWIFT_WEBROOT} / ${download_dir} / ${download }" -o toolchain.tar.gz
27
+ curl -fsSL " ${SWIFT_TOOLCHAIN_URL } " -o toolchain.tar.gz
35
28
36
- echo " Going to fetch ${SWIFT_WEBROOT} / ${download_dir} / ${download_signature} "
29
+ echo " Going to fetch ${SWIFT_TOOLCHAIN_URL} .sig "
37
30
38
- curl -fsSL " ${SWIFT_WEBROOT} / ${download_dir} / ${download_signature} " -o toolchain.sig
31
+ curl -fsSL " ${SWIFT_TOOLCHAIN_URL} .sig " -o toolchain.sig
39
32
40
33
echo " Fetching keys"
41
34
You can’t perform that action at this time.
0 commit comments