Skip to content

Commit 5928a6f

Browse files
authored
Re-write codebuild.yml and dockerfiles for consistency and code build execution speed (#162)
* Start making the CI workflows follow a more common naming convention, workflow structure, put more dependency build into the docker image, etc * Empty commit
1 parent f385f53 commit 5928a6f

8 files changed

+76
-58
lines changed

ci/codebuild/alpine-3.15.yml

+2-9
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,9 @@
11
version: 0.2
22
# This uses the docker image specified in ci/docker/alpine-linux-3.15
33
phases:
4-
pre_build:
5-
commands:
6-
- pip install awscli
7-
- ci/codebuild/build-cpp-sdk.sh
84
build:
95
commands:
106
- echo Build started on `date`
11-
- ci/codebuild/build.sh -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DENABLE_TESTS=ON -DTEST_RESOURCE_PREFIX=alpine315
12-
- ci/codebuild/run-tests.sh aws-lambda-package-lambda-test-fun alpine315
13-
post_build:
14-
commands:
7+
- ./ci/codebuild/build.sh -DTEST_RESOURCE_PREFIX=lambda-cpp-alpine315
8+
- ./ci/codebuild/run-tests.sh aws-lambda-package-lambda-test-fun
159
- echo Build completed on `date`
16-

ci/codebuild/amazonlinux-2.yml

+5-8
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
11
version: 0.2
22
phases:
3-
pre_build:
4-
commands:
5-
- yum install -y zip
63
build:
74
commands:
8-
- cmake3 -S . -B build -DBUILD_SHARED_LIBS=ON -DENABLE_TESTS=ON -DTEST_RESOURCE_PREFIX=al2arm -GNinja
9-
- cd build
10-
- ninja-build
11-
- ninja-build aws-lambda-package-lambda-test-fun
12-
- ctest3 --output-on-failure
5+
- echo Build started on `date`
6+
- ./ci/codebuild/build.sh -DTEST_RESOURCE_PREFIX=lambda-cpp-al2_$(arch)
7+
- ./ci/codebuild/run-tests.sh aws-lambda-package-lambda-test-fun
8+
- ./ci/codebuild/run-tests.sh aws-lambda-package-lambda-test-fun-no-glibc
9+
- echo Build completed on `date`

ci/codebuild/amazonlinux-2017.03.yml

+5-10
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,12 @@
1-
version: 0.1
1+
version: 0.2
22
# This uses the docker image specified in ci/docker/amazon-linux-2017.03
33
phases:
4-
pre_build:
5-
commands:
6-
- alias cmake=cmake3
7-
- ci/codebuild/build-cpp-sdk.sh
84
build:
95
commands:
106
- echo Build started on `date`
11-
- ci/codebuild/build.sh -DENABLE_TESTS=ON -DTEST_RESOURCE_PREFIX=amzn201703
12-
- ci/codebuild/run-tests.sh aws-lambda-package-lambda-test-fun amzn201703
13-
- ci/codebuild/run-tests.sh aws-lambda-package-lambda-test-fun-no-glibc amzn201703
14-
post_build:
15-
commands:
7+
- yum install -y binutils
8+
- ./ci/codebuild/build.sh -DTEST_RESOURCE_PREFIX=lambda-cpp-amzn201703
9+
- ./ci/codebuild/run-tests.sh aws-lambda-package-lambda-test-fun
10+
- ./ci/codebuild/run-tests.sh aws-lambda-package-lambda-test-fun-no-glibc
1611
- echo Build completed on `date`
1712

ci/codebuild/ubuntu-18.04.yml

+3-9
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,9 @@
1-
version: 0.1
1+
version: 0.2
22
# This uses the docker image specified in ci/docker/ubuntu-linux-18.04
33
phases:
4-
pre_build:
5-
commands:
6-
- ci/codebuild/build-cpp-sdk.sh
74
build:
85
commands:
96
- echo Build started on `date`
10-
- ci/codebuild/build.sh -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DENABLE_TESTS=ON -DTEST_RESOURCE_PREFIX=ubuntu1804
11-
- ci/codebuild/run-tests.sh aws-lambda-package-lambda-test-fun ubuntu1804
12-
post_build:
13-
commands:
7+
- ./ci/codebuild/build.sh -DTEST_RESOURCE_PREFIX=lambda-cpp-ubuntu1804
8+
- ./ci/codebuild/run-tests.sh aws-lambda-package-lambda-test-fun
149
- echo Build completed on `date`
15-

ci/docker/alpine-linux-3.15

+16-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,19 @@
1-
FROM alpine:3.15
1+
FROM public.ecr.aws/docker/library/alpine:3.15
22

3-
RUN apk add --no-cache g++ cmake git bash py3-pip libexecinfo-dev ninja curl-dev zlib-dev zip
3+
RUN apk add --no-cache \
4+
bash \
5+
cmake \
6+
curl-dev \
7+
g++ \
8+
git \
9+
libexecinfo-dev \
10+
ninja \
11+
openssl-libs-static \
12+
zlib-dev \
13+
zip
414

515
RUN git clone --recurse-submodules https://github.com/aws/aws-sdk-cpp.git
16+
RUN cmake -Saws-sdk-cpp -Baws-sdk-cpp/build -GNinja \
17+
-DBUILD_ONLY=lambda \
18+
-DENABLE_TESTING=OFF
19+
RUN cd aws-sdk-cpp/build && ninja && ninja install

ci/docker/amazon-linux-2

+12-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,16 @@
11
FROM public.ecr.aws/amazonlinux/amazonlinux:2
2-
RUN yum install -y cmake3 ninja-build git gcc-c++ openssl-devel curl-devel
2+
RUN yum install -y \
3+
cmake3 \
4+
ninja-build \
5+
git \
6+
gcc-c++ \
7+
openssl-devel \
8+
curl-devel \
9+
openssl-static \
10+
zip
311
RUN git clone https://github.com/aws/aws-sdk-cpp --recurse-submodules
412
RUN cmake3 -Saws-sdk-cpp -Baws-sdk-cpp/build -DBUILD_ONLY=lambda -DENABLE_TESTING=OFF -GNinja
513
RUN cd aws-sdk-cpp/build && ninja-build && ninja-build install
6-
RUN yum install -y openssl-static
14+
RUN ln -s /usr/bin/cmake3 /usr/local/bin/cmake
15+
RUN ln -s /usr/bin/ctest3 /usr/local/bin/ctest
16+
RUN ln -s /usr/bin/ninja-build /usr/local/bin/ninja

ci/docker/amazon-linux-2017.03

+16-8
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,18 @@
1-
FROM amazonlinux:2017.03
1+
FROM public.ecr.aws/amazonlinux/amazonlinux:2018.03
22

3-
RUN yum install gcc64-c++ git ninja-build curl-devel openssl-devel zlib-devel gtest-devel python36-pip zip -y
3+
RUN yum install -y \
4+
gcc-c++ \
5+
git \
6+
ninja-build \
7+
curl-devel \
8+
openssl-devel \
9+
openssl-static \
10+
zlib-devel \
11+
gtest-devel \
12+
zip
13+
RUN curl -fLo cmake-install https://github.com/Kitware/CMake/releases/download/v3.13.0/cmake-3.13.0-Linux-x86_64.sh && \
14+
sh cmake-install --skip-license --prefix=/usr --exclude-subdirectory;
415
RUN git clone --recurse-submodules https://github.com/aws/aws-sdk-cpp
5-
6-
RUN curl -fLo cmake-install https://github.com/Kitware/CMake/releases/download/v3.13.0/cmake-3.13.0-Linux-x86_64.sh; \
7-
sh cmake-install --skip-license --prefix=/usr --exclude-subdirectory;
8-
9-
RUN pip-3.6 install --upgrade pip
10-
16+
RUN cmake -Saws-sdk-cpp -Baws-sdk-cpp/build -DBUILD_ONLY=lambda -DENABLE_TESTING=OFF -GNinja
17+
RUN cd aws-sdk-cpp/build && ninja-build && ninja-build install
18+
RUN ln -s /usr/bin/ninja-build /usr/local/bin/ninja

ci/docker/ubuntu-linux-18.04

+17-10
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,22 @@
1-
FROM ubuntu:18.04
1+
FROM public.ecr.aws/ubuntu/ubuntu:18.04
22

3-
RUN apt-get update; apt-get install git clang clang-tidy clang-format zlib1g-dev libssl-dev libcurl4-openssl-dev wget \
4-
ninja-build python3-pip zip -y
3+
RUN apt-get update
4+
RUN apt-get install -y \
5+
git \
6+
clang \
7+
zlib1g-dev \
8+
libssl-dev \
9+
libcurl4-openssl-dev \
10+
wget \
11+
ninja-build \
12+
zip
513

6-
7-
RUN wget -O cmake-install https://github.com/Kitware/CMake/releases/download/v3.13.0/cmake-3.13.0-Linux-x86_64.sh; \
8-
sh cmake-install --skip-license --prefix=/usr --exclude-subdirectory;
9-
10-
RUN pip3 install --upgrade pip
11-
12-
RUN git clone https://github.com/aws/aws-sdk-cpp.git --recurse-submodules
14+
RUN wget -O cmake-install https://github.com/Kitware/CMake/releases/download/v3.13.0/cmake-3.13.0-Linux-x86_64.sh && \
15+
sh cmake-install --skip-license --prefix=/usr --exclude-subdirectory;
1316

1417
RUN update-alternatives --set cc /usr/bin/clang
1518
RUN update-alternatives --set c++ /usr/bin/clang++
19+
20+
RUN git clone https://github.com/aws/aws-sdk-cpp.git --recurse-submodules
21+
RUN cmake -Saws-sdk-cpp -Baws-sdk-cpp/build -DBUILD_ONLY=lambda -DENABLE_TESTING=OFF -GNinja
22+
RUN cd aws-sdk-cpp/build && ninja && ninja install

0 commit comments

Comments
 (0)