Description
Summary
After introducing GraalVM support for the Core Utilities (#764), we need to add an additional step to the GitHub build workflows (on v2 branch) to build and test the native image in addition to JVM.
Why is this needed?
This is needed to avoid regressions in GraalVM compatibility in the future and detect unsupported or breaking changes regarding native compilation before merging / releasing them. There is a related issue for running end-to-end tests to test the native images at runtime #1805.
Which area does this relate to?
Governance, GraalVM
Solution
The expected behavior is that the workflow fails if either the GraalVM Reachability Metadata generation fails or if the unit tests against the native image fail. Otherwise, the workflow should succeed.
It should also be possible to skip enable/disable native compilation and testing for specific submodules. This can be done by using the -pl
argument in Maven. For example, if I would like to generate GRM files and run unit tests against the native image for all modules except for powertools-common
I can run this command to exclude powertools-idempotency
:
mvn -Pgenerate-graalvm-files clean test -pl "-powertools-idempotency" && mvn -Pgraalvm-native clean test -pl "-powertools-idempotency"
Acknowledgment
- This request meets Powertools for AWS Lambda (Java) Tenets
- Should this be considered in other Powertools for AWS Lambda (Java) languages? i.e. Python, TypeScript
Metadata
Metadata
Assignees
Labels
Type
Projects
Status