From 39fd57e3061f6b9d72ce95e1582fb23fa903f3be Mon Sep 17 00:00:00 2001 From: Bryan Moffatt Date: Fri, 22 Jul 2022 16:10:38 -0700 Subject: [PATCH 1/2] try arm build action on qemu --- .github/workflows/workflow.yml | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 334e2f8..14bb1da 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -32,7 +32,22 @@ jobs: - name: Build It # Build your program with the given configuration run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} - + + build-on-arm-too: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: uraimo/run-on-arch-action@v2 + with: + arch: aarch64 + distro: ubuntu20.04 + run: | + apt-get update && apt-get install -y cmake g++ clang-tidy libcurl4-openssl-dev + cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_CXX_CLANG_TIDY=clang-tidy + cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} + + + format: runs-on: ubuntu-latest @@ -41,4 +56,5 @@ jobs: - name: Check Formatting run: ./ci/codebuild/format-check.sh - + + From 8c1a17c02a6ac9916b74999384727d36a62e6c2a Mon Sep 17 00:00:00 2001 From: Bryan Moffatt Date: Sat, 23 Jul 2022 12:00:46 -0700 Subject: [PATCH 2/2] set test function architecutre --- ci/codebuild/amazonlinux-2.yml | 12 ++++++++++++ ci/docker/amazon-linux-2 | 6 ++++++ ci/docker/ubuntu-linux-18.04 | 2 +- tests/runtime_tests.cpp | 10 +++++++++- 4 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 ci/codebuild/amazonlinux-2.yml create mode 100644 ci/docker/amazon-linux-2 diff --git a/ci/codebuild/amazonlinux-2.yml b/ci/codebuild/amazonlinux-2.yml new file mode 100644 index 0000000..71c0b59 --- /dev/null +++ b/ci/codebuild/amazonlinux-2.yml @@ -0,0 +1,12 @@ +version: 0.2 +phases: + pre_build: + commands: + - yum install -y zip + build: + commands: + - cmake3 -S . -B build -DENABLE_TESTS=ON -DTEST_RESOURCE_PREFIX=al2arm -GNinja + - cd build + - ninja-build + - ninja-build aws-lambda-package-lambda-test-fun + - ctest3 --output-on-failure diff --git a/ci/docker/amazon-linux-2 b/ci/docker/amazon-linux-2 new file mode 100644 index 0000000..787af12 --- /dev/null +++ b/ci/docker/amazon-linux-2 @@ -0,0 +1,6 @@ +FROM public.ecr.aws/amazonlinux/amazonlinux:2 +RUN yum install -y cmake3 ninja-build git gcc-c++ openssl-devel curl-devel +RUN git clone https://github.com/aws/aws-sdk-cpp --recurse-submodules +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 yum install -y openssl-static diff --git a/ci/docker/ubuntu-linux-18.04 b/ci/docker/ubuntu-linux-18.04 index 175ea82..0c43c97 100644 --- a/ci/docker/ubuntu-linux-18.04 +++ b/ci/docker/ubuntu-linux-18.04 @@ -9,7 +9,7 @@ sh cmake-install --skip-license --prefix=/usr --exclude-subdirectory; RUN pip3 install --upgrade pip -RUN git clone https://github.com/aws/aws-sdk-cpp.git +RUN git clone https://github.com/aws/aws-sdk-cpp.git --recurse-submodules RUN update-alternatives --set cc /usr/bin/clang RUN update-alternatives --set c++ /usr/bin/clang++ diff --git a/tests/runtime_tests.cpp b/tests/runtime_tests.cpp index 9547d6b..64ad79f 100644 --- a/tests/runtime_tests.cpp +++ b/tests/runtime_tests.cpp @@ -1,3 +1,4 @@ +#include #include #include #include @@ -16,6 +17,7 @@ #include #include #include +#include extern std::string aws_prefix; @@ -93,7 +95,13 @@ struct LambdaRuntimeTest : public ::testing::Test { Model::FunctionCode funcode; funcode.SetZipFile(std::move(zip_file_bytes)); create_function_request.SetCode(std::move(funcode)); - create_function_request.SetRuntime(Aws::Lambda::Model::Runtime::provided); + create_function_request.SetRuntime(Aws::Lambda::Model::Runtime::provided_al2); + + std::vector lambda_architectures = {Aws::Lambda::Model::Architecture::x86_64}; +#ifdef __aarch64__ + lambda_architectures[0] = Aws::Lambda::Model::Architecture::arm64; +#endif + create_function_request.SetArchitectures(lambda_architectures); auto outcome = m_lambda_client.CreateFunction(create_function_request); ASSERT_TRUE(outcome.IsSuccess()) << "Failed to create function " << function_name;