Skip to content

Commit a5088b2

Browse files
authored
Swift Support (#60)
* adding swift docker images * swift-integration * adding sanity test and fixed docker bug * update swift ubuntu image to proper one for 16
1 parent 6794087 commit a5088b2

File tree

7 files changed

+203
-0
lines changed

7 files changed

+203
-0
lines changed
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
#https://github.com/apple/swift-docker/blob/d3a19f47844d7d4d0dab0b59153da1f1596543b6/5.3/amazonlinux/2/Dockerfile
2+
FROM swift:5.3-amazonlinux2
3+
4+
###############################################################################
5+
# Install prereqs
6+
# any prereqs that appear to be missing are installed on base swift image i.e. tar, git
7+
###############################################################################
8+
RUN yum -y update \
9+
&& yum -y install \
10+
curl \
11+
sudo \
12+
# Python
13+
python3 \
14+
python3-devel \
15+
python3-pip \
16+
make \
17+
cmake3 \
18+
gcc-c++ \
19+
&& yum clean all \
20+
&& rm -rf /var/cache/yum \
21+
&& ln -s /usr/bin/cmake3 /usr/bin/cmake \
22+
&& ln -s /usr/bin/ctest3 /usr/bin/ctest \
23+
&& cmake --version \
24+
&& ctest --version
25+
26+
###############################################################################
27+
# Python/AWS CLI
28+
###############################################################################
29+
RUN python3 -m pip install --upgrade pip setuptools virtualenv \
30+
&& python3 -m pip install --upgrade awscli \
31+
&& aws --version
32+
33+
###############################################################################
34+
# Install pre-built OpenSSL
35+
###############################################################################
36+
WORKDIR /tmp
37+
RUN curl -sSL https://d19elf31gohf1l.cloudfront.net/_binaries/libcrypto/libcrypto-1.1.1-linux-x64.tar.gz -o libcrypto.tar.gz \
38+
&& mkdir /opt/openssl \
39+
&& tar xzf libcrypto.tar.gz -C /opt/openssl \
40+
&& LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/openssl/lib /opt/openssl/bin/openssl version \
41+
&& rm -f /tmp/libcrypto.tar.gz
42+
43+
###############################################################################
44+
# Install pre-built CMake
45+
###############################################################################
46+
WORKDIR /tmp
47+
RUN curl -sSL https://d19elf31gohf1l.cloudfront.net/_binaries/cmake/cmake-3.13-manylinux1-x64.tar.gz -o cmake.tar.gz \
48+
&& tar xvzf cmake.tar.gz -C /usr/local \
49+
&& cmake --version \
50+
&& rm -f /tmp/cmake.tar.gz
51+
52+
###############################################################################
53+
# Install entrypoint
54+
###############################################################################
55+
ADD entrypoint.sh /usr/local/bin/builder
56+
RUN chmod a+x /usr/local/bin/builder
57+
ENTRYPOINT ["/usr/local/bin/builder"]
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
#https://github.com/apple/swift-docker/blob/d3a19f47844d7d4d0dab0b59153da1f1596543b6/5.3/centos/7/Dockerfile
2+
FROM swift:5.3-centos7
3+
4+
###############################################################################
5+
# Install prereqs
6+
# any prereqs that appear to be missing are installed on base swift image i.e. tar, git
7+
###############################################################################
8+
RUN yum -y update \
9+
&& yum -y install \
10+
sudo \
11+
# Python
12+
python3 \
13+
python3-devel \
14+
python3-pip \
15+
make \
16+
cmake \
17+
cmake3 \
18+
gcc-c++ \
19+
&& yum clean all \
20+
&& rm -rf /var/cache/yum
21+
###############################################################################
22+
# Handle cmake on centos properly
23+
###############################################################################
24+
RUN sudo alternatives --install /usr/local/bin/cmake cmake /usr/bin/cmake 10 \
25+
--slave /usr/local/bin/ctest ctest /usr/bin/ctest \
26+
--slave /usr/local/bin/cpack cpack /usr/bin/cpack \
27+
--slave /usr/local/bin/ccmake ccmake /usr/bin/ccmake \
28+
--family cmake
29+
30+
RUN sudo alternatives --install /usr/local/bin/cmake cmake /usr/bin/cmake3 20 \
31+
--slave /usr/local/bin/ctest ctest /usr/bin/ctest3 \
32+
--slave /usr/local/bin/cpack cpack /usr/bin/cpack3 \
33+
--slave /usr/local/bin/ccmake ccmake /usr/bin/ccmake3 \
34+
--family cmake
35+
36+
RUN ln -s /usr/bin/cmake3 /usr/bin/cmake \
37+
ln -s /usr/bin/ctest3 /usr/bin/ctest \
38+
cmake --version \
39+
&& ctest --version
40+
41+
###############################################################################
42+
# Python/AWS CLI
43+
###############################################################################
44+
RUN python3 -m pip install --upgrade pip setuptools virtualenv \
45+
&& python3 -m pip install --upgrade awscli \
46+
&& aws --version
47+
48+
###############################################################################
49+
# Install pre-built OpenSSL
50+
###############################################################################
51+
WORKDIR /tmp
52+
RUN curl -sSL https://d19elf31gohf1l.cloudfront.net/_binaries/libcrypto/libcrypto-1.1.1-linux-x64.tar.gz -o libcrypto.tar.gz \
53+
&& mkdir /opt/openssl \
54+
&& tar xzf libcrypto.tar.gz -C /opt/openssl \
55+
&& LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/openssl/lib /opt/openssl/bin/openssl version \
56+
&& rm -f /tmp/libcrypto.tar.gz
57+
58+
59+
###############################################################################
60+
# Install entrypoint
61+
###############################################################################
62+
ADD entrypoint.sh /usr/local/bin/builder
63+
RUN chmod a+x /usr/local/bin/builder
64+
ENTRYPOINT ["/usr/local/bin/builder"]
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# https://github.com/apple/swift-docker/blob/d3a19f47844d7d4d0dab0b59153da1f1596543b6/5.3/ubuntu/16.04/Dockerfile
2+
FROM swift:5.3-xenial
3+
4+
###############################################################################
5+
# Install prereqs
6+
# any prereqs that appear to be missing are installed on base swift image i.e. tar, git
7+
###############################################################################
8+
RUN apt-get update -qq \
9+
&& apt-get -y install \
10+
sudo \
11+
curl \
12+
# Python
13+
python3 \
14+
python3-dev \
15+
python3-pip \
16+
build-essential \
17+
# For PPAs
18+
software-properties-common \
19+
apt-transport-https \
20+
ca-certificates \
21+
&& apt-get clean
22+
23+
###############################################################################
24+
# Python/AWS CLI
25+
###############################################################################
26+
RUN python3 -m pip install --upgrade pip setuptools \
27+
&& python3 -m pip install --upgrade awscli \
28+
&& aws --version
29+
30+
###############################################################################
31+
# Install pre-built CMake
32+
###############################################################################
33+
WORKDIR /tmp
34+
RUN curl -sSL https://d19elf31gohf1l.cloudfront.net/_binaries/cmake/cmake-3.13-manylinux1-x64.tar.gz -o cmake.tar.gz \
35+
&& tar xvzf cmake.tar.gz -C /usr/local \
36+
&& cmake --version \
37+
&& rm -f /tmp/cmake.tar.gz
38+
39+
###############################################################################
40+
# Install entrypoint
41+
###############################################################################
42+
ADD entrypoint.sh /usr/local/bin/builder
43+
RUN chmod a+x /usr/local/bin/builder
44+
ENTRYPOINT ["/usr/local/bin/builder"]

.github/workflows/create-channel.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,9 @@ jobs:
9696
- al2-x64
9797
- ubuntu-16-x64
9898
- node-10-linux-x64
99+
- swift-5-al2-x64
100+
- swift-5-centos-x64
101+
- swift-5-ubuntu-16-x64
99102

100103
steps:
101104
- name: Checkout Sources

.github/workflows/create-release.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,9 @@ jobs:
8989
- al2-x64
9090
- ubuntu-16-x64
9191
- node-10-linux-x64
92+
- swift-5-al2-x64
93+
- swift-5-centos-x64
94+
- swift-5-ubuntu-16-x64
9295

9396
steps:
9497
- name: Checkout Sources

.github/workflows/docker-images.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,9 @@ jobs:
5555
- al2-x64
5656
- ubuntu-16-x64
5757
- node-10-linux-x64
58+
- swift-5-al2-x64
59+
- swift-5-centos-x64
60+
- swift-5-ubuntu-16-x64
5861

5962
steps:
6063
- name: Checkout Sources

.github/workflows/sanity-test.yml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -301,6 +301,35 @@ jobs:
301301
docker pull $DOCKER_IMAGE
302302
docker run --env GITHUB_REF $DOCKER_IMAGE --version=${{ steps.release.outputs.release_tag }} build -p aws-c-io --spec=downstream run_tests=false
303303
304+
# This tests for swift version
305+
swift:
306+
strategy:
307+
fail-fast: false
308+
matrix:
309+
linux:
310+
- swift-5-ubuntu-16-x64
311+
- swift-5-centos-x64
312+
- swift-5-al2-x64
313+
314+
needs: package
315+
runs-on: ubuntu-latest
316+
steps:
317+
- name: Checkout Source
318+
uses: actions/checkout@v1
319+
320+
- name: Get release tag
321+
uses: ./.github/actions/release-tag
322+
id: release
323+
with:
324+
output: tag
325+
326+
- name: Check for Swift
327+
run: |
328+
echo "${{ secrets.GITHUB_TOKEN }}" | docker login docker.pkg.github.com -u awslabs --password-stdin
329+
export DOCKER_IMAGE=docker.pkg.github.com/awslabs/aws-crt-builder/aws-crt-${{ matrix.linux }}:latest
330+
docker pull $DOCKER_IMAGE
331+
docker run --env GITHUB_REF $DOCKER_IMAGE --version=${{ steps.release.outputs.release_tag }} swift --version
332+
304333
sanity-tests-passed:
305334
name: All Sanity Tests passed
306335
runs-on: ubuntu-latest

0 commit comments

Comments
 (0)