Skip to content

Commit a94d6e2

Browse files
authored
Merge pull request #59 from keshayad/main
Add ARM64 architecture support
2 parents 386c124 + c4b7ffd commit a94d6e2

16 files changed

+324
-135
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -175,4 +175,4 @@ If you discover a potential security issue in this project we ask that you notif
175175

176176
## License
177177

178-
This project is licensed under the Apache-2.0 License.
178+
This project is licensed under the Apache-2.0 License.

awslambdaric/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22
Copyright 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
33
"""
44

5-
__version__ = "1.2.2"
5+
__version__ = "2.0.0"

scripts/preinstall.sh

+1
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ else
3434
--prefix "$ARTIFACTS_DIR" \
3535
--disable-shared \
3636
--without-ssl \
37+
--with-pic \
3738
--without-zlib && \
3839
make && \
3940
make install

tests/integration/codebuild/buildspec.os.alpine.1.yml

+24-15
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ batch:
1010
static:
1111
ignore-failure: false
1212
env:
13-
type: LINUX_CONTAINER
1413
privileged-mode: true
1514
dynamic:
1615
env:
@@ -27,15 +26,25 @@ phases:
2726
- echo "Extracting and including the Runtime Interface Emulator"
2827
- SCRATCH_DIR=".scratch"
2928
- mkdir "${SCRATCH_DIR}"
30-
- tar -xvf tests/integration/resources/aws-lambda-rie.tar.gz --directory "${SCRATCH_DIR}"
29+
- ARCHITECTURE=$(arch)
30+
- >
31+
if [[ "$ARCHITECTURE" == "x86_64" ]]; then
32+
RIE="aws-lambda-rie"
33+
elif [[ "$ARCHITECTURE" == "aarch64" ]]; then
34+
RIE="aws-lambda-rie-arm64"
35+
else
36+
echo "Architecture $ARCHITECTURE is not currently supported."
37+
exit 1
38+
fi
39+
- tar -xvf tests/integration/resources/${RIE}.tar.gz --directory "${SCRATCH_DIR}"
3140
- >
3241
cp "tests/integration/docker/Dockerfile.echo.${OS_DISTRIBUTION}" \
3342
"${SCRATCH_DIR}/Dockerfile.echo.${OS_DISTRIBUTION}.tmp"
3443
- >
3544
echo "RUN apk add curl" >> \
3645
"${SCRATCH_DIR}/Dockerfile.echo.${OS_DISTRIBUTION}.tmp"
3746
- >
38-
echo "COPY ${SCRATCH_DIR}/aws-lambda-rie /usr/bin/aws-lambda-rie" >> \
47+
echo "COPY ${SCRATCH_DIR}/${RIE} /usr/bin/${RIE}" >> \
3948
"${SCRATCH_DIR}/Dockerfile.echo.${OS_DISTRIBUTION}.tmp"
4049
- >
4150
if [[ -z "${DOCKERHUB_USERNAME}" && -z "${DOCKERHUB_PASSWORD}" ]];
@@ -60,12 +69,11 @@ phases:
6069
- >
6170
docker run \
6271
--detach \
63-
-e "PYTHON_LOCATION=${PYTHON_LOCATION}" \
6472
--name "${TEST_NAME}-app" \
6573
--network "${TEST_NAME}-network" \
6674
--entrypoint="" \
6775
"${IMAGE_TAG}" \
68-
sh -c '/usr/bin/aws-lambda-rie ${PYTHON_LOCATION} -m awslambdaric app.handler'
76+
sh -c "/usr/bin/${RIE} ${PYTHON_LOCATION} -m awslambdaric app.handler"
6977
- sleep 2
7078
- >
7179
docker run \
@@ -81,19 +89,20 @@ phases:
8189
echo "Response: ${actual}"
8290
if [[ "$actual" != "$expected" ]]; then
8391
echo "fail! runtime: $RUNTIME - expected output $expected - got $actual"
84-
echo "---------Container Logs: ${TEST_NAME}-app----------"
85-
echo
86-
docker logs "${TEST_NAME}-app"
87-
echo
88-
echo "---------------------------------------------------"
89-
echo "--------Container Logs: ${TEST_NAME}-tester--------"
90-
echo
91-
docker logs "${TEST_NAME}-tester"
92-
echo
93-
echo "---------------------------------------------------"
9492
exit -1
9593
fi
9694
finally:
95+
- |
96+
echo "---------Container Logs: ${TEST_NAME}-app----------"
97+
echo
98+
docker logs "${TEST_NAME}-app" || true
99+
echo
100+
echo "---------------------------------------------------"
101+
echo "--------Container Logs: ${TEST_NAME}-tester--------"
102+
echo
103+
docker logs "${TEST_NAME}-tester" || true
104+
echo
105+
echo "---------------------------------------------------"
97106
- echo "Cleaning up..."
98107
- docker stop "${TEST_NAME}-app" || true
99108
- docker rm --force "${TEST_NAME}-app" || true

tests/integration/codebuild/buildspec.os.alpine.2.yml

+24-15
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ batch:
1010
static:
1111
ignore-failure: false
1212
env:
13-
type: LINUX_CONTAINER
1413
privileged-mode: true
1514
dynamic:
1615
env:
@@ -29,15 +28,25 @@ phases:
2928
- echo "Extracting and including the Runtime Interface Emulator"
3029
- SCRATCH_DIR=".scratch"
3130
- mkdir "${SCRATCH_DIR}"
32-
- tar -xvf tests/integration/resources/aws-lambda-rie.tar.gz --directory "${SCRATCH_DIR}"
31+
- ARCHITECTURE=$(arch)
32+
- >
33+
if [[ "$ARCHITECTURE" == "x86_64" ]]; then
34+
RIE="aws-lambda-rie"
35+
elif [[ "$ARCHITECTURE" == "aarch64" ]]; then
36+
RIE="aws-lambda-rie-arm64"
37+
else
38+
echo "Architecture $ARCHITECTURE is not currently supported."
39+
exit 1
40+
fi
41+
- tar -xvf tests/integration/resources/${RIE}.tar.gz --directory "${SCRATCH_DIR}"
3342
- >
3443
cp "tests/integration/docker/Dockerfile.echo.${OS_DISTRIBUTION}" \
3544
"${SCRATCH_DIR}/Dockerfile.echo.${OS_DISTRIBUTION}.tmp"
3645
- >
3746
echo "RUN apk add curl" >> \
3847
"${SCRATCH_DIR}/Dockerfile.echo.${OS_DISTRIBUTION}.tmp"
3948
- >
40-
echo "COPY ${SCRATCH_DIR}/aws-lambda-rie /usr/bin/aws-lambda-rie" >> \
49+
echo "COPY ${SCRATCH_DIR}/${RIE} /usr/bin/${RIE}" >> \
4150
"${SCRATCH_DIR}/Dockerfile.echo.${OS_DISTRIBUTION}.tmp"
4251
- >
4352
if [[ -z "${DOCKERHUB_USERNAME}" && -z "${DOCKERHUB_PASSWORD}" ]];
@@ -62,12 +71,11 @@ phases:
6271
- >
6372
docker run \
6473
--detach \
65-
-e "PYTHON_LOCATION=${PYTHON_LOCATION}" \
6674
--name "${TEST_NAME}-app" \
6775
--network "${TEST_NAME}-network" \
6876
--entrypoint="" \
6977
"${IMAGE_TAG}" \
70-
sh -c '/usr/bin/aws-lambda-rie ${PYTHON_LOCATION} -m awslambdaric app.handler'
78+
sh -c "/usr/bin/${RIE} ${PYTHON_LOCATION} -m awslambdaric app.handler"
7179
- sleep 2
7280
- >
7381
docker run \
@@ -83,19 +91,20 @@ phases:
8391
echo "Response: ${actual}"
8492
if [[ "$actual" != "$expected" ]]; then
8593
echo "fail! runtime: $RUNTIME - expected output $expected - got $actual"
86-
echo "---------Container Logs: ${TEST_NAME}-app----------"
87-
echo
88-
docker logs "${TEST_NAME}-app"
89-
echo
90-
echo "---------------------------------------------------"
91-
echo "--------Container Logs: ${TEST_NAME}-tester--------"
92-
echo
93-
docker logs "${TEST_NAME}-tester"
94-
echo
95-
echo "---------------------------------------------------"
9694
exit -1
9795
fi
9896
finally:
97+
- |
98+
echo "---------Container Logs: ${TEST_NAME}-app----------"
99+
echo
100+
docker logs "${TEST_NAME}-app" || true
101+
echo
102+
echo "---------------------------------------------------"
103+
echo "--------Container Logs: ${TEST_NAME}-tester--------"
104+
echo
105+
docker logs "${TEST_NAME}-tester" || true
106+
echo
107+
echo "---------------------------------------------------"
99108
- echo "Cleaning up..."
100109
- docker stop "${TEST_NAME}-app" || true
101110
- docker rm --force "${TEST_NAME}-app" || true

tests/integration/codebuild/buildspec.os.alpine.3.yml

+24-15
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ batch:
1010
static:
1111
ignore-failure: false
1212
env:
13-
type: LINUX_CONTAINER
1413
privileged-mode: true
1514
dynamic:
1615
env:
@@ -29,15 +28,25 @@ phases:
2928
- echo "Extracting and including the Runtime Interface Emulator"
3029
- SCRATCH_DIR=".scratch"
3130
- mkdir "${SCRATCH_DIR}"
32-
- tar -xvf tests/integration/resources/aws-lambda-rie.tar.gz --directory "${SCRATCH_DIR}"
31+
- ARCHITECTURE=$(arch)
32+
- >
33+
if [[ "$ARCHITECTURE" == "x86_64" ]]; then
34+
RIE="aws-lambda-rie"
35+
elif [[ "$ARCHITECTURE" == "aarch64" ]]; then
36+
RIE="aws-lambda-rie-arm64"
37+
else
38+
echo "Architecture $ARCHITECTURE is not currently supported."
39+
exit 1
40+
fi
41+
- tar -xvf tests/integration/resources/${RIE}.tar.gz --directory "${SCRATCH_DIR}"
3342
- >
3443
cp "tests/integration/docker/Dockerfile.echo.${OS_DISTRIBUTION}" \
3544
"${SCRATCH_DIR}/Dockerfile.echo.${OS_DISTRIBUTION}.tmp"
3645
- >
3746
echo "RUN apk add curl" >> \
3847
"${SCRATCH_DIR}/Dockerfile.echo.${OS_DISTRIBUTION}.tmp"
3948
- >
40-
echo "COPY ${SCRATCH_DIR}/aws-lambda-rie /usr/bin/aws-lambda-rie" >> \
49+
echo "COPY ${SCRATCH_DIR}/${RIE} /usr/bin/${RIE}" >> \
4150
"${SCRATCH_DIR}/Dockerfile.echo.${OS_DISTRIBUTION}.tmp"
4251
- >
4352
if [[ -z "${DOCKERHUB_USERNAME}" && -z "${DOCKERHUB_PASSWORD}" ]];
@@ -62,12 +71,11 @@ phases:
6271
- >
6372
docker run \
6473
--detach \
65-
-e "PYTHON_LOCATION=${PYTHON_LOCATION}" \
6674
--name "${TEST_NAME}-app" \
6775
--network "${TEST_NAME}-network" \
6876
--entrypoint="" \
6977
"${IMAGE_TAG}" \
70-
sh -c '/usr/bin/aws-lambda-rie ${PYTHON_LOCATION} -m awslambdaric app.handler'
78+
sh -c "/usr/bin/${RIE} ${PYTHON_LOCATION} -m awslambdaric app.handler"
7179
- sleep 2
7280
- >
7381
docker run \
@@ -83,19 +91,20 @@ phases:
8391
echo "Response: ${actual}"
8492
if [[ "$actual" != "$expected" ]]; then
8593
echo "fail! runtime: $RUNTIME - expected output $expected - got $actual"
86-
echo "---------Container Logs: ${TEST_NAME}-app----------"
87-
echo
88-
docker logs "${TEST_NAME}-app"
89-
echo
90-
echo "---------------------------------------------------"
91-
echo "--------Container Logs: ${TEST_NAME}-tester--------"
92-
echo
93-
docker logs "${TEST_NAME}-tester"
94-
echo
95-
echo "---------------------------------------------------"
9694
exit -1
9795
fi
9896
finally:
97+
- |
98+
echo "---------Container Logs: ${TEST_NAME}-app----------"
99+
echo
100+
docker logs "${TEST_NAME}-app" || true
101+
echo
102+
echo "---------------------------------------------------"
103+
echo "--------Container Logs: ${TEST_NAME}-tester--------"
104+
echo
105+
docker logs "${TEST_NAME}-tester" || true
106+
echo
107+
echo "---------------------------------------------------"
99108
- echo "Cleaning up..."
100109
- docker stop "${TEST_NAME}-app" || true
101110
- docker rm --force "${TEST_NAME}-app" || true

tests/integration/codebuild/buildspec.os.amazonlinux.yml renamed to tests/integration/codebuild/buildspec.os.amazonlinux.1.yml

+5-5
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,12 @@ batch:
1010
static:
1111
ignore-failure: false
1212
env:
13-
type: LINUX_CONTAINER
1413
privileged-mode: true
1514
dynamic:
1615
env:
1716
variables:
1817
DISTRO_VERSION:
1918
- "1"
20-
- "2"
2119
RUNTIME_VERSION:
2220
- "3.6"
2321
- "3.7"
@@ -30,6 +28,7 @@ phases:
3028
- echo "Extracting and including the Runtime Interface Emulator"
3129
- SCRATCH_DIR=".scratch"
3230
- mkdir "${SCRATCH_DIR}"
31+
- ARCHITECTURE=$(arch)
3332
- tar -xvf tests/integration/resources/aws-lambda-rie.tar.gz --directory "${SCRATCH_DIR}"
3433
- >
3534
cp "tests/integration/docker/Dockerfile.echo.${OS_DISTRIBUTION}" \
@@ -51,7 +50,8 @@ phases:
5150
-f "${SCRATCH_DIR}/Dockerfile.echo.${OS_DISTRIBUTION}.tmp" \
5251
-t "${IMAGE_TAG}" \
5352
--build-arg RUNTIME_VERSION="${RUNTIME_VERSION}" \
54-
--build-arg DISTRO_VERSION="${DISTRO_VERSION}"
53+
--build-arg DISTRO_VERSION="${DISTRO_VERSION}" \
54+
--build-arg ARCHITECTURE="${ARCHITECTURE}"
5555
build:
5656
commands:
5757
- set -x
@@ -83,12 +83,12 @@ phases:
8383
echo "fail! runtime: $RUNTIME - expected output $expected - got $actual"
8484
echo "---------Container Logs: ${TEST_NAME}-app----------"
8585
echo
86-
docker logs "${TEST_NAME}-app"
86+
docker logs "${TEST_NAME}-app" || true
8787
echo
8888
echo "---------------------------------------------------"
8989
echo "--------Container Logs: ${TEST_NAME}-tester--------"
9090
echo
91-
docker logs "${TEST_NAME}-tester"
91+
docker logs "${TEST_NAME}-tester" || true
9292
echo
9393
echo "---------------------------------------------------"
9494
exit -1

0 commit comments

Comments
 (0)