Skip to content

Commit 5fca99b

Browse files
Add support for building amazonlinux2 Swift SDKs
1 parent 363f883 commit 5fca99b

File tree

7 files changed

+34
-11
lines changed

7 files changed

+34
-11
lines changed

.github/workflows/develop.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ on:
2323
- debian-bullseye
2424
- debian-bookworm
2525
- rhel-ubi9
26+
- amazonlinux2
2627
pull_request:
2728
branches: [ "main" ]
2829

build-sdk.sh

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,28 +5,29 @@ set -e
55
source ./common-sdk.sh
66

77
SDK_GENERATOR_PATH=./swift-sdk-generator/.build/release/swift-sdk-generator
8+
IMAGE_TAG=${IMAGE_TAG:=swift-sysroot:${SWIFT_VERSION}-${SWIFT_DISTRIBUTION_TAG}}
89

910
echo "Starting up qemu emulation"
1011
docker run --privileged --rm tonistiigi/binfmt --install all
1112

1213
echo "Building ${IMAGE_TAG} image for ${LINUX_PLATFORM}..."
1314
echo "Extra Packages: ${EXTRA_PACKAGES}"
1415
docker build \
16+
--network=host \
1517
--platform linux/${LINUX_PLATFORM} \
1618
--tag ${IMAGE_TAG} \
1719
--build-arg SWIFT_PLATFORM=${SWIFT_PLATFORM} \
1820
--build-arg SWIFT_BRANCH=${SWIFT_BRANCH} \
1921
--build-arg SWIFT_VERSION=${SWIFT_VERSION} \
22+
--build-arg SWIFT_DISTRIBUTION_TAG=${SWIFT_DISTRIBUTION_TAG} \
2023
--build-arg SWIFT_TAG=${SWIFT_TAG} \
2124
--build-arg DISTRIBUTION_NAME=${DISTRIBUTION_NAME} \
2225
--build-arg DISTRIBUTION_VERSION=${DISTRIBUTION_VERSION} \
2326
--build-arg EXTRA_PACKAGES=${EXTRA_PACKAGES} \
2427
--file ${DOCKERFILE} \
2528
.
2629

27-
SDK_NAME=${SWIFT_VERSION}-RELEASE_${DISTRIBUTION_NAME}_${DISTRIBUTION_VERSION}_${TARGET_ARCH}
28-
29-
echo "Building Swift ${SWIFT_VERSION} ${DISTRIBUTION_NAME}-${DISTRIBUTION_VERSION} SDK for ${TARGET_ARCH}..."
30+
echo "Building Swift ${SWIFT_VERSION} ${SWIFT_DISTRIBUTION_TAG} SDK for ${TARGET_ARCH}..."
3031
${SDK_GENERATOR_PATH} make-linux-sdk \
3132
--swift-version ${SWIFT_VERSION}-RELEASE \
3233
--sdk-name ${SDK_NAME} \

common-sdk.sh

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ DISTRIBUTION_NAME=${SPLIT[0]}
2727
DISTRIBUTION_VERSION=${SPLIT[1]}
2828

2929
## MARK: Distribution Name
30-
IMAGE_TAG=${IMAGE_TAG:=swift-sysroot:${SWIFT_VERSION}-${DISTRIBUTION_VERSION}}
3130
case ${DISTRIBUTION_NAME} in
3231
"ubuntu" | "debian")
3332
DOCKERFILE="swift-debian.dockerfile"
@@ -37,15 +36,21 @@ case ${DISTRIBUTION_NAME} in
3736
DOCKERFILE="swift-rhel.dockerfile"
3837
is_rhel=true
3938
;;
39+
"amazonlinux2")
40+
DOCKERFILE="swift-rhel-old.dockerfile"
41+
is_rhel=true
42+
DISTRIBUTION_VERSION=$DISTRIBUTION_NAME
43+
;;
4044
*)
4145
echo "Error: unsupported distribution ${DISTRIBUTION_NAME}"
42-
echo "Supported distributions are: ubuntu, debian, rhel"
46+
echo "Supported distributions are: ubuntu, debian, rhel, amazonlinux2"
4347
exit -1
4448
;;
4549
esac
4650

