Skip to content

feat(plugin): add user function outcome enum #1355

feat(plugin): add user function outcome enum

feat(plugin): add user function outcome enum #1355

Workflow file for this run

name: E2E Tests
on:
workflow_dispatch:
pull_request:
branches:
- main
paths:
- '.github/**' # for testing Github Actions
- 'sdk/**'
- 'sdk-testing/**'
- 'sdk-integration-tests/**'
- 'examples/**'
- 'pom.xml'
push:
branches:
- main
paths:
- '.github/**'
- 'sdk/**'
- 'sdk-testing/**'
- 'sdk-integration-tests/**'
- 'examples/**'
- 'pom.xml'
concurrency:
group: e2e-tests
cancel-in-progress: false
# permission can be added at job level or workflow level
permissions:
id-token: write # This is required for requesting the JWT
contents: read # This is required for actions/checkout
jobs:
e2e-tests:
env:
AWS_REGION: us-west-2
E2E_TEST_PARALLELISM: 4
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
java:
- 17
- 21
- 25
steps:
- name: Checkout repository
uses: actions/checkout@v7
- name: Setup AWS SAM CLI
uses: aws-actions/setup-sam@v3
with:
use-installer: true
# token: ${{ secrets.GITHUB_TOKEN }} # only enable if we run into throughput issues
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@e6de054238d6b7531b4efff3b6587d9aade6a06c # v6.2.3
with:
role-to-assume: "${{ secrets.TEST_ROLE_ARN }}"
role-session-name: java-language-sdk-test
aws-region: ${{ env.AWS_REGION }}
allowed-account-ids: ${{ secrets.TEST_ACCOUNT_ID }}
- name: Setup Java ${{ matrix.java }}
uses: actions/setup-java@v5
with:
distribution: corretto
java-version: ${{ matrix.java }}
cache: maven
- name: Build locally
run: mvn -B -q -Dmaven.test.skip=true install --file pom.xml
- name: Generate SAM template
run: python3 generate-template.py
working-directory: ./examples
- name: sam build
env:
MAVEN_OPTS: -DskipTests=true -Dmaven.test.skip=true
run: | # add --no-cached if debugging sam build
sam build --debug --parameter-overrides \
'ParameterKey=Architecture,ParameterValue=x86_64 ParameterKey=JavaVersion,ParameterValue=java${{ matrix.java }} ParameterKey=FunctionNamePrefix,ParameterValue=Java${{ matrix.java }}- ParameterKey=RoleArn,ParameterValue=${{ secrets.TEST_LAMBDA_EXECUTION_ROLE_ARN }}'
working-directory: ./examples
- name: Clean up unmanaged Lambda log groups
run: |
# TODO: Remove this one-time migration cleanup after existing e2e stacks adopt managed log groups.
.github/scripts/cleanup_e2e_unmanaged_log_groups.sh --execute \
--stack-name Java${{ matrix.java }}-JavaSDKCloudBasedIntegrationTestStack
- name: sam deploy
run: |
sam deploy --stack-name Java${{ matrix.java }}-JavaSDKCloudBasedIntegrationTestStack \
--resolve-image-repos --resolve-s3 --parameter-overrides \
'ParameterKey=Architecture,ParameterValue=x86_64 ParameterKey=JavaVersion,ParameterValue=java${{ matrix.java }} ParameterKey=FunctionNamePrefix,ParameterValue=Java${{ matrix.java }}- ParameterKey=RoleArn,ParameterValue=${{ secrets.TEST_LAMBDA_EXECUTION_ROLE_ARN }}'
working-directory: ./examples
- name: Cloud Based Integration Tests
run: |
mvn clean test -B \
-Dtest.cloud.enabled=true \
-Dtest.aws.account='${{ secrets.TEST_ACCOUNT_ID }}' \
-Dtest=CloudBasedIntegrationTest \
-Dtest.function.name.prefix='Java${{ matrix.java }}-' \
-Djunit.jupiter.execution.parallel.enabled=true \
-Djunit.jupiter.execution.parallel.mode.default=concurrent \
-Djunit.jupiter.execution.parallel.mode.classes.default=concurrent \
-Djunit.jupiter.execution.parallel.config.strategy=fixed \
-Djunit.jupiter.execution.parallel.config.fixed.parallelism=${{ env.E2E_TEST_PARALLELISM }}
working-directory: ./examples
- name: Publish test case summary
if: always()
env:
JAVA_VERSION: ${{ matrix.java }}
run: python3 ../.github/scripts/publish_e2e_test_summary.py
working-directory: ./examples