Skip to content

Commit 7e3bb17

Browse files
DougGregorbnbarham
authored andcommitted
Install a Swift 5.8.1 toolchain in all swift-ci images
Installs a Swift 5.8.1 toolchain into `/opt/swift/<version>` on each Linux platform. Removes clang since the toolchain clang can be used instead.
1 parent 60038ce commit 7e3bb17

File tree

6 files changed

+259
-12
lines changed

6 files changed

+259
-12
lines changed

swift-ci/master/amazon-linux/2/Dockerfile

Lines changed: 46 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ FROM amazonlinux:2
22

33
RUN yum install shadow-utils -y
44

5-
RUN groupadd -g 998 build-user && \
5+
RUN groupadd -g 1000 build-user && \
66
useradd -m -r -u 42 -g build-user build-user
77

88
# The build needs a package from the EPEL repo so that needs to be enabled.
@@ -12,7 +12,6 @@ RUN yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.n
1212
# Update and install needed build packages
1313
RUN yum -y group install "development tools"
1414
RUN yum -y install \
15-
clang \
1615
cmake \
1716
curl-devel \
1817
gcc-c++ \
@@ -47,6 +46,51 @@ RUN mkdir -p /usr/local/lib/python3.7/site-packages/
4746

4847
RUN easy_install-3.7 six
4948

49+
ARG SWIFT_SIGNING_KEY=A62AE125BBBFBB96A6E042EC925CC1CCED3D1561
50+
ARG SWIFT_PLATFORM=amazonlinux2
51+
ARG SWIFT_VERSION=5.8.1
52+
ARG SWIFT_BRANCH=swift-${SWIFT_VERSION}-release
53+
ARG SWIFT_TAG=swift-${SWIFT_VERSION}-RELEASE
54+
ARG SWIFT_WEBROOT=https://download.swift.org
55+
ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION}
56+
57+
ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \
58+
SWIFT_PLATFORM=$SWIFT_PLATFORM \
59+
SWIFT_VERSION=$SWIFT_VERSION \
60+
SWIFT_BRANCH=$SWIFT_BRANCH \
61+
SWIFT_TAG=$SWIFT_TAG \
62+
SWIFT_WEBROOT=$SWIFT_WEBROOT \
63+
SWIFT_PREFIX=$SWIFT_PREFIX
64+
65+
RUN set -e; \
66+
ARCH_NAME="$(rpm --eval '%{_arch}')"; \
67+
url=; \
68+
case "${ARCH_NAME##*-}" in \
69+
'x86_64') \
70+
OS_ARCH_SUFFIX=''; \
71+
;; \
72+
'aarch64') \
73+
OS_ARCH_SUFFIX='-aarch64'; \
74+
;; \
75+
*) echo >&2 "error: unsupported architecture: '$ARCH_NAME'"; exit 1 ;; \
76+
esac; \
77+
SWIFT_WEBDIR="$SWIFT_WEBROOT/$SWIFT_BRANCH/$(echo $SWIFT_PLATFORM | tr -d .)$OS_ARCH_SUFFIX" \
78+
&& SWIFT_BIN_URL="$SWIFT_WEBDIR/$SWIFT_TAG/$SWIFT_TAG-$SWIFT_PLATFORM$OS_ARCH_SUFFIX.tar.gz" \
79+
&& SWIFT_SIG_URL="$SWIFT_BIN_URL.sig" \
80+
&& echo $SWIFT_BIN_URL \
81+
# - Download the GPG keys, Swift toolchain, and toolchain signature, and verify.
82+
&& export GNUPGHOME="$(mktemp -d)" \
83+
&& curl -fsSL "$SWIFT_BIN_URL" -o swift.tar.gz "$SWIFT_SIG_URL" -o swift.tar.gz.sig \
84+
&& gpg --batch --quiet --keyserver keyserver.ubuntu.com --recv-keys "$SWIFT_SIGNING_KEY" \
85+
&& gpg --batch --verify swift.tar.gz.sig swift.tar.gz \
86+
# - Unpack the toolchain, set libs permissions, and clean up.
87+
&& mkdir -p $SWIFT_PREFIX \
88+
&& tar -xzf swift.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \
89+
&& chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \
90+
&& rm -rf "$GNUPGHOME" swift.tar.gz.sig swift.tar.gz
91+
92+
ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}"
93+
5094
USER build-user
5195

5296
WORKDIR /home/build-user

swift-ci/master/centos/7/Dockerfile

Lines changed: 35 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ FROM centos:7
22