4751
## MARK: Distribution Version
4852
GENERATOR_DISTRIBUTION_NAME=${DISTRIBUTION_NAME}
53+
SWIFT_DISTRIBUTION_TAG=$DISTRIBUTION_VERSION
4954
case ${DISTRIBUTION_VERSION} in
5055
"focal")
5156
GENERATOR_DISTRIBUTION_VERSION="20.04"
@@ -70,6 +75,12 @@ case ${DISTRIBUTION_VERSION} in
7075
EXTRA_PACKAGES="libstdc++-12-dev ${EXTRA_PACKAGES}"
7176
;;
7277
"ubi9")
78+
GENERATOR_DISTRIBUTION_NAME="rhel"
79+
GENERATOR_DISTRIBUTION_VERSION="ubi9"
80+
SWIFT_DISTRIBUTION_TAG="rhel-ubi9"
81+
;;
82+
"amazonlinux2")
83+
# We use rhel-ubi9 to pass to the generator
7384
GENERATOR_DISTRIBUTION_NAME="rhel"
7485
GENERATOR_DISTRIBUTION_VERSION="ubi9"
7586
;;
@@ -104,3 +115,10 @@ case ${TARGET_ARCH} in
104115
exit -1
105116
;;
106117
esac
118+
119+
# MARK: SDK Name
120+
if [ "$DISTRIBUTION_VERSION" != "$DISTRIBUTION_NAME" ]; then
121+
SDK_NAME=${SWIFT_VERSION}-RELEASE_${DISTRIBUTION_NAME}_${DISTRIBUTION_VERSION}_${TARGET_ARCH}
122+
else
123+
SDK_NAME=${SWIFT_VERSION}-RELEASE_${SWIFT_DISTRIBUTION_TAG}_${TARGET_ARCH}
124+
fi

swift-debian.dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
ARG SWIFT_VERSION=6.2
2-
ARG DISTRIBUTION_VERSION=jammy
3-
FROM swift:${SWIFT_VERSION}-${DISTRIBUTION_VERSION}
2+
ARG SWIFT_DISTRIBUTION_TAG=jammy
3+
FROM swift:${SWIFT_VERSION}-${SWIFT_DISTRIBUTION_TAG}
44
ARG EXTRA_PACKAGES
55
RUN apt update && apt -y install libsystemd-dev ${EXTRA_PACKAGES} && apt -y clean

swift-rhel-old.dockerfile

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
ARG SWIFT_VERSION=6.2
2+
ARG SWIFT_DISTRIBUTION_TAG=amazonlinux2
3+
FROM swift:${SWIFT_VERSION}-${SWIFT_DISTRIBUTION_TAG}
4+
ARG EXTRA_PACKAGES
5+
RUN yum -y install systemd-devel ${EXTRA_PACKAGES} && yum clean all

swift-rhel.dockerfile

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
ARG SWIFT_VERSION=6.2
2-
ARG DISTRIBUTION_NAME=rhel
3-
ARG DISTRIBUTION_VERSION=ubi9
4-
FROM swift:${SWIFT_VERSION}-${DISTRIBUTION_NAME}-${DISTRIBUTION_VERSION}
2+
ARG SWIFT_DISTRIBUTION_TAG=rhel-ubi9
3+
FROM swift:${SWIFT_VERSION}-${SWIFT_DISTRIBUTION_TAG}
54
ARG EXTRA_PACKAGES
65
RUN dnf -y install systemd-devel ${EXTRA_PACKAGES} && dnf clean all

test-sdk.sh

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ if [[ $SWIFT_VERSION == *"6."* ]]; then
2525
SWIFT_SDK_COMMAND="swift-sdk"
2626
fi
2727

28-
SDK_NAME=${SWIFT_VERSION}-RELEASE_${DISTRIBUTION_NAME}_${DISTRIBUTION_VERSION}_${TARGET_ARCH}
2928
PACKAGE_PATH="--package-path ${TEST_PROJECT}"
3029
echo "Testing ${SDK_NAME} by building test-project in ${BUILD_PROFILE} mode with extra flags: ${EXTRA_FLAGS}"
3130
swift package clean ${PACKAGE_PATH}

0 commit comments

Comments
 (0)