From ad3106b0e43d489dc4d57f33e36a200496f2db28 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 5 Dec 2025 21:23:12 +0000 Subject: [PATCH 1/3] Initial plan From 1d685cde27472cce36d1a730894b42f8a04887f1 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 5 Dec 2025 21:25:49 +0000 Subject: [PATCH 2/3] Add explicit fail-fast behavior for Maven Central deployment Co-authored-by: kaikreuzer <3244965+kaikreuzer@users.noreply.github.com> --- .github/workflows/release.yml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 02e840f4..253c202a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -71,12 +71,15 @@ jobs: run: mvn clean compile -DskipTests=true -DskipChecks=true - name: Deploy to Maven Central + id: maven-deploy env: OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }} OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }} GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} run: | + # Fail fast: If this step fails, no git operations will occur mvn -DskipTests=true -DskipChecks=true -DperformRelease=true clean deploy + echo "maven_deploy_success=true" >> $GITHUB_OUTPUT - name: Trigger Central Publisher Portal Upload env: @@ -110,25 +113,36 @@ jobs: fi - name: Collect all POM files for commit + # This step only runs if Maven Central deployment succeeded (fail-fast behavior) + if: success() run: | # Add all modified tracked POM files git add -u **/pom.xml - name: Commit release version and push to main branch + # This step only runs if Maven Central deployment succeeded (fail-fast behavior) + if: success() run: | git commit -m "Release version ${{ github.event.inputs.release_version }}" git push origin - name: Create and push release tag + # This step only runs if Maven Central deployment and commit succeeded (fail-fast behavior) + if: success() run: | git tag -a "v${{ github.event.inputs.release_version }}" -m "Release version ${{ github.event.inputs.release_version }}" git push origin "v${{ github.event.inputs.release_version }}" + - name: Update to next snapshot version + # This step only runs after successful tag creation (fail-fast behavior) + if: success() run: | mvn versions:set -DnewVersion=${{ github.event.inputs.next_snapshot_version }} mvn versions:commit - name: Update parent POM versions in modules to snapshot + # This step only runs after successful tag creation (fail-fast behavior) + if: success() run: | # Update parent version in all child POMs # Find all pom.xml files except the root pom.xml @@ -140,11 +154,14 @@ jobs: done - name: Verify snapshot version + if: success() run: | echo "Updated version to:" mvn help:evaluate -Dexpression=project.version -q -DforceStdout - name: Commit and push snapshot version + # This step only runs after successful deployment and tag creation (fail-fast behavior) + if: success() run: | # Add all modified POM files git add **/pom.xml @@ -152,6 +169,8 @@ jobs: git push origin - name: Create GitHub Release + # This step only runs after all previous steps succeeded (fail-fast behavior) + if: success() uses: softprops/action-gh-release@v2 with: tag_name: "v${{ github.event.inputs.release_version }}" From 3f03cff4f310fd2692bc942244dc00492f0da416 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 5 Dec 2025 21:26:35 +0000 Subject: [PATCH 3/3] Remove unused output from maven-deploy step Co-authored-by: kaikreuzer <3244965+kaikreuzer@users.noreply.github.com> --- .github/workflows/release.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 253c202a..e8ba3d88 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -79,7 +79,6 @@ jobs: run: | # Fail fast: If this step fails, no git operations will occur mvn -DskipTests=true -DskipChecks=true -DperformRelease=true clean deploy - echo "maven_deploy_success=true" >> $GITHUB_OUTPUT - name: Trigger Central Publisher Portal Upload env: