Skip to content

Commit 5992a8b

Browse files
committed
Add Ubuntu bookworm to integration tests
1 parent 7139452 commit 5992a8b

File tree

1 file changed

+110
-0
lines changed

1 file changed

+110
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
version: 0.2
2+
3+
env:
4+
variables:
5+
OS_DISTRIBUTION: debian
6+
NPX_BINARY_LOCATION: "/usr/local/bin/npx"
7+
batch:
8+
build-matrix:
9+
static:
10+
ignore-failure: false
11+
env:
12+
privileged-mode: true
13+
dynamic:
14+
env:
15+
variables:
16+
DISTRO_VERSION:
17+
- "bookworm"
18+
RUNTIME_VERSION:
19+
- "16"
20+
- "18"
21+
phases:
22+
pre_build:
23+
commands:
24+
- export IMAGE_TAG="nodejs-${OS_DISTRIBUTION}-${DISTRO_VERSION}:${RUNTIME_VERSION}"
25+
- echo "Extracting and including the Runtime Interface Emulator"
26+
- SCRATCH_DIR=".scratch"
27+
- mkdir "${SCRATCH_DIR}"
28+
- ARCHITECTURE=$(arch)
29+
- >
30+
if [[ "$ARCHITECTURE" == "x86_64" ]]; then
31+
RIE="aws-lambda-rie"
32+
elif [[ "$ARCHITECTURE" == "aarch64" ]]; then
33+
RIE="aws-lambda-rie-arm64"
34+
else
35+
echo "Architecture $ARCHITECTURE is not currently supported."
36+
exit 1
37+
fi
38+
- tar -xvf test/integration/resources/${RIE}.tar.gz --directory "${SCRATCH_DIR}"
39+
- >
40+
cp "test/integration/docker/Dockerfile.echo.${OS_DISTRIBUTION}" \
41+
"${SCRATCH_DIR}/Dockerfile.echo.${OS_DISTRIBUTION}.tmp"
42+
- >
43+
echo "COPY ${SCRATCH_DIR}/${RIE} /usr/bin/${RIE}" >> \
44+
"${SCRATCH_DIR}/Dockerfile.echo.${OS_DISTRIBUTION}.tmp"
45+
- >
46+
if [[ -z "${DOCKERHUB_USERNAME}" && -z "${DOCKERHUB_PASSWORD}" ]];
47+
then
48+
echo "DockerHub credentials not set as CodeBuild environment variables. Continuing without docker login."
49+
else
50+
echo "Performing DockerHub login . . ."
51+
docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD
52+
fi
53+
- >
54+
echo "RUN apt-get update && apt-get install -y curl" >> \
55+
"${SCRATCH_DIR}/Dockerfile.echo.${OS_DISTRIBUTION}.tmp"
56+
- echo "Building image ${IMAGE_TAG}"
57+
- >
58+
docker build . \
59+
-f "${SCRATCH_DIR}/Dockerfile.echo.${OS_DISTRIBUTION}.tmp" \
60+
-t "${IMAGE_TAG}" \
61+
--build-arg RUNTIME_VERSION="${RUNTIME_VERSION}" \
62+
--build-arg DISTRO_VERSION="${DISTRO_VERSION}"
63+
build:
64+
commands:
65+
- set -x
66+
- echo "Running Image ${IMAGE_TAG}"
67+
- docker network create "${OS_DISTRIBUTION}-network"
68+
- >
69+
docker run \
70+
--detach \
71+
--name "${OS_DISTRIBUTION}-app" \
72+
--network "${OS_DISTRIBUTION}-network" \
73+
--entrypoint="" \
74+
"${IMAGE_TAG}" \
75+
sh -c "/usr/bin/${RIE} ${NPX_BINARY_LOCATION} aws-lambda-ric index.handler"
76+
- sleep 2
77+
- >
78+
docker run \
79+
--name "${OS_DISTRIBUTION}-tester" \
80+
--env "TARGET=${OS_DISTRIBUTION}-app" \
81+
--network "${OS_DISTRIBUTION}-network" \
82+
--entrypoint="" \
83+
"${IMAGE_TAG}" \
84+
sh -c 'curl -X POST "http://${TARGET}:8080/2015-03-31/functions/function/invocations" -d "{}" --max-time 10'
85+
- actual="$(docker logs --tail 1 "${OS_DISTRIBUTION}-tester" | xargs)"
86+
- expected='success'
87+
- |
88+
echo "Response: ${actual}"
89+
if [[ "$actual" != "$expected" ]]; then
90+
echo "fail! runtime: $RUNTIME - expected output $expected - got $actual"
91+
exit -1
92+
fi
93+
finally:
94+
- |
95+
echo "---------Container Logs: ${OS_DISTRIBUTION}-app----------"
96+
echo
97+
docker logs "${OS_DISTRIBUTION}-app" || true
98+
echo
99+
echo "---------------------------------------------------"
100+
echo "--------Container Logs: ${OS_DISTRIBUTION}-tester--------"
101+
echo
102+
docker logs "${OS_DISTRIBUTION}-tester" || true
103+
echo
104+
echo "---------------------------------------------------"
105+
- echo "Cleaning up..."
106+
- docker stop "${OS_DISTRIBUTION}-app" || true
107+
- docker rm --force "${OS_DISTRIBUTION}-app" || true
108+
- docker stop "${OS_DISTRIBUTION}-tester" || true
109+
- docker rm --force "${OS_DISTRIBUTION}-tester" || true
110+
- docker network rm "${OS_DISTRIBUTION}-network" || true

0 commit comments

Comments
 (0)