From f9efac0473b22bd59a6543a84b9b7843c3bbc5f6 Mon Sep 17 00:00:00 2001 From: Manik Magar Date: Wed, 13 Nov 2024 14:02:01 +0530 Subject: [PATCH] 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