Skip to content

CI/CD configuration refresh #193

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 14 commits into
base: master
Choose a base branch
from
4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,8 @@ Prerequisites:

Then, to iterate on a single workflow:
```
docker build -t lambda-cpp-amazon-linux-2 -f ./ci/docker/amazon-linux-2 .
./ci/codebuild_build.sh -c -a /tmp -i lambda-cpp-amazon-linux-2 -b ./ci/codebuild/amazon-linux-2.yml
docker build -t lambda-cpp --target amazon-linux-2 -f ./ci/docker/uberbase.Dockerfile .
./ci/codebuild_build.sh -c -a /tmp -i lambda-cpp -b ./ci/codebuild/amazonlinux-2.yml
```


Expand Down
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,14 @@

| OS | Arch | Status |
|----|------|--------|
| Amazon Linux 2023 | x86_64 | [![](https://codebuild.us-west-2.amazonaws.com/badges?uuid=eyJlbmNyeXB0ZWREYXRhIjoicytqdnFjamJOeDhoTGMycGxBa0N0bEVxSjVub0JSei8rN0ovSmkyeGk1YmMrRUROb20vM041emRKRDcwck1JQUo3Z25sTEZ6SGhHZWtuYUpSWSt4dHhFPSIsIml2UGFyYW1ldGVyU3BlYyI6ImE2Qmx2Y2FYeTdGdkFJanUiLCJtYXRlcmlhbFNldFNlcmlhbCI6MX0%3D&branch=master)](https://us-west-2.codebuild.aws.amazon.com/project/eyJlbmNyeXB0ZWREYXRhIjoiNVo1enh3blIxVHBiZXFxM29JdmdhQTJwL3FGS2R1UFZKVHgzSktYYzErdHBxL0l5bzBOc01NZTFKbUZwdFRLUUFYOU9XcTVHcUdkYm9tSForV3kyaE03Qy9yNUk0MEIyNEE3NGdTMDFiVVR6Rmlhc2lCODZkQT09IiwiaXZQYXJhbWV0ZXJTcGVjIjoiM01BdkdyRzNWcVdab2IxdyIsIm1hdGVyaWFsU2V0U2VyaWFsIjoxfQ%3D%3D) |
| Amazon Linux 2 | x86_64 | [![](https://codebuild.us-west-2.amazonaws.com/badges?uuid=eyJlbmNyeXB0ZWREYXRhIjoiQ1EvQXE0ODBLK0VnQitMaVdvZ1J0QkhTMlpNbk8wS0lRbWZvRDlPSHB0V0VXb1VLazdSdzRMWHhMeUdpYjdOT1hCc1hjL3BKei96ZVpzeTdrMVd4c3BRPSIsIml2UGFyYW1ldGVyU3BlYyI6IkhjTTNoSzJwb1hldk9zZFYiLCJtYXRlcmlhbFNldFNlcmlhbCI6MX0%3D&branch=master)](https://us-west-2.codebuild.aws.amazon.com/project/eyJlbmNyeXB0ZWREYXRhIjoicnpvbytDV0grMHh2c09ONi9kQ3ZuOVVwckxISElKRENEVy9CL0pvd3VvLzQwZ21pdzBOdGtNWUFLRy9VRkw1NldSMmRlVXV5R0NhN1k1OWI0bDY1N2MyMzR2SmhseWlma0hmWTlBUkwzcVp0TEJlQm1RPT0iLCJpdlBhcmFtZXRlclNwZWMiOiI3MzM4WDUybk9hSkl1bllRIiwibWF0ZXJpYWxTZXRTZXJpYWwiOjF9) |
| Amazon Linux 2 | aarch64 | [![](https://codebuild.us-west-2.amazonaws.com/badges?uuid=eyJlbmNyeXB0ZWREYXRhIjoicWNGSmJtaGdPSCtqR25KQ1k3RWNZS1pwWlZScGZ3WU1JM0lISnZJVkhVNy8zbVIyVHp6RlBmRjN4cjZJd2xWNEd0eWZmUy9JaE1vRzBYWFcrbnpFdDUwPSIsIml2UGFyYW1ldGVyU3BlYyI6ImVoeHl5TTNtMmdERjJuWisiLCJtYXRlcmlhbFNldFNlcmlhbCI6MX0%3D&branch=master)](https://us-west-2.codebuild.aws.amazon.com/project/eyJlbmNyeXB0ZWREYXRhIjoiVUVaNzBYMXVjUUl1djdlS3pTSXVxMUhKcHB4ZC96ZjlDOWM3bUxiRmtITnVGYzdxTDJveFY3eVFqanpHbzhYRUdWVjVhZFhnOGt0NldETEVMamN0alRoZzYwMyszU1lVMjJNR0lUWGNCQjVYNzhuUzZwZ0ptZz09IiwiaXZQYXJhbWV0ZXJTcGVjIjoicmtKaUVoM2pmUVdibVZuOSIsIm1hdGVyaWFsU2V0U2VyaWFsIjoxfQ%3D%3D) |
| Amazon Linux (ALAMI) | x86_64 | [![](https://codebuild.us-west-2.amazonaws.com/badges?uuid=eyJlbmNyeXB0ZWREYXRhIjoiWUNqeG9FcmUyQzVSaUkydFd6UkU5Sm42cTViSExXOFZURHRBQlM0dDJDOThMWEFYLzN4NitQR0w1ZzNKcjAwOVNUYXY5ZUljU1hzcEtrU0N0dEhUN0M0PSIsIml2UGFyYW1ldGVyU3BlYyI6ImtYU0ZjSzh3ekFKazlBVVUiLCJtYXRlcmlhbFNldFNlcmlhbCI6MX0%3D&branch=master)](https://us-west-2.codebuild.aws.amazon.com/project/eyJlbmNyeXB0ZWREYXRhIjoiTEJJVVFIOXp6VjUvWExqODN1K1NPQmRTVm9iQy9ZK2tmKzkrbVdTNlh1LzV1UlpQL2lPN1Faak0yc0pOaGpEVlRpai9yS3JCRjBRQU5lMVFVU1hRU1hyekxpVi8yNWV0ZE44SElWdlRpNld4bmkwdE1oQjcxN0NtIiwiaXZQYXJhbWV0ZXJTcGVjIjoiZnBBUi9uOU8yVjJ4RENpRyIsIm1hdGVyaWFsU2V0U2VyaWFsIjoxfQ%3D%3D) |
| Alpine | x86_64 | [![](https://codebuild.us-west-2.amazonaws.com/badges?uuid=eyJlbmNyeXB0ZWREYXRhIjoiTkhhOEJGNjVOTG5NZWVNWDNjSGNEdWEwY0J2ZUNLMkE2aU83UVdYc3VMU0V5b1JqdXY0OXUxNkxYRDUxU0VJOTByL3NLUTE3djBMNWh2VldXdk0xamJZPSIsIml2UGFyYW1ldGVyU3BlYyI6ImQxSjc2Vnd3czF2QWphRS8iLCJtYXRlcmlhbFNldFNlcmlhbCI6MX0%3D&branch=master)](https://us-west-2.codebuild.aws.amazon.com/project/eyJlbmNyeXB0ZWREYXRhIjoiQzJVUzZML1dLTkpRNGcxSjVyUXVEd1BCY2poZUhydWZLeGE5MGU1c05vNDVObG44bnpKZFhlZVJKSm50ZnpaalRENUxxOHpPNGdPTDRlTGc4WW81UHd4L3hCeTgyTm5vRVR0RW5FempKdk00aDlPRk02WGQiLCJpdlBhcmFtZXRlclNwZWMiOiJUMFhCQktLMExQMXc3Q0lHIiwibWF0ZXJpYWxTZXRTZXJpYWwiOjF9) |
| Alpine 3.19 | x86_64 | [![](https://codebuild.us-west-2.amazonaws.com/badges?uuid=eyJlbmNyeXB0ZWREYXRhIjoiSXhMa1JlTGdwMnZKOWtFRjF1RFdxK0s3NXhKOXY5cDBIejZibmY5YVFjMlRSdDRKdGtONzR3UU0wV0RVNTJRa3AzdC9FOURSd1IzazJPWWgyRjZyUCswPSIsIml2UGFyYW1ldGVyU3BlYyI6IkFiZEdLTElFZmlhK2hIRmwiLCJtYXRlcmlhbFNldFNlcmlhbCI6MX0%3D&branch=master)](https://us-west-2.codebuild.aws.amazon.com/project/eyJlbmNyeXB0ZWREYXRhIjoiYXlaWGpmVWl2UEVSZ0dnSTNDWEVBeWdPSkJCc2lvWmtBZ0t4clhCcEFuaFBCVVFJNW1UaDZBaVN6UDlRM3kxbXJvcC9BTVVwa2pGTXg1Tm14NG40M2lTUkc4WWNmQW1lSnZmc1BmT3R3MzhjdlRvSEU0MGYiLCJpdlBhcmFtZXRlclNwZWMiOiJHWVFUY0xZVjFJZTk2VmJSIiwibWF0ZXJpYWxTZXRTZXJpYWwiOjF9)
| Alpine 3.15 | x86_64 | [![](https://codebuild.us-west-2.amazonaws.com/badges?uuid=eyJlbmNyeXB0ZWREYXRhIjoiTkhhOEJGNjVOTG5NZWVNWDNjSGNEdWEwY0J2ZUNLMkE2aU83UVdYc3VMU0V5b1JqdXY0OXUxNkxYRDUxU0VJOTByL3NLUTE3djBMNWh2VldXdk0xamJZPSIsIml2UGFyYW1ldGVyU3BlYyI6ImQxSjc2Vnd3czF2QWphRS8iLCJtYXRlcmlhbFNldFNlcmlhbCI6MX0%3D&branch=master)](https://us-west-2.codebuild.aws.amazon.com/project/eyJlbmNyeXB0ZWREYXRhIjoiQzJVUzZML1dLTkpRNGcxSjVyUXVEd1BCY2poZUhydWZLeGE5MGU1c05vNDVObG44bnpKZFhlZVJKSm50ZnpaalRENUxxOHpPNGdPTDRlTGc4WW81UHd4L3hCeTgyTm5vRVR0RW5FempKdk00aDlPRk02WGQiLCJpdlBhcmFtZXRlclNwZWMiOiJUMFhCQktLMExQMXc3Q0lHIiwibWF0ZXJpYWxTZXRTZXJpYWwiOjF9) |
| Arch Linux | x86_64 | [![](https://codebuild.us-west-2.amazonaws.com/badges?uuid=eyJlbmNyeXB0ZWREYXRhIjoib2cxaHp3bE5ndWhWR0RIRkxxQzRwR1dHa05DWmQ0bENnWGNHYzM2YmR3OFRHNWpPYStGYUM1WXBQVUNoZjJRa2xrZVpuRXVyWVVvQVNzNExqSlN5TGEwPSIsIml2UGFyYW1ldGVyU3BlYyI6Ii9zSjVybGNsNEJMUEZwSlUiLCJtYXRlcmlhbFNldFNlcmlhbCI6MX0%3D&branch=master)](https://us-west-2.codebuild.aws.amazon.com/project/eyJlbmNyeXB0ZWREYXRhIjoiRWVOYlA5OHZqUVVLUTZLYlJzZmdOQkR5dmpVSTBPS1h1M3RxQkxXa3pyMC9OOUw5dDJlUDcyYm05Q3pBOEZ1aWJFYkFBajFGZ3RJWUM5WkpoZUE4K0IrdFIvYytyNVRYREpQTUNHL05vTXlLQ0E9PSIsIml2UGFyYW1ldGVyU3BlYyI6InFuS1hJY3JTaWpSWENLM1EiLCJtYXRlcmlhbFNldFNlcmlhbCI6MX0%3D) |
| Ubuntu 22.04 | x86_64 | [![](https://codebuild.us-west-2.amazonaws.com/badges?uuid=eyJlbmNyeXB0ZWREYXRhIjoiNzBpSEV5VVprZ2oveUxqR0hYUUF0MnFhSUlvdGN2UVprVGhEUTJmcGpxaU0yb3ZmdFRqcE5XMytiSXJ2WlJvaW1BS0c0NDgyNUNSU2tqQlJ2aHpoY3RrPSIsIml2UGFyYW1ldGVyU3BlYyI6InV2dS9hNjlQMHNjZE5INWgiLCJtYXRlcmlhbFNldFNlcmlhbCI6MX0%3D&branch=master)](https://us-west-2.codebuild.aws.amazon.com/project/eyJlbmNyeXB0ZWREYXRhIjoiY01iV0F6YWVKSlZ3d2M1SjVLbXpabmxNQlZJLy9XTHBYVTBvekZJT2U1aFE1MERUNDFQWXhaVzZqZ0RDRnBsUEZ5NStreUNSNzFZWkh5Sjg3aTIvYlVsTzREMWt3U2ovMHNULzFGemtPVndnRE1LWjBvUWxLUT09IiwiaXZQYXJhbWV0ZXJTcGVjIjoiVE1YSXVQUktrN3FEQWxLdCIsIm1hdGVyaWFsU2V0U2VyaWFsIjoxfQ%3D%3D) |
| Ubuntu 18.04 | x86_64 | [![](https://codebuild.us-west-2.amazonaws.com/badges?uuid=eyJlbmNyeXB0ZWREYXRhIjoiVkhsbmdlYkk3M1JESVdiTHc0elpobXEvUk4wRWlBZUpEZzdmem1QbGJRZ3dMbVE2RWZpbHZjNmVCd0dJaUFSZ1pzQVlyZ1dvdndWTjZSRjg0WDRYRFh3PSIsIml2UGFyYW1ldGVyU3BlYyI6IjJic2dnR3ZpTEQyMmRPMXQiLCJtYXRlcmlhbFNldFNlcmlhbCI6MX0%3D&branch=master)](https://us-west-2.codebuild.aws.amazon.com/project/eyJlbmNyeXB0ZWREYXRhIjoiSlNPak1vQmVBR3JnUlAwRWg2N3hHRHF1U2Z6RkQvY1NHRHM4RTJ0WEFBdjFTSzBzY21kZEpPMDk2QXdwRStUWUZmWWFmTkRkU1FGa0lQUGoxbU9GNU45QVJ1YVkzZkY0dmsxV2FRZVljakt3UmJpdTM2a0JnQT09IiwiaXZQYXJhbWV0ZXJTcGVjIjoieE5LSUlmNVN1UWdqbWg0cSIsIm1hdGVyaWFsU2V0U2VyaWFsIjoxfQ%3D%3D) |

## AWS Lambda C++ Runtime
Expand Down
104 changes: 103 additions & 1 deletion ci/codebuild.yml
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,7 @@ Resources:
GroupName: /aws/codebuild/aws-lambda-cpp-ci
Environment:
ImagePullCredentialsType: CODEBUILD
ComputeType: BUILD_GENERAL1_MEDIUM
ComputeType: BUILD_GENERAL1_XLARGE
Image: aws/codebuild/amazonlinux2-x86_64-standard:4.0
Type: LINUX_CONTAINER
PrivilegedMode: True
Expand Down Expand Up @@ -233,6 +233,40 @@ Resources:
Location: !Ref GitHub
BuildSpec: ci/codebuild/amazonlinux-2.yml

Amazon2023:
Type: AWS::CodeBuild::Project
Properties:
Artifacts:
Type: NO_ARTIFACTS
BadgeEnabled: True
Visibility: PUBLIC_READ
ConcurrentBuildLimit: 1
ServiceRole: !GetAtt CodeBuildRole.Arn
ResourceAccessRole: !GetAtt LogsAccessRole.Arn
LogsConfig:
CloudWatchLogs:
Status: ENABLED
GroupName: /aws/codebuild/aws-lambda-cpp-ci
Triggers:
BuildType: BUILD
Webhook: True
FilterGroups:
- - Type: EVENT
Pattern: PUSH,PULL_REQUEST_CREATED,PULL_REQUEST_UPDATED
Environment:
ImagePullCredentialsType: SERVICE_ROLE
ComputeType: BUILD_GENERAL1_SMALL
Type: LINUX_CONTAINER
Image: !Join [ ':', [ !GetAtt ECR.RepositoryUri, amazon-linux-2023-linux-amd64 ]]
EnvironmentVariables:
- Name: LAMBDA_TEST_ROLE
Type: PLAINTEXT
Value: !Ref LambdaTestRole
Source:
Type: GITHUB
Location: !Ref GitHub
BuildSpec: ci/codebuild/amazonlinux-2023.yml

Amazon2:
Type: AWS::CodeBuild::Project
Properties:
Expand Down Expand Up @@ -301,6 +335,40 @@ Resources:
Location: !Ref GitHub
BuildSpec: ci/codebuild/amazonlinux-2018.03.yml

Ubuntu2204:
Type: AWS::CodeBuild::Project
Properties:
Artifacts:
Type: NO_ARTIFACTS
BadgeEnabled: True
Visibility: PUBLIC_READ
ConcurrentBuildLimit: 1
ServiceRole: !GetAtt CodeBuildRole.Arn
ResourceAccessRole: !GetAtt LogsAccessRole.Arn
LogsConfig:
CloudWatchLogs:
Status: ENABLED
GroupName: /aws/codebuild/aws-lambda-cpp-ci
Triggers:
BuildType: BUILD
Webhook: True
FilterGroups:
- - Type: EVENT
Pattern: PUSH,PULL_REQUEST_CREATED,PULL_REQUEST_UPDATED
Environment:
ImagePullCredentialsType: SERVICE_ROLE
ComputeType: BUILD_GENERAL1_SMALL
Type: LINUX_CONTAINER
Image: !Join [ ':', [ !GetAtt ECR.RepositoryUri, ubuntu-linux-22.04-linux-amd64 ]]
EnvironmentVariables:
- Name: LAMBDA_TEST_ROLE
Type: PLAINTEXT
Value: !Ref LambdaTestRole
Source:
Type: GITHUB
Location: !Ref GitHub
BuildSpec: ci/codebuild/ubuntu-22.04.yml

Ubuntu1804:
Type: AWS::CodeBuild::Project
Properties:
Expand Down Expand Up @@ -369,6 +437,40 @@ Resources:
Location: !Ref GitHub
BuildSpec: ci/codebuild/alpine-3.15.yml

Alpine319:
Type: AWS::CodeBuild::Project
Properties:
Artifacts:
Type: NO_ARTIFACTS
BadgeEnabled: True
Visibility: PUBLIC_READ
ConcurrentBuildLimit: 1
ServiceRole: !GetAtt CodeBuildRole.Arn
ResourceAccessRole: !GetAtt LogsAccessRole.Arn
LogsConfig:
CloudWatchLogs:
Status: ENABLED
GroupName: /aws/codebuild/aws-lambda-cpp-ci
Triggers:
BuildType: BUILD
Webhook: True
FilterGroups:
- - Type: EVENT
Pattern: PUSH,PULL_REQUEST_CREATED,PULL_REQUEST_UPDATED
Environment:
ImagePullCredentialsType: SERVICE_ROLE
ComputeType: BUILD_GENERAL1_SMALL
Type: LINUX_CONTAINER
Image: !Join [ ':', [ !GetAtt ECR.RepositoryUri, alpine-linux-3.19-linux-amd64 ]]
EnvironmentVariables:
- Name: LAMBDA_TEST_ROLE
Type: PLAINTEXT
Value: !Ref LambdaTestRole
Source:
Type: GITHUB
Location: !Ref GitHub
BuildSpec: ci/codebuild/alpine-3.19.yml

Arch:
Type: AWS::CodeBuild::Project
Properties:
Expand Down
9 changes: 9 additions & 0 deletions ci/codebuild/alpine-3.19.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
version: 0.2
# This uses the docker image specified in ci/docker/alpine-linux-3.19
phases:
build:
commands:
- echo Build started on `date`
- ./ci/codebuild/build.sh -DTEST_RESOURCE_PREFIX=lambda-cpp-alpine319
- ./ci/codebuild/run-tests.sh aws-lambda-package-lambda-test-fun
- echo Build completed on `date`
9 changes: 9 additions & 0 deletions ci/codebuild/amazonlinux-2023.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
version: 0.2
phases:
build:
commands:
- echo Build started on `date`
- ./ci/codebuild/build.sh -DTEST_RESOURCE_PREFIX=lambda-cpp-al2023_$(arch)
- ./ci/codebuild/run-tests.sh aws-lambda-package-lambda-test-fun
- ./ci/codebuild/run-tests.sh aws-lambda-package-lambda-test-fun-no-glibc
- echo Build completed on `date`
9 changes: 9 additions & 0 deletions ci/codebuild/ubuntu-22.04.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
version: 0.2
# This uses the docker image specified in ci/docker/ubuntu-linux-22.04
phases:
build:
commands:
- echo Build started on `date`
- ./ci/codebuild/build.sh -DTEST_RESOURCE_PREFIX=lambda-cpp-ubuntu2204
- ./ci/codebuild/run-tests.sh aws-lambda-package-lambda-test-fun
- echo Build completed on `date`
18 changes: 18 additions & 0 deletions ci/docker/alpine-linux-3.19
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
FROM public.ecr.aws/docker/library/alpine:3.19

RUN apk add --no-cache \
bash \
cmake \
curl-dev \
g++ \
git \
ninja \
openssl-libs-static \
zlib-dev \
zip

RUN git clone --recurse-submodules https://github.com/aws/aws-sdk-cpp.git
RUN cmake -Saws-sdk-cpp -Baws-sdk-cpp/build -GNinja \
-DBUILD_ONLY=lambda \
-DENABLE_TESTING=OFF
RUN cd aws-sdk-cpp/build && ninja && ninja install
158 changes: 158 additions & 0 deletions ci/docker/uberbase.Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
FROM public.ecr.aws/amazonlinux/amazonlinux:2023 as sdkgit
RUN dnf install -y git
WORKDIR /
RUN git clone https://github.com/aws/aws-sdk-cpp --recurse-submodules

FROM public.ecr.aws/amazonlinux/amazonlinux:2 as amazon-linux-2
RUN yum install -y \
cmake3 \
ninja-build \
git \
gcc-c++ \
openssl-devel \
curl-devel \
openssl-static \
zip
COPY --from=sdkgit /aws-sdk-cpp /aws-sdk-cpp
RUN cmake3 -Saws-sdk-cpp -Baws-sdk-cpp/build -DBUILD_ONLY=lambda -DENABLE_TESTING=OFF -GNinja
RUN cd aws-sdk-cpp/build && ninja-build && ninja-build install
RUN ln -s /usr/bin/cmake3 /usr/local/bin/cmake
RUN ln -s /usr/bin/ctest3 /usr/local/bin/ctest
RUN ln -s /usr/bin/ninja-build /usr/local/bin/ninja

FROM public.ecr.aws/amazonlinux/amazonlinux:2018.03 as amazon-linux-2018.03
RUN yum install -y \
gcc-c++ \
git \
ninja-build \
curl-devel \
openssl-devel \
openssl-static \
zlib-devel \
gtest-devel \
zip
RUN curl -fLo cmake-install https://github.com/Kitware/CMake/releases/download/v3.13.0/cmake-3.13.0-Linux-x86_64.sh && \
sh cmake-install --skip-license --prefix=/usr --exclude-subdirectory;
COPY --from=sdkgit /aws-sdk-cpp /aws-sdk-cpp
RUN cmake -Saws-sdk-cpp -Baws-sdk-cpp/build -DBUILD_ONLY=lambda -DENABLE_TESTING=OFF -GNinja
RUN cd aws-sdk-cpp/build && ninja-build && ninja-build install
RUN ln -s /usr/bin/ninja-build /usr/local/bin/ninja

FROM public.ecr.aws/amazonlinux/amazonlinux:2023 as amazon-linux-2023
RUN dnf install -y \
cmake \
ninja-build \
gcc-c++ \
openssl-devel \
curl-devel \
zip \
zlib-devel
COPY --from=sdkgit /aws-sdk-cpp /aws-sdk-cpp
RUN cmake -Saws-sdk-cpp -Baws-sdk-cpp/build -DBUILD_ONLY=lambda -DENABLE_TESTING=OFF -GNinja
RUN cd aws-sdk-cpp/build && ninja && ninja install

FROM public.ecr.aws/ubuntu/ubuntu:22.04 as ubuntu-linux-22.04
RUN apt-get update
RUN apt-get install -y \
git \
clang \
cmake \
zlib1g-dev \
libssl-dev \
libcurl4-openssl-dev \
wget \
ninja-build \
zip
RUN update-alternatives --set cc /usr/bin/clang
RUN update-alternatives --set c++ /usr/bin/clang++
COPY --from=sdkgit /aws-sdk-cpp /aws-sdk-cpp
RUN cmake -Saws-sdk-cpp -Baws-sdk-cpp/build -DBUILD_ONLY=lambda -DENABLE_TESTING=OFF -GNinja
RUN cd aws-sdk-cpp/build && ninja && ninja install

FROM public.ecr.aws/ubuntu/ubuntu:18.04 as ubuntu-linux-18.04
RUN apt-get update
RUN apt-get install -y \
autoconf \
clang \
git \
libssl-dev \
libtool \
make \
ninja-build \
wget \
zip \
zlib1g-dev
RUN wget -O cmake-install https://github.com/Kitware/CMake/releases/download/v3.13.0/cmake-3.13.0-Linux-x86_64.sh && \
sh cmake-install --skip-license --prefix=/usr --exclude-subdirectory;
RUN update-alternatives --set cc /usr/bin/clang
RUN update-alternatives --set c++ /usr/bin/clang++
RUN git clone --branch curl-8_5_0 https://github.com/curl/curl.git
WORKDIR /curl
RUN autoreconf -fi
RUN ./configure --with-openssl
RUN make
RUN make install
WORKDIR /
COPY --from=sdkgit /aws-sdk-cpp /aws-sdk-cpp
RUN cmake -Saws-sdk-cpp -Baws-sdk-cpp/build -DBUILD_ONLY=lambda -DENABLE_TESTING=OFF -GNinja
RUN cd aws-sdk-cpp/build && ninja && ninja install

FROM public.ecr.aws/docker/library/archlinux:latest as arch-linux
RUN pacman -Sy --noconfirm \
cmake \
ninja \
clang \
curl \
zip
COPY --from=sdkgit /aws-sdk-cpp /aws-sdk-cpp
RUN CC=/usr/bin/clang CXX=/usr/bin/clang++ cmake -Saws-sdk-cpp -Baws-sdk-cpp/build -GNinja \
-DBUILD_ONLY=lambda \
-DENABLE_TESTING=OFF
RUN cmake --build aws-sdk-cpp/build -t install

FROM public.ecr.aws/docker/library/alpine:3.19 as alpine-linux-3.19
RUN apk add --no-cache \
bash \
cmake \
curl-dev \
g++ \
git \
ninja \
openssl-libs-static \
zlib-dev \
zip
COPY --from=sdkgit /aws-sdk-cpp /aws-sdk-cpp
RUN cmake -Saws-sdk-cpp -Baws-sdk-cpp/build -GNinja \
-DBUILD_ONLY=lambda \
-DENABLE_TESTING=OFF
RUN cd aws-sdk-cpp/build && ninja && ninja install

FROM public.ecr.aws/docker/library/alpine:3.15 as alpine-linux-3.15
RUN apk add --no-cache \
bash \
cmake \
curl-dev \
g++ \
git \
libexecinfo-dev \
ninja \
openssl-libs-static \
zlib-dev \
zip
COPY --from=sdkgit /aws-sdk-cpp /aws-sdk-cpp
RUN cmake -Saws-sdk-cpp -Baws-sdk-cpp/build -GNinja \
-DBUILD_ONLY=lambda \
-DENABLE_TESTING=OFF
RUN cd aws-sdk-cpp/build && ninja && ninja install

FROM scratch as all
COPY --from=alpine-linux-3.19 /etc/os-release /
COPY --from=alpine-linux-3.15 /etc/os-release /
COPY --from=amazon-linux-2 /etc/os-release /
COPY --from=amazon-linux-2018.03 /etc/os-release /
COPY --from=amazon-linux-2023 /etc/os-release /
COPY --from=arch-linux /etc/os-release /
COPY --from=ubuntu-linux-18.04 /etc/os-release /
COPY --from=ubuntu-linux-22.04 /etc/os-release /

FROM scratch
20 changes: 20 additions & 0 deletions ci/docker/ubuntu-linux-22.04
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
FROM public.ecr.aws/ubuntu/ubuntu:22.04

RUN apt-get update
RUN apt-get install -y \
git \
clang \
cmake \
zlib1g-dev \
libssl-dev \
libcurl4-openssl-dev \
wget \
ninja-build \
zip

RUN update-alternatives --set cc /usr/bin/clang
RUN update-alternatives --set c++ /usr/bin/clang++

RUN git clone https://github.com/aws/aws-sdk-cpp.git --recurse-submodules
RUN cmake -Saws-sdk-cpp -Baws-sdk-cpp/build -DBUILD_ONLY=lambda -DENABLE_TESTING=OFF -GNinja
RUN cd aws-sdk-cpp/build && ninja && ninja install
Loading