33
RUN yum install shadow-utils.x86_64 -y
44

5-
RUN groupadd -g 998 build-user && \
5+
RUN groupadd -g 1000 build-user && \
66
useradd -m -r -u 42 -g build-user build-user
77

88
RUN yum install -y epel-release centos-release-scl
@@ -19,7 +19,6 @@ RUN yum install --enablerepo=centosplus -y \
1919
libtool \
2020
libuuid-devel \
2121
libxml2-devel \
22-
llvm-toolset-7.0 \
2322
make \
2423
ncurses-devel \
2524
ninja-build \
@@ -41,13 +40,43 @@ RUN yum install --enablerepo=centosplus -y \
4140
zip \
4241
zlib-devel
4342

44-
RUN echo -e ". /opt/rh/sclo-git25/enable\n. /opt/rh/llvm-toolset-7.0/enable\n. /opt/rh/devtoolset-8/enable\n" >> /home/build-user/.bashrc
45-
46-
RUN echo /opt/rh/llvm-toolset-7.0/root/usr/lib64/ > /etc/ld.so.conf.d/llvm-toolset.conf
47-
RUN ldconfig
43+
RUN echo -e ". /opt/rh/sclo-git25/enable\n. /opt/rh/devtoolset-8/enable\n" >> /home/build-user/.bashrc
4844

4945
RUN sed -i -e 's/\*__block/\*__libc_block/g' /usr/include/unistd.h
5046

47+
ARG SWIFT_SIGNING_KEY=A62AE125BBBFBB96A6E042EC925CC1CCED3D1561
48+
ARG SWIFT_PLATFORM=centos7
49+
ARG SWIFT_VERSION=5.8.1
50+
ARG SWIFT_BRANCH=swift-${SWIFT_VERSION}-release
51+
ARG SWIFT_TAG=swift-${SWIFT_VERSION}-RELEASE
52+
ARG SWIFT_WEBROOT=https://download.swift.org
53+
ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION}
54+
55+
ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \
56+
SWIFT_PLATFORM=$SWIFT_PLATFORM \
57+
SWIFT_VERSION=$SWIFT_VERSION \
58+
SWIFT_BRANCH=$SWIFT_BRANCH \
59+
SWIFT_TAG=$SWIFT_TAG \
60+
SWIFT_WEBROOT=$SWIFT_WEBROOT \
61+
SWIFT_PREFIX=$SWIFT_PREFIX
62+
63+
RUN set -e; \
64+
SWIFT_WEBDIR="$SWIFT_WEBROOT/$SWIFT_BRANCH/$(echo $SWIFT_PLATFORM | tr -d .)" \
65+
&& SWIFT_BIN_URL="$SWIFT_WEBDIR/$SWIFT_TAG/$SWIFT_TAG-$SWIFT_PLATFORM.tar.gz" \
66+
&& SWIFT_SIG_URL="$SWIFT_BIN_URL.sig" \
67+
# - Download the GPG keys, Swift toolchain, and toolchain signature, and verify.
68+
&& export GNUPGHOME="$(mktemp -d)" \
69+
&& curl -fsSL "$SWIFT_BIN_URL" -o swift.tar.gz "$SWIFT_SIG_URL" -o swift.tar.gz.sig \
70+
&& gpg --batch --quiet --keyserver keyserver.ubuntu.com --recv-keys "$SWIFT_SIGNING_KEY" \
71+
&& gpg --batch --verify swift.tar.gz.sig swift.tar.gz \
72+
# - Unpack the toolchain, set libs permissions, and clean up.
73+
&& mkdir -p $SWIFT_PREFIX \
74+
&& tar -xzf swift.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \
75+
&& chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \
76+
&& rm -rf "$GNUPGHOME" swift.tar.gz.sig swift.tar.gz
77+
78+
ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}"
79+
5180
USER build-user
5281

5382
WORKDIR /home/build-user

swift-ci/master/rhel-ubi/9/Dockerfile

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ RUN groupadd -g 42 build-user && \
66
RUN yum install -y \
77
git \
88
gcc-c++ \
9-
clang \
109
cmake \
1110
make \
1211
libcurl-devel \
@@ -20,6 +19,51 @@ RUN yum install -y \
2019
unzip \
2120
zip
2221

