diff --git a/.github/workflows/aws-lambda-java-tests.yml b/.github/workflows/aws-lambda-java-tests.yml index 324c44514..e651c0239 100644 --- a/.github/workflows/aws-lambda-java-tests.yml +++ b/.github/workflows/aws-lambda-java-tests.yml @@ -11,14 +11,15 @@ on: - 'aws-lambda-java-tests/**' - 'aws-lambda-java-events/**' - 'aws-lambda-java-serialization/**' + - 'aws-lambda-java-runtime-interface-client/**' pull_request: branches: [ '*' ] paths: - 'aws-lambda-java-tests/**' - 'aws-lambda-java-events/**' - 'aws-lambda-java-serialization/**' + - 'aws-lambda-java-runtime-interface-client/**' - '.github/workflows/aws-lambda-java-tests.yml' - permissions: contents: read diff --git a/.github/workflows/runtime-interface-client_pr.yml b/.github/workflows/runtime-interface-client_pr.yml index a0d8c6cc8..183549ec6 100644 --- a/.github/workflows/runtime-interface-client_pr.yml +++ b/.github/workflows/runtime-interface-client_pr.yml @@ -21,13 +21,16 @@ jobs: smoke-test: runs-on: ubuntu-latest + strategy: + matrix: + java-version: [8, 11, 17, 21, 25] steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - - name: Set up JDK 1.8 + - name: Set up JDK ${{ matrix.java-version }} uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 with: - java-version: 8 + java-version: ${{ matrix.java-version }} distribution: corretto cache: maven @@ -43,7 +46,7 @@ jobs: working-directory: ./aws-lambda-java-runtime-interface-client run: make pr env: - IS_JAVA_8: true + IS_JAVA_8: ${{ matrix.java-version == 8 }} build: runs-on: ubuntu-latest diff --git a/.gitignore b/.gitignore index 5a277e5d6..ded8a5fee 100644 --- a/.gitignore +++ b/.gitignore @@ -22,6 +22,7 @@ dependency-reduced-pom.xml .settings .classpath .project +.factorypath # OSX .DS_Store @@ -38,4 +39,16 @@ experimental/aws-lambda-java-profiler/integration_tests/helloworld/bin .vscode .kiro build + +# Logs +*.log + +# Maven flatten plugin +.flattened-pom.xml + +# Vim swap files +*.swp +*.swo + +# Tool version manager mise.toml diff --git a/aws-lambda-java-events-sdk-transformer/pom.xml b/aws-lambda-java-events-sdk-transformer/pom.xml index 6de599ef7..a02a80f14 100644 --- a/aws-lambda-java-events-sdk-transformer/pom.xml +++ b/aws-lambda-java-events-sdk-transformer/pom.xml @@ -38,8 +38,9 @@ 1.8 1.11.914 2.15.40 - 5.12.2 + 5.14.3 3.5.4 + diff --git a/aws-lambda-java-events/pom.xml b/aws-lambda-java-events/pom.xml index c8c40e0c7..ba93601dc 100644 --- a/aws-lambda-java-events/pom.xml +++ b/aws-lambda-java-events/pom.xml @@ -39,7 +39,7 @@ UTF-8 2.20.1 2.40.1 - 5.12.2 + 5.14.3 diff --git a/aws-lambda-java-runtime-interface-client/Makefile b/aws-lambda-java-runtime-interface-client/Makefile index 6c3a268fb..78cfa11a6 100644 --- a/aws-lambda-java-runtime-interface-client/Makefile +++ b/aws-lambda-java-runtime-interface-client/Makefile @@ -15,57 +15,63 @@ endif # making it possible to publish resulting artifacts to a codeartifact maven repository -include ric-dev-environment/codeartifact-repo.mk -.PHONY: target + target: $(info ${HELP_MESSAGE}) @exit 0 -.PHONY: test + test: mvn test $(EXTRA_LOAD_ARG) -.PHONY: setup-codebuild-agent + setup-codebuild-agent: docker build -t codebuild-agent \ --build-arg ARCHITECTURE=$(ARCHITECTURE_ALIAS) \ - < test/integration/codebuild-local/Dockerfile.agent -.PHONY: test-smoke + test-smoke: setup-codebuild-agent 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 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 CODEBUILD_IMAGE_TAG=codebuild-agent test/integration/codebuild-local/test_one.sh test/integration/codebuild/buildspec.os.amazoncorretto.yml amazoncorretto amazoncorretto 11 linux/amd64 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 -.PHONY: test-integ + test-integ: setup-codebuild-agent CODEBUILD_IMAGE_TAG=codebuild-agent test/integration/codebuild-local/test_all.sh test/integration/codebuild # Command to run everytime you make changes to verify everything works -.PHONY: dev + dev: test # Verifications to run before sending a pull request -.PHONY: pr + pr: test test-smoke -.PHONY: build + +# The default `mvn clean install` builds all 4 native .so variants (x86_64/aarch64 × glibc/musl) +# and bundles them into a single jar (see build-jni-lib.sh), runs the tests for the host +# environment, and updates coverage data. This is sufficient for what we want to do here. +# +# Running profile-specific builds (e.g., `mvn install -P linux-aarch64`) does NOT test the +# cross-compiled .so — JniHelper.load() tries each .so in order and always loads the first +# one matching the host platform (linux-x86_64 on GitHub Actions runners), so the other +# variants are never exercised. +# +# Platform-specific tests are run through test-smoke via codebuild containers. + build: - mvn clean install $(EXTRA_LOAD_ARG) - mvn install -P linux-x86_64 $(EXTRA_LOAD_ARG) - mvn install -P linux_musl-x86_64 $(EXTRA_LOAD_ARG) - mvn install -P linux-aarch64 $(EXTRA_LOAD_ARG) - mvn install -P linux_musl-aarch64 $(EXTRA_LOAD_ARG) + mvn clean install $(EXTRA_LOAD_ARG) -.PHONY: publish publish: ./ric-dev-environment/publish_snapshot.sh -.PHONY: publish + test-publish: ./ric-dev-environment/test-platform-specific-jar-snapshot.sh -.PHONY: test-rie + test-rie: ./scripts/test-rie.sh "EchoHandler::handleRequest" @@ -80,3 +86,5 @@ TARGETS test Run the Unit tests. test-rie Build and test RIC locally with Lambda Runtime Interface Emulator. (Requires building the project first) endef + +.PHONY: target test setup-codebuild-agent test-smoke test-integ dev pr build publish publish test-rie \ No newline at end of file diff --git a/aws-lambda-java-runtime-interface-client/pom.xml b/aws-lambda-java-runtime-interface-client/pom.xml index a09fd3df7..c7e1225ae 100644 --- a/aws-lambda-java-runtime-interface-client/pom.xml +++ b/aws-lambda-java-runtime-interface-client/pom.xml @@ -37,7 +37,7 @@ 0.8.12 2.4 3.1.1 - 5.12.2 + 5.14.3 3.4.0 3.5.4 - 5.9.2 + 5.14.3 0.8.7 1.4.0 3.16.1 diff --git a/experimental/aws-lambda-java-profiler/examples/cdk/pom.xml b/experimental/aws-lambda-java-profiler/examples/cdk/pom.xml index 4b46f4e2b..d84b2bd1e 100644 --- a/experimental/aws-lambda-java-profiler/examples/cdk/pom.xml +++ b/experimental/aws-lambda-java-profiler/examples/cdk/pom.xml @@ -11,7 +11,7 @@ UTF-8 2.155.0 [10.0.0,11.0.0) - 5.12.2 + 5.14.3 diff --git a/samples/kinesis-firehose-event-handler/pom.xml b/samples/kinesis-firehose-event-handler/pom.xml index 0db8ed83a..4b51c34c9 100644 --- a/samples/kinesis-firehose-event-handler/pom.xml +++ b/samples/kinesis-firehose-event-handler/pom.xml @@ -35,9 +35,7 @@ 1.8 1.8 UTF-8 - 5.12.2 - 3.5.4 - + 5.14.3