Skip to content

Commit 891251e

Browse files
committed
fix: speed up smoke tests
1 parent 81a5082 commit 891251e

4 files changed

Lines changed: 31 additions & 7 deletions

File tree

.github/workflows/runtime-interface-client_pr.yml

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,15 @@ permissions:
2020
jobs:
2121

2222
smoke-test:
23-
runs-on: ubuntu-latest
23+
strategy:
24+
fail-fast: true
25+
matrix:
26+
include:
27+
- arch: x86_64
28+
runner: ubuntu-latest
29+
- arch: aarch64
30+
runner: ubuntu-24.04-arm
31+
runs-on: ${{ matrix.runner }}
2432
steps:
2533
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
2634

@@ -39,9 +47,9 @@ jobs:
3947
working-directory: ./aws-lambda-java-serialization
4048
run: mvn clean install
4149

42-
- name: Runtime Interface Client smoke tests - Run 'pr' target
50+
- name: Runtime Interface Client smoke tests - Run 'pr-${{ matrix.arch }}' target
4351
working-directory: ./aws-lambda-java-runtime-interface-client
44-
run: make pr
52+
run: make pr-${{ matrix.arch }}
4553
env:
4654
IS_JAVA_8: true
4755

aws-lambda-java-runtime-interface-client/Makefile

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,20 @@ setup-codebuild-agent:
3030
--build-arg ARCHITECTURE=$(ARCHITECTURE_ALIAS) \
3131
- < test/integration/codebuild-local/Dockerfile.agent
3232

33+
# Smoke tests are split per-architecture so CI can run each set on a native
34+
# runner. Running the linux/arm64/v8 combos under QEMU on an x86_64 host makes
35+
# `mvn install` recompile curl for aarch64 emulated, which takes ~30 minutes.
3336
.PHONY: test-smoke
34-
test-smoke: setup-codebuild-agent
37+
test-smoke: test-smoke-x86_64 test-smoke-aarch64
38+
39+
.PHONY: test-smoke-x86_64
40+
test-smoke-x86_64: setup-codebuild-agent
3541
CODEBUILD_IMAGE_TAG=codebuild-agent test/integration/codebuild-local/test_one.sh test/integration/codebuild/buildspec.os.alpine.yml alpine 3.15 corretto11 linux/amd64
36-
CODEBUILD_IMAGE_TAG=codebuild-agent test/integration/codebuild-local/test_one.sh test/integration/codebuild/buildspec.os.alpine.yml alpine 3.15 corretto11 linux/arm64/v8
3742
CODEBUILD_IMAGE_TAG=codebuild-agent test/integration/codebuild-local/test_one.sh test/integration/codebuild/buildspec.os.amazoncorretto.yml amazoncorretto amazoncorretto 11 linux/amd64
43+
44+
.PHONY: test-smoke-aarch64
45+
test-smoke-aarch64: setup-codebuild-agent
46+
CODEBUILD_IMAGE_TAG=codebuild-agent test/integration/codebuild-local/test_one.sh test/integration/codebuild/buildspec.os.alpine.yml alpine 3.15 corretto11 linux/arm64/v8
3847
CODEBUILD_IMAGE_TAG=codebuild-agent test/integration/codebuild-local/test_one.sh test/integration/codebuild/buildspec.os.amazoncorretto.yml amazoncorretto amazoncorretto 11 linux/arm64/v8
3948

4049
.PHONY: test-integ
@@ -49,6 +58,13 @@ dev: test
4958
.PHONY: pr
5059
pr: test test-smoke
5160

61+
# Per-architecture PR checks so CI can run each on a native runner (no QEMU).
62+
.PHONY: pr-x86_64
63+
pr-x86_64: test test-smoke-x86_64
64+
65+
.PHONY: pr-aarch64
66+
pr-aarch64: test test-smoke-aarch64
67+
5268
.PHONY: build
5369
build: build-x86_64 build-aarch64
5470

aws-lambda-java-runtime-interface-client/test/integration/codebuild/buildspec.os.alpine.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ phases:
4545
# Install serialization (dependency of RIC)
4646
- (cd aws-lambda-java-core && mvn install)
4747
- (cd aws-lambda-java-serialization && mvn install)
48-
- (cd aws-lambda-java-runtime-interface-client && mvn install -DargLineForReflectionTestOnly="")
48+
- (cd aws-lambda-java-runtime-interface-client && mvn install -DmultiArch=false -DargLineForReflectionTestOnly="")
4949
- (cd aws-lambda-java-runtime-interface-client/test/integration/test-handler && mvn install)
5050
- export IMAGE_TAG="java-${OS_DISTRIBUTION}-${DISTRO_VERSION}:${RUNTIME_VERSION}"
5151
- echo "Extracting and including Runtime Interface Emulator"

aws-lambda-java-runtime-interface-client/test/integration/codebuild/buildspec.os.amazoncorretto.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ phases:
4444
# Install serialization (dependency of RIC)
4545
- (cd aws-lambda-java-core && mvn install)
4646
- (cd aws-lambda-java-serialization && mvn install)
47-
- (cd aws-lambda-java-runtime-interface-client && mvn install -DargLineForReflectionTestOnly="")
47+
- (cd aws-lambda-java-runtime-interface-client && mvn install -DmultiArch=false -DargLineForReflectionTestOnly="")
4848
- (cd aws-lambda-java-runtime-interface-client/test/integration/test-handler && mvn install)
4949
- export IMAGE_TAG="java-${OS_DISTRIBUTION}-${DISTRO_VERSION}:${RUNTIME_VERSION}"
5050
- echo "Extracting and including Runtime Interface Emulator"

0 commit comments

Comments
 (0)