22+
ARG SWIFT_SIGNING_KEY=A62AE125BBBFBB96A6E042EC925CC1CCED3D1561
23+
ARG SWIFT_PLATFORM=ubi9
24+
ARG SWIFT_VERSION=5.8.1
25+
ARG SWIFT_BRANCH=swift-${SWIFT_VERSION}-release
26+
ARG SWIFT_TAG=swift-${SWIFT_VERSION}-RELEASE
27+
ARG SWIFT_WEBROOT=https://download.swift.org
28+
ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION}
29+
30+
ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \
31+
SWIFT_PLATFORM=$SWIFT_PLATFORM \
32+
SWIFT_VERSION=$SWIFT_VERSION \
33+
SWIFT_BRANCH=$SWIFT_BRANCH \
34+
SWIFT_TAG=$SWIFT_TAG \
35+
SWIFT_WEBROOT=$SWIFT_WEBROOT \
36+
SWIFT_PREFIX=$SWIFT_PREFIX
37+
38+
RUN set -e; \
39+
ARCH_NAME="$(rpm --eval '%{_arch}')"; \
40+
url=; \
41+
case "${ARCH_NAME##*-}" in \
42+
'x86_64') \
43+
OS_ARCH_SUFFIX=''; \
44+
;; \
45+
'aarch64') \
46+
OS_ARCH_SUFFIX='-aarch64'; \
47+
;; \
48+
*) echo >&2 "error: unsupported architecture: '$ARCH_NAME'"; exit 1 ;; \
49+
esac; \
50+
SWIFT_WEBDIR="$SWIFT_WEBROOT/$SWIFT_BRANCH/$(echo $SWIFT_PLATFORM | tr -d .)$OS_ARCH_SUFFIX" \
51+
&& SWIFT_BIN_URL="$SWIFT_WEBDIR/$SWIFT_TAG/$SWIFT_TAG-$SWIFT_PLATFORM$OS_ARCH_SUFFIX.tar.gz" \
52+
&& SWIFT_SIG_URL="$SWIFT_BIN_URL.sig" \
53+
&& echo $SWIFT_BIN_URL \
54+
# - Download the GPG keys, Swift toolchain, and toolchain signature, and verify.
55+
&& export GNUPGHOME="$(mktemp -d)" \
56+
&& curl -fsSL "$SWIFT_BIN_URL" -o swift.tar.gz "$SWIFT_SIG_URL" -o swift.tar.gz.sig \
57+
&& gpg --batch --quiet --keyserver keyserver.ubuntu.com --recv-keys "$SWIFT_SIGNING_KEY" \
58+
&& gpg --batch --verify swift.tar.gz.sig swift.tar.gz \
59+
# - Unpack the toolchain, set libs permissions, and clean up.
60+
&& mkdir -p $SWIFT_PREFIX \
61+
&& tar -xzf swift.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \
62+
&& chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \
63+
&& rm -rf "$GNUPGHOME" swift.tar.gz.sig swift.tar.gz
64+
65+
ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}"
66+
2367
USER build-user
2468

2569
WORKDIR /home/build-user

swift-ci/master/ubuntu/18.04/Dockerfile

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ ENV DEBIAN_FRONTEND="noninteractive"
77

88
RUN apt -y update && apt -y install \
99
build-essential \
10-
clang \
1110
cmake \
1211
git \
1312
icu-devtools \
@@ -34,6 +33,43 @@ RUN apt -y update && apt -y install \
3433
uuid-dev \
3534
zip
3635

36+
ARG SWIFT_SIGNING_KEY=A62AE125BBBFBB96A6E042EC925CC1CCED3D1561
37+
ARG SWIFT_PLATFORM=ubuntu18.04
38+
ARG SWIFT_VERSION=5.8.1
39+
ARG SWIFT_BRANCH=swift-${SWIFT_VERSION}-release
40+
ARG SWIFT_VERSION=swift-${SWIFT_VERSION}-RELEASE
41+
ARG SWIFT_WEBROOT=https://download.swift.org
42+
ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION}
43+
44+
ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \
45+
SWIFT_PLATFORM=$SWIFT_PLATFORM \
46+
SWIFT_VERSION=$SWIFT_VERSION \
47+
SWIFT_BRANCH=$SWIFT_BRANCH \
48+
SWIFT_TAG=$SWIFT_TAG \
49+
SWIFT_WEBROOT=$SWIFT_WEBROOT \
50+
SWIFT_PREFIX=$SWIFT_PREFIX
51+
52+
RUN set -e; \
53+
SWIFT_WEBDIR="$SWIFT_WEBROOT/$SWIFT_BRANCH/$(echo $SWIFT_PLATFORM | tr -d .)" \
54+
&& SWIFT_BIN_URL="$SWIFT_WEBDIR/$SWIFT_TAG/$SWIFT_TAG-$SWIFT_PLATFORM.tar.gz" \
55+
&& SWIFT_SIG_URL="$SWIFT_BIN_URL.sig" \
56+
# - Grab curl here so we cache better up above
57+
&& export DEBIAN_FRONTEND=noninteractive \
58+
&& apt-get -q update && apt-get -q install -y curl && rm -rf /var/lib/apt/lists/* \
59+
# - Download the GPG keys, Swift toolchain, and toolchain signature, and verify.
60+
&& export GNUPGHOME="$(mktemp -d)" \
61+
&& curl -fsSL "$SWIFT_BIN_URL" -o swift.tar.gz "$SWIFT_SIG_URL" -o swift.tar.gz.sig \
62+
&& gpg --batch --quiet --keyserver keyserver.ubuntu.com --recv-keys "$SWIFT_SIGNING_KEY" \
63+
&& gpg --batch --verify swift.tar.gz.sig swift.tar.gz \
64+
# - Unpack the toolchain, set libs permissions, and clean up.
65+
&& mkdir -p $SWIFT_PREFIX \
66+
&& tar -xzf swift.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \
67+
&& chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \
68+
&& rm -rf "$GNUPGHOME" swift.tar.gz.sig swift.tar.gz \
69+
&& apt-get purge --auto-remove -y curl
70+
71+
ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}"
72+
3773
USER build-user
3874

3975
WORKDIR /home/build-user

swift-ci/master/ubuntu/20.04/Dockerfile

Lines changed: 48 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ ENV DEBIAN_FRONTEND="noninteractive"
77

88
RUN apt-get -y update && apt-get -y install \
99
build-essential \
10-
clang \
1110
cmake \
1211
git \
1312
icu-devtools \
@@ -33,6 +32,54 @@ RUN apt-get -y update && apt-get -y install \
3332
uuid-dev \
3433
zip
3534

35+
ARG SWIFT_SIGNING_KEY=A62AE125BBBFBB96A6E042EC925CC1CCED3D1561
36+
ARG SWIFT_PLATFORM=ubuntu20.04
37+
ARG SWIFT_VERSION=5.8.1
38+
ARG SWIFT_BRANCH=swift-${SWIFT_VERSION}-release
39+
ARG SWIFT_VERSION=swift-${SWIFT_VERSION}-RELEASE
40+
ARG SWIFT_WEBROOT=https://download.swift.org
41+
ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION}
42+
43+
ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \
44+
SWIFT_PLATFORM=$SWIFT_PLATFORM \
45+
SWIFT_VERSION=$SWIFT_VERSION \
46+
SWIFT_BRANCH=$SWIFT_BRANCH \
47+
SWIFT_TAG=$SWIFT_TAG \
48+
SWIFT_WEBROOT=$SWIFT_WEBROOT \
49+
SWIFT_PREFIX=$SWIFT_PREFIX
50+
51+
RUN set -e; \
52+
ARCH_NAME="$(dpkg --print-architecture)"; \
53+
url=; \
54+
case "${ARCH_NAME##*-}" in \
55+
'amd64') \
56+
OS_ARCH_SUFFIX=''; \
57+
;; \
58+
'arm64') \
59+
OS_ARCH_SUFFIX='-aarch64'; \
60+
;; \
61+
*) echo >&2 "error: unsupported architecture: '$ARCH_NAME'"; exit 1 ;; \
62+
esac; \
63+
SWIFT_WEBDIR="$SWIFT_WEBROOT/$SWIFT_BRANCH/$(echo $SWIFT_PLATFORM | tr -d .)$OS_ARCH_SUFFIX" \
64+
&& SWIFT_BIN_URL="$SWIFT_WEBDIR/$SWIFT_TAG/$SWIFT_TAG-$SWIFT_PLATFORM$OS_ARCH_SUFFIX.tar.gz" \
65+
&& SWIFT_SIG_URL="$SWIFT_BIN_URL.sig" \
66+
# - Grab curl here so we cache better up above
67+
&& export DEBIAN_FRONTEND=noninteractive \
68+
&& apt-get -q update && apt-get -q install -y curl && rm -rf /var/lib/apt/lists/* \
69+
# - Download the GPG keys, Swift toolchain, and toolchain signature, and verify.
70+
&& export GNUPGHOME="$(mktemp -d)" \
71+
&& curl -fsSL "$SWIFT_BIN_URL" -o swift.tar.gz "$SWIFT_SIG_URL" -o swift.tar.gz.sig \
72+
&& gpg --batch --quiet --keyserver keyserver.ubuntu.com --recv-keys "$SWIFT_SIGNING_KEY" \
73+
&& gpg --batch --verify swift.tar.gz.sig swift.tar.gz \
74+
# - Unpack the toolchain, set libs permissions, and clean up.
75+
&& mkdir -p $SWIFT_PREFIX \
76+
&& tar -xzf swift.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \
77+
&& chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \
78+
&& rm -rf "$GNUPGHOME" swift.tar.gz.sig swift.tar.gz \
79+
&& apt-get purge --auto-remove -y curl
80+
81+
ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}"
82+
3683
USER build-user
3784

3885
WORKDIR /home/build-user

swift-ci/master/ubuntu/22.04/Dockerfile

Lines changed: 48 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ ENV DEBIAN_FRONTEND="noninteractive"
77

88
RUN apt-get -y update && apt-get -y install \
99
build-essential \
10-
clang \
1110
cmake \
1211
git \
1312
icu-devtools \
@@ -33,6 +32,54 @@ RUN apt-get -y update && apt-get -y install \
3332
uuid-dev \
3433
zip
3534

35+
ARG SWIFT_SIGNING_KEY=A62AE125BBBFBB96A6E042EC925CC1CCED3D1561
36+
ARG SWIFT_PLATFORM=ubuntu22.04
37+
ARG SWIFT_VERSION=5.8.1
38+
ARG SWIFT_BRANCH=swift-${SWIFT_VERSION}-release
39+
ARG SWIFT_TAG=swift-${SWIFT_VERSION}-RELEASE
40+
ARG SWIFT_WEBROOT=https://download.swift.org
41+
ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION}
42+
43+
ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \
44+
SWIFT_PLATFORM=$SWIFT_PLATFORM \
45+
SWIFT_VERSION=$SWIFT_VERSION \
46+
SWIFT_BRANCH=$SWIFT_BRANCH \
47+
SWIFT_TAG=$SWIFT_TAG \
48+
SWIFT_WEBROOT=$SWIFT_WEBROOT \
49+
SWIFT_PREFIX=$SWIFT_PREFIX
50+
51+
RUN set -e; \
52+
ARCH_NAME="$(dpkg --print-architecture)"; \
53+
url=; \
54+
case "${ARCH_NAME##*-}" in \
55+
'amd64') \
56+
OS_ARCH_SUFFIX=''; \
57+
;; \
58+
'arm64') \
59+
OS_ARCH_SUFFIX='-aarch64'; \
60+
;; \
61+
*) echo >&2 "error: unsupported architecture: '$ARCH_NAME'"; exit 1 ;; \
62+
esac; \
63+
SWIFT_WEBDIR="$SWIFT_WEBROOT/$SWIFT_BRANCH/$(echo $SWIFT_PLATFORM | tr -d .)$OS_ARCH_SUFFIX" \
64+
&& SWIFT_BIN_URL="$SWIFT_WEBDIR/$SWIFT_TAG/$SWIFT_TAG-$SWIFT_PLATFORM$OS_ARCH_SUFFIX.tar.gz" \
65+
&& SWIFT_SIG_URL="$SWIFT_BIN_URL.sig" \
66+
# - Grab curl here so we cache better up above
67+
&& export DEBIAN_FRONTEND=noninteractive \
68+
&& apt-get -q update && apt-get -q install -y curl && rm -rf /var/lib/apt/lists/* \
69+
# - Download the GPG keys, Swift toolchain, and toolchain signature, and verify.
70+
&& export GNUPGHOME="$(mktemp -d)" \
71+
&& curl -fsSL "$SWIFT_BIN_URL" -o swift.tar.gz "$SWIFT_SIG_URL" -o swift.tar.gz.sig \
72+
&& gpg --batch --quiet --keyserver keyserver.ubuntu.com --recv-keys "$SWIFT_SIGNING_KEY" \
73+
&& gpg --batch --verify swift.tar.gz.sig swift.tar.gz \
74+
# - Unpack the toolchain, set libs permissions, and clean up.
75+
&& mkdir -p $SWIFT_PREFIX \
76+
&& tar -xzf swift.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \
77+
&& chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \
78+
&& rm -rf "$GNUPGHOME" swift.tar.gz.sig swift.tar.gz \
79+
&& apt-get purge --auto-remove -y curl
80+
81+
ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}"
82+
3683
USER build-user
3784

3885
WORKDIR /home/build-user

0 commit comments

Comments
 (0)