From f9efac0473b22bd59a6543a84b9b7843c3bbc5f6 Mon Sep 17 00:00:00 2001 From: Manik Magar Date: Wed, 13 Nov 2024 14:02:01 +0530 Subject: [PATCH 1/3] chore: use shared build pipeline --- .github/workflows/build.yml | 142 ++++++++++-------------------------- 1 file changed, 38 insertions(+), 104 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7dd18afd..629b31b9 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -3,127 +3,61 @@ name: Build and Publish on: push: branches: - - 'master' + - 'main' - 'feat/**' - 'chore/**' - 'fix/**' pull_request: branches: - - 'master' + - 'main' jobs: - Build-and-Publish: + Test-Setup: runs-on: ubuntu-latest - + outputs: - version: ${{ steps.set-version.outputs.version }} + test-suite: ${{ steps.set-test-suite.outputs.GITHUB_TEST_SUITE }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: '0' submodules: 'recursive' - - name: Set up JDK 1.8 - uses: actions/setup-java@v3 - with: - distribution: adopt-hotspot - java-version: 8 - cache: maven - server-id: ossrh - server-username: OSSRH_USERNAME - server-password: OSSRH_PASSWORD - gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }} - gpg-passphrase: MAVEN_GPG_PASSPHRASE - - - name: Set Version - id: set-version - run: echo version=$(./mvnw -q -Dexec.executable=echo -Dexec.args='${project.version}' --non-recursive exec:exec) >> $GITHUB_OUTPUT - - - name: Print Version - run: echo "Version ${{ steps.set-version.outputs.version }}" - - name: Set test suite + id: set-test-suite if: github.ref != 'refs/heads/master' && github.event_name != 'pull_request' run: echo "GITHUB_TEST_SUITE=UnitTestSuite" >> $GITHUB_ENV - - name: Compile - run: ./mvnw compile - - - name: Verify - run: ./mvnw --batch-mode verify -Dtest=$GITHUB_TEST_SUITE -Danypoint.client.id=${{secrets.ANYPOINT_CLIENT_ID}} -Danypoint.client.secret=${{secrets.ANYPOINT_CLIENT_SECRET}} -Danypoint.connected-app.id=${{secrets.ANYPOINT_CONNECTED_APP_ID}} -Danypoint.connected-app.secret=${{secrets.ANYPOINT_CONNECTED_APP_SECRET}} -Danypoint.username=${{secrets.ANYPOINT_USERNAME}} -Danypoint.password=${{secrets.ANYPOINT_PASSWORD}} - - - name: Publish Unit Test Results - uses: EnricoMi/publish-unit-test-result-action@v2 - if: always() - with: - files: ./*/target/surefire-reports/*.xml - - - name: Publish to Maven Central - id: publish-to-maven-central - if: ${{ github.event_name != 'pull_request' && github.ref == 'refs/heads/master'}} - run: ./mvnw clean deploy -DskipTests -Drelease=true - env: - OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }} - OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }} - MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }} - - - name: JReleaser full-Release - if: ${{ github.event_name != 'pull_request' && github.ref == 'refs/heads/main'}} - uses: jreleaser/release-action@v2 - env: - JRELEASER_PROJECT_VERSION: ${{steps.set-version.outputs.version}} - JRELEASER_GITHUB_TOKEN: ${{ secrets.GIT_TOKEN }} - JRELEASER_GPG_PASSPHRASE: ${{ secrets.JRELEASER_GPG_PASSPHRASE }} - JRELEASER_GPG_PUBLIC_KEY: ${{ secrets.JRELEASER_GPG_PUBLIC_KEY }} - JRELEASER_GPG_SECRET_KEY: ${{ secrets.JRELEASER_GPG_SECRET_KEY }} - JRELEASER_NEXUS2_MAVEN_CENTRAL_USERNAME: ${{ secrets.OSSRH_USERNAME }} - JRELEASER_NEXUS2_MAVEN_CENTRAL_PASSWORD: ${{ secrets.OSSRH_PASSWORD }} - JRELEASER_VERSION: 1.6.0 - with: - version: ${{ env.JRELEASER_VERSION }} - arguments: full-release - - - name: JReleaser release output - if: ${{ github.event_name != 'pull_request' && github.ref == 'refs/heads/main'}} - uses: actions/upload-artifact@v3 - with: - name: jreleaser-release - path: | - out/jreleaser/trace.log - out/jreleaser/output.properties - Perform-Release: - runs-on: ubuntu-latest - needs: Build-and-Publish - if: ${{ !contains(needs.Build-and-Publish.outputs.version, 'SNAPSHOT') && github.event_name != 'pull_request' && github.ref == 'refs/heads/master'}} - - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: '0' - submodules: 'recursive' - - - name: Set up JDK 1.8 - uses: actions/setup-java@v3 - with: - distribution: adopt-hotspot - java-version: 8 - cache: maven - - - name: Increment Version - run: | - ./mvnw clean build-helper:parse-version versions:set -DnewVersion=\${parsedVersion.majorVersion}.\${parsedVersion.minorVersion}.\${parsedVersion.nextIncrementalVersion}-SNAPSHOT -DprocessAllModules versions:commit - - - name: Set New Version Variable - id: set-new-version - run: echo version=$(./mvnw -q -Dexec.executable=echo -Dexec.args='${project.version}' --non-recursive exec:exec) >> $GITHUB_OUTPUT - - - name: Create Pull Request - uses: peter-evans/create-pull-request@v4 - with: - branch: "feat/v${{ steps.set-new-version.outputs.version }}" - commit-message: "[create-pull-request] Auto increment to v${{ steps.set-new-version.outputs.version }}" - title: "Auto increment to v${{ steps.set-new-version.outputs.version }}" - delete-branch: true - assignees: ${{ github.actor }} + Build-Maven: + needs: Test-Setup + uses: avioconsulting/shared-workflows/.github/workflows/maven-build.yml@main + secrets: inherit + with: + include-mule-ee-repo: true + maven-args: -Dtest=${{ needs.Test-Setup.outputs.test-suite }} -Danypoint.client.id=${{secrets.ANYPOINT_CLIENT_ID}} -Danypoint.client.secret=${{secrets.ANYPOINT_CLIENT_SECRET}} -Danypoint.connected-app.id=${{secrets.ANYPOINT_CONNECTED_APP_ID}} -Danypoint.connected-app.secret=${{secrets.ANYPOINT_CONNECTED_APP_SECRET}} -Danypoint.username=${{secrets.ANYPOINT_USERNAME}} -Danypoint.password=${{secrets.ANYPOINT_PASSWORD}} + + Release-Maven: + needs: Build-Maven + uses: avioconsulting/shared-workflows/.github/workflows/maven-release.yml@main + secrets: inherit + with: + app-version: ${{ needs.Build-Maven.outputs.app-version }} + publish-maven-central: true + # java-distribution: adopt-hotspot + # java-version: 8 + # maven-args: -X + # main-branch: main + + Post-Release-Maven: + needs: [Build-Maven, Release-Maven] + uses: avioconsulting/shared-workflows/.github/workflows/maven-post-release.yml@main + secrets: inherit + with: + app-version: ${{ needs.Build-Maven.outputs.app-version }} + # java-distribution: adopt-hotspot + # java-version: 8 + # maven-args: -X + # main-branch: main + # pr-reviewers: adesjardin, manikmagar, kkingavio From 8b857cbc8db6320fe7594600687cf4ffbd7ced53 Mon Sep 17 00:00:00 2001 From: Manik Magar Date: Wed, 13 Nov 2024 14:16:37 +0530 Subject: [PATCH 2/3] fix: secrets to shared workflows --- .github/workflows/build.yml | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 629b31b9..305269cc 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -12,15 +12,21 @@ on: - 'main' jobs: - Test-Setup: + Build-Setup: runs-on: ubuntu-latest outputs: test-suite: ${{ steps.set-test-suite.outputs.GITHUB_TEST_SUITE }} + ANYPOINT_CLIENT_ID: ${{ secrets.ANYPOINT_CLIENT_ID }} + ANYPOINT_CLIENT_SECRET: ${{ secrets.ANYPOINT_CLIENT_SECRET }} + ANYPOINT_CONNECTED_APP_ID: ${{ secrets.ANYPOINT_CONNECTED_APP_ID }} + ANYPOINT_CONNECTED_APP_SECRET: ${{ secrets.ANYPOINT_CONNECTED_APP_SECRET }} + ANYPOINT_USERNAME: ${{ secrets.ANYPOINT_USERNAME }} + ANYPOINT_PASSWORD: ${{ secrets.ANYPOINT_PASSWORD }} steps: - uses: actions/checkout@v4 - with: + with: fetch-depth: '0' submodules: 'recursive' @@ -31,12 +37,12 @@ jobs: Build-Maven: - needs: Test-Setup + needs: Build-Setup uses: avioconsulting/shared-workflows/.github/workflows/maven-build.yml@main secrets: inherit with: include-mule-ee-repo: true - maven-args: -Dtest=${{ needs.Test-Setup.outputs.test-suite }} -Danypoint.client.id=${{secrets.ANYPOINT_CLIENT_ID}} -Danypoint.client.secret=${{secrets.ANYPOINT_CLIENT_SECRET}} -Danypoint.connected-app.id=${{secrets.ANYPOINT_CONNECTED_APP_ID}} -Danypoint.connected-app.secret=${{secrets.ANYPOINT_CONNECTED_APP_SECRET}} -Danypoint.username=${{secrets.ANYPOINT_USERNAME}} -Danypoint.password=${{secrets.ANYPOINT_PASSWORD}} + maven-args: -Dtest=${{ needs.Build-Setup.outputs.test-suite }} -Danypoint.client.id=${{ needs.Build-Setup.outputs.ANYPOINT_CLIENT_ID }} -Danypoint.client.secret=${{needs.Build-Setup.outputs.ANYPOINT_CLIENT_SECRET}} -Danypoint.connected-app.id=${{needs.Build-Setup.outputs.ANYPOINT_CONNECTED_APP_ID}} -Danypoint.connected-app.secret=${{needs.Build-Setup.outputs.ANYPOINT_CONNECTED_APP_SECRET}} -Danypoint.username=${{needs.Build-Setup.outputs.ANYPOINT_USERNAME}} -Danypoint.password=${{needs.Build-Setup.outputs.ANYPOINT_PASSWORD}} Release-Maven: needs: Build-Maven From 8cceb39bba8c308517a09af59610c6ffc2e7a6b0 Mon Sep 17 00:00:00 2001 From: Manik Magar Date: Wed, 13 Nov 2024 14:33:01 +0530 Subject: [PATCH 3/3] fix: secrets to shared workflows --- .github/workflows/build.yml | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 305269cc..cbcf9e7a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -14,15 +14,21 @@ on: jobs: Build-Setup: runs-on: ubuntu-latest - - outputs: - test-suite: ${{ steps.set-test-suite.outputs.GITHUB_TEST_SUITE }} + env: ANYPOINT_CLIENT_ID: ${{ secrets.ANYPOINT_CLIENT_ID }} ANYPOINT_CLIENT_SECRET: ${{ secrets.ANYPOINT_CLIENT_SECRET }} ANYPOINT_CONNECTED_APP_ID: ${{ secrets.ANYPOINT_CONNECTED_APP_ID }} ANYPOINT_CONNECTED_APP_SECRET: ${{ secrets.ANYPOINT_CONNECTED_APP_SECRET }} ANYPOINT_USERNAME: ${{ secrets.ANYPOINT_USERNAME }} ANYPOINT_PASSWORD: ${{ secrets.ANYPOINT_PASSWORD }} + outputs: + test-suite: ${{ steps.set-test-suite.outputs.GITHUB_TEST_SUITE }} + ANYPOINT_CLIENT_ID: ${{ env.ANYPOINT_CLIENT_ID }} + ANYPOINT_CLIENT_SECRET: ${{ env.ANYPOINT_CLIENT_SECRET }} + ANYPOINT_CONNECTED_APP_ID: ${{ env.ANYPOINT_CONNECTED_APP_ID }} + ANYPOINT_CONNECTED_APP_SECRET: ${{ env.ANYPOINT_CONNECTED_APP_SECRET }} + ANYPOINT_USERNAME: ${{ env.ANYPOINT_USERNAME }} + ANYPOINT_PASSWORD: ${{ env.ANYPOINT_PASSWORD }} steps: - uses: actions/checkout@v4