From b4794667f40b5db77abf8ecd8833b66aa6410912 Mon Sep 17 00:00:00 2001 From: Jerome Van Der Linden Date: Fri, 15 Mar 2024 10:57:57 +0100 Subject: [PATCH 1/2] split GH actions for 2 versions --- .github/workflows/pr_build.yml | 8 +-- .github/workflows/pr_build_v2.yml | 93 ++++++++++++++++++++++++++ .github/workflows/publish.yml | 2 +- .github/workflows/run-e2e-tests-v2.yml | 58 ++++++++++++++++ .github/workflows/run-e2e-tests.yml | 1 - 5 files changed, 155 insertions(+), 7 deletions(-) create mode 100644 .github/workflows/pr_build_v2.yml create mode 100644 .github/workflows/run-e2e-tests-v2.yml diff --git a/.github/workflows/pr_build.yml b/.github/workflows/pr_build.yml index 54c2599c3..634a4ee0f 100644 --- a/.github/workflows/pr_build.yml +++ b/.github/workflows/pr_build.yml @@ -4,12 +4,10 @@ on: pull_request: branches: - main - - v2 paths: - 'powertools-batch/**' - 'powertools-cloudformation/**' - - 'powertools-core/**' # not in v2 - - 'powertools-common/**' # v2 only + - 'powertools-core/**' - 'powertools-e2e-tests/**' - 'powertools-idempotency/**' - 'powertools-large-messages/**' @@ -17,8 +15,8 @@ on: - 'powertools-metrics/**' - 'powertools-parameters/**' - 'powertools-serialization/**' - - 'powertools-sqs/**' # not in v2 - - 'powertools-test-suite/**' # not in v2 + - 'powertools-sqs/**' + - 'powertools-test-suite/**' - 'powertools-tracing/**' - 'powertools-validation/**' - 'examples/**' diff --git a/.github/workflows/pr_build_v2.yml b/.github/workflows/pr_build_v2.yml new file mode 100644 index 000000000..3299dc720 --- /dev/null +++ b/.github/workflows/pr_build_v2.yml @@ -0,0 +1,93 @@ +name: Build + +on: + pull_request: + branches: + - v2 + paths: + - 'powertools-batch/**' + - 'powertools-cloudformation/**' + - 'powertools-common/**' + - 'powertools-e2e-tests/**' + - 'powertools-idempotency/**' + - 'powertools-large-messages/**' + - 'powertools-logging/**' + - 'powertools-metrics/**' + - 'powertools-parameters/**' + - 'powertools-serialization/**' + - 'powertools-tracing/**' + - 'powertools-validation/**' + - 'examples/**' + - 'pom.xml' + - 'examples/pom.xml' + - '.github/workflows/**' + push: + branches: + - v2 + paths: + - 'powertools-batch/**' + - 'powertools-cloudformation/**' + - 'powertools-common/**' + - 'powertools-e2e-tests/**' + - 'powertools-idempotency/**' + - 'powertools-large-messages/**' + - 'powertools-logging/**' + - 'powertools-metrics/**' + - 'powertools-parameters/**' + - 'powertools-serialization/**' + - 'powertools-tracing/**' + - 'powertools-validation/**' + - 'examples/**' + - 'pom.xml' + - 'examples/pom.xml' + - '.github/workflows/**' +jobs: + build-corretto: + runs-on: ubuntu-latest + strategy: + max-parallel: 5 + matrix: + java: [11, 17, 21] + name: Java ${{ matrix.java }} + env: + JAVA: ${{ matrix.java }} + AWS_REGION: eu-west-1 + permissions: + id-token: write # needed to interact with GitHub's OIDC Token endpoint. + contents: read + steps: + - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 + - name: Setup java + uses: actions/setup-java@5ffc13f4174014e2d4d4572b3d74c3fa61aeb2c2 # v3.11.0 + with: + distribution: 'corretto' + java-version: ${{ matrix.java }} + cache: 'maven' + - name: Build with Maven + run: mvn -B install --file pom.xml + - name: Build Gradle Example - Java + working-directory: examples/powertools-examples-core/gradle + run: ./gradlew build + - name: Build Gradle Example - Kotlin + working-directory: examples/powertools-examples-core/kotlin + run: ./gradlew build + - name: Upload coverage to Codecov + uses: codecov/codecov-action@d9f34f8cd5cb3b3eb79b3e4b5dae3a16df499a70 # v3.1.1 + if: ${{ matrix.java == '11' }} # publish results once + with: + files: ./powertools-cloudformation/target/site/jacoco/jacoco.xml,./powertools-core/target/site/jacoco/jacoco.xml,./powertools-idempotency/target/site/jacoco/jacoco.xml,./powertools-logging/target/site/jacoco/jacoco.xml,./powertools-metrics/target/site/jacoco/jacoco.xml,./powertools-parameters/target/site/jacoco/jacoco.xml,./powertools-serialization/target/site/jacoco/jacoco.xml,./powertools-sqs/target/site/jacoco/jacoco.xml,./powertools-tracing/target/site/jacoco/jacoco.xml,./powertools-validation/target/site/jacoco/jacoco.xml,./powertools-large-messages/target/site/jacoco/jacoco.xml,./powertools-batch/target/site/jacoco/jacoco.xml + savepr: + runs-on: ubuntu-latest + name: Save PR number if running on PR by dependabot + if: github.actor == 'dependabot[bot]' + steps: + - name: Create Directory and save issue + run: | + mkdir -p ./pr + echo ${{ github.event.number }} + echo ${{ github.event.number }} > ./pr/NR + - uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 + name: Upload artifact + with: + name: pr + path: pr/ diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 03f04e0f4..4d67b8e60 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -13,7 +13,7 @@ jobs: uses: actions/setup-java@5ffc13f4174014e2d4d4572b3d74c3fa61aeb2c2 # v3.11.0 with: distribution: 'corretto' - java-version: 8 + java-version: 11 server-id: ossrh server-username: MAVEN_USERNAME server-password: MAVEN_PASSWORD diff --git a/.github/workflows/run-e2e-tests-v2.yml b/.github/workflows/run-e2e-tests-v2.yml new file mode 100644 index 000000000..255c89cfe --- /dev/null +++ b/.github/workflows/run-e2e-tests-v2.yml @@ -0,0 +1,58 @@ +name: Run end-to-end tests + +on: + workflow_dispatch: + + push: + branches: + - v2 + paths: # add other modules when there are under e2e tests + - 'powertools-e2e-tests/**' + - 'powertools-batch/**' + - 'powertools-core/**' + - 'powertools-common/**' + - 'powertools-idempotency/**' + - 'powertools-large-message/**' + - 'powertools-logging/**' + - 'powertools-metrics/**' + - 'powertools-parameters/**' + - 'powertools-serialization/**' + - 'powertools-tracing/**' + - 'pom.xml' + - '.github/workflows/**' + + pull_request: + branches: + - v2 + paths: + - 'powertools-e2e-tests/**' + +jobs: + e2e: + runs-on: ubuntu-latest + strategy: + max-parallel: 4 + matrix: + java: [ 11, 17, 21 ] + name: End-to-end tests java${{ matrix.java }} + env: + AWS_DEFAULT_REGION: eu-west-1 + JAVA_VERSION: ${{ matrix.java }} + permissions: + id-token: write # needed to interact with GitHub's OIDC Token endpoint. + contents: read + steps: + - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 + - name: Setup java + uses: actions/setup-java@5ffc13f4174014e2d4d4572b3d74c3fa61aeb2c2 # v3.11.0 + with: + distribution: 'corretto' + java-version: ${{ matrix.java }} + cache: maven + - name: Setup AWS credentials + uses: aws-actions/configure-aws-credentials@5fd3084fc36e372ff1fff382a39b10d03659f355 # v2.2.0 + with: + role-to-assume: ${{ secrets.AWS_ROLE_ARN_TO_ASSUME }} + aws-region: ${{ env.AWS_DEFAULT_REGION }} + - name: Run e2e test with Maven + run: mvn -DskipTests install --file pom.xml && mvn -Pe2e -B verify --file powertools-e2e-tests/pom.xml \ No newline at end of file diff --git a/.github/workflows/run-e2e-tests.yml b/.github/workflows/run-e2e-tests.yml index 626268214..77cdea890 100644 --- a/.github/workflows/run-e2e-tests.yml +++ b/.github/workflows/run-e2e-tests.yml @@ -6,7 +6,6 @@ on: push: branches: - main - - v2 paths: # add other modules when there are under e2e tests - 'powertools-e2e-tests/**' - 'powertools-batch/**' From 27b99d8357f6b6027092fddba23988a54b58cec5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Van=20Der=20Linden?= <117538+jeromevdl@users.noreply.github.com> Date: Mon, 18 Mar 2024 09:15:58 +0100 Subject: [PATCH 2/2] Update .github/workflows/publish.yml --- .github/workflows/publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 4d67b8e60..03f04e0f4 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -13,7 +13,7 @@ jobs: uses: actions/setup-java@5ffc13f4174014e2d4d4572b3d74c3fa61aeb2c2 # v3.11.0 with: distribution: 'corretto' - java-version: 11 + java-version: 8 server-id: ossrh server-username: MAVEN_USERNAME server-password: MAVEN_PASSWORD