diff --git a/.github/workflows/run-e2e-tests.yml b/.github/workflows/run-e2e-tests.yml new file mode 100644 index 000000000..2d9324ef0 --- /dev/null +++ b/.github/workflows/run-e2e-tests.yml @@ -0,0 +1,48 @@ +name: Run end-to-end tests + +on: + workflow_dispatch: + + push: + branches: [main] + paths: # add other modules when there are under e2e tests + - 'powertools-e2e-tests/**' + - 'powertools-core/**' + - 'powertools-serialization/**' + - 'powertools-logging/**' + - 'powertools-tracing/**' + - 'powertools-idempotency/**' + - 'powertools-parameters/**' + - 'powertools-metrics/**' + - 'pom.xml' + - '.github/workflows/**' + +jobs: + e2e: + runs-on: ubuntu-latest + strategy: + max-parallel: 3 + matrix: + java: [ 8, 11, 17 ] + name: End-to-end tests java${{ matrix.java }} + env: + JAVA_VERSION: ${{ matrix.java }} + AWS_DEFAULT_REGION: eu-west-1 + permissions: + id-token: write # needed to interact with GitHub's OIDC Token endpoint. + contents: read + steps: + - uses: actions/checkout@v3 + - name: Setup java + uses: actions/setup-java@v3 + with: + distribution: 'corretto' + java-version: ${{ matrix.java }} + cache: maven + - name: Setup AWS credentials + uses: aws-actions/configure-aws-credentials@v1.6.1 + with: + role-to-assume: ${{ secrets.AWS_ROLE_ARN_TO_ASSUME }} + aws-region: ${{ env.AWS_DEFAULT_REGION }} + - name: Run e2e test with Maven + run: mvn -Pe2e -B verify --file powertools-e2e-tests/pom.xml \ No newline at end of file diff --git a/pom.xml b/pom.xml index ea57585e3..53c9762f9 100644 --- a/pom.xml +++ b/pom.xml @@ -296,7 +296,7 @@ ch.qos.logback logback-classic - 1.4.7 + 1.3.8 test diff --git a/powertools-e2e-tests/pom.xml b/powertools-e2e-tests/pom.xml index 9dc20f784..eae7d4a22 100644 --- a/powertools-e2e-tests/pom.xml +++ b/powertools-e2e-tests/pom.xml @@ -29,7 +29,7 @@ ch.qos.logback logback-classic - 1.4.7 + 1.3.8 diff --git a/powertools-e2e-tests/src/test/java/software/amazon/lambda/powertools/IdempotencyE2ET.java b/powertools-e2e-tests/src/test/java/software/amazon/lambda/powertools/IdempotencyE2ET.java index 4133f986f..6923c3caa 100644 --- a/powertools-e2e-tests/src/test/java/software/amazon/lambda/powertools/IdempotencyE2ET.java +++ b/powertools-e2e-tests/src/test/java/software/amazon/lambda/powertools/IdempotencyE2ET.java @@ -10,6 +10,7 @@ import java.time.Year; import java.util.Collections; +import java.util.UUID; import java.util.concurrent.TimeUnit; import static software.amazon.lambda.powertools.testutils.lambda.LambdaInvoker.invokeFunction; @@ -21,11 +22,12 @@ public class IdempotencyE2ET { @BeforeAll @Timeout(value = 5, unit = TimeUnit.MINUTES) public static void setup() { + String random = UUID.randomUUID().toString().substring(0, 6); infrastructure = Infrastructure.builder() .testName(IdempotencyE2ET.class.getSimpleName()) .pathToFunction("idempotency") - .idempotencyTable("idempo") - .environmentVariables(Collections.singletonMap("IDEMPOTENCY_TABLE", "idempo")) + .idempotencyTable("idempo" + random) + .environmentVariables(Collections.singletonMap("IDEMPOTENCY_TABLE", "idempo" + random)) .build(); functionName = infrastructure.deploy(); }