From ed1e6ca29d919be07e87ca85350cfb72506bd3d5 Mon Sep 17 00:00:00 2001 From: Kai Kreuzer Date: Fri, 10 Oct 2025 22:50:28 +0200 Subject: [PATCH 01/14] Introduce release process through GHA Signed-off-by: Kai Kreuzer --- .github/workflows/release.yml | 253 ++++++++++++++++++++++++++++++++++ 1 file changed, 253 insertions(+) create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000..87fb2900 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,253 @@ +# This workflow handles the complete release process for static-code-analysis +# It converts snapshot to release version, deploys to Maven Central via OSSRH, +# and then bumps to the next snapshot version + +name: Release to Maven Central +permissions: + contents: write + +on: + workflow_dispatch: + inputs: + release_version: + description: 'Release version (e.g., 0.18.0)' + required: true + type: string + next_snapshot_version: + description: 'Next snapshot version (e.g., 0.19.0-SNAPSHOT)' + required: true + type: string + +jobs: + release: + name: Release to Maven Central + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + token: ${{ secrets.GITHUB_TOKEN }} + fetch-depth: 0 + + - name: Set up JDK 11 + uses: actions/setup-java@v4 + with: + java-version: 11 + distribution: 'temurin' + cache: maven + server-id: ossrh + server-username: OSSRH_USERNAME + server-password: OSSRH_PASSWORD + gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }} + gpg-passphrase: GPG_PASSPHRASE + + - name: Configure Git + run: | + git config --global user.name "github-actions[bot]" + git config --global user.email "github-actions[bot]@users.noreply.github.com" + + - name: Update version to release version + run: | + mvn versions:set -DnewVersion=${{ github.event.inputs.release_version }} + mvn versions:commit + + - name: Update parent POM versions in modules + run: | + # Update parent version in all child POMs + for pom in custom-checks/pom.xml custom-checks/checkstyle/pom.xml custom-checks/findbugs/pom.xml custom-checks/pmd/pom.xml sat-extension/pom.xml sat-plugin/pom.xml codestyle/pom.xml; do + if [ -f "$pom" ]; then + mvn versions:update-parent -DparentVersion=${{ github.event.inputs.release_version }} -f "$pom" + mvn versions:commit -f "$pom" + fi + done + + - name: Verify release version + run: | + echo "Updated version to:" + mvn help:evaluate -Dexpression=project.version -q -DforceStdout + + - name: Build without tests + run: mvn clean compile -DskipTests=true -DskipChecks=true + + - name: Deploy to Maven Central + env: + OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }} + OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }} + GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} + run: | + mvn -DskipTests=true -DskipChecks=true -DperformRelease=true clean deploy + + - name: Trigger Central Publisher Portal Upload + env: + OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }} + OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }} + CENTRAL_NAMESPACE: ${{ secrets.CENTRAL_NAMESPACE }} + run: | + echo "Triggering manual upload to Central Publisher Portal..." + + # Create base64 encoded credentials for Basic Auth + CREDENTIALS=$(echo -n "$OSSRH_USERNAME:$OSSRH_PASSWORD" | base64) + + # Make POST request to trigger upload + HTTP_STATUS=$(curl -s -o response.json -w "%{http_code}" \ + -X POST \ + -H "Authorization: Basic $CREDENTIALS" \ + -H "Content-Type: application/json" \ + "https://ossrh-staging-api.central.sonatype.com/manual/upload/defaultRepository/$CENTRAL_NAMESPACE") + + echo "HTTP Status: $HTTP_STATUS" + echo "Response:" + cat response.json + + if [ $HTTP_STATUS -eq 200 ] || [ $HTTP_STATUS -eq 201 ]; then + echo "✅ Successfully triggered upload to Central Publisher Portal" + else + echo "❌ Failed to trigger upload (HTTP $HTTP_STATUS)" + echo "Response details:" + cat response.json + exit 1 + fi + + - name: Collect all POM files for commit + run: | + # Add all modified POM files + git add pom.xml + git add custom-checks/pom.xml + git add custom-checks/checkstyle/pom.xml + git add custom-checks/findbugs/pom.xml + git add custom-checks/pmd/pom.xml + git add sat-extension/pom.xml + git add sat-plugin/pom.xml + git add codestyle/pom.xml + + - name: Create and push release tag + run: | + git commit -m "Release version ${{ github.event.inputs.release_version }}" + 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 + run: | + mvn versions:set -DnewVersion=${{ github.event.inputs.next_snapshot_version }} + mvn versions:commit + + - name: Update parent POM versions in modules to snapshot + run: | + # Update parent version in all child POMs + for pom in custom-checks/pom.xml custom-checks/checkstyle/pom.xml custom-checks/findbugs/pom.xml custom-checks/pmd/pom.xml sat-extension/pom.xml sat-plugin/pom.xml codestyle/pom.xml; do + if [ -f "$pom" ]; then + mvn versions:update-parent -DparentVersion=${{ github.event.inputs.next_snapshot_version }} -f "$pom" + mvn versions:commit -f "$pom" + fi + done + + - name: Verify snapshot version + run: | + echo "Updated version to:" + mvn help:evaluate -Dexpression=project.version -q -DforceStdout + + - name: Commit and push snapshot version + run: | + # Add all modified POM files + git add pom.xml + git add custom-checks/pom.xml + git add custom-checks/checkstyle/pom.xml + git add custom-checks/findbugs/pom.xml + git add custom-checks/pmd/pom.xml + git add sat-extension/pom.xml + git add sat-plugin/pom.xml + git add codestyle/pom.xml + git commit -m "Prepare for next development iteration: ${{ github.event.inputs.next_snapshot_version }}" + git push origin + + - name: Create GitHub Release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: "v${{ github.event.inputs.release_version }}" + release_name: "Release ${{ github.event.inputs.release_version }}" + body: | + Release ${{ github.event.inputs.release_version }} + + This release has been automatically deployed to Maven Central. + + **Artifacts:** + - `org.openhab.tools.sat:sat-plugin:${{ github.event.inputs.release_version }}` + - `org.openhab.tools.sat:sat-extension:${{ github.event.inputs.release_version }}` + - `org.openhab.tools:openhab-codestyle:${{ github.event.inputs.release_version }}` + - `org.openhab.tools.sat.custom-checks:checkstyle-rules:${{ github.event.inputs.release_version }}` + - `org.openhab.tools.sat.custom-checks:pmd-rules:${{ github.event.inputs.release_version }}` + - `org.openhab.tools.sat.custom-checks:findbugs-rules:${{ github.event.inputs.release_version }}` + + **Maven Central - SAT Plugin:** + ```xml + + org.openhab.tools.sat + sat-plugin + ${{ github.event.inputs.release_version }} + + ``` + + **Maven Central - SAT Extension:** + ```xml + + org.openhab.tools.sat + sat-extension + ${{ github.event.inputs.release_version }} + + ``` + + **Maven Central - Codestyle:** + ```xml + + org.openhab.tools + openhab-codestyle + ${{ github.event.inputs.release_version }} + + ``` + draft: false + prerelease: false + + check-central-deployment: + name: Verify Maven Central Deployment + needs: release + runs-on: ubuntu-latest + + steps: + - name: Wait for Maven Central synchronization + run: | + echo "Waiting for artifacts to be synchronized to Maven Central..." + sleep 300 # Wait 5 minutes for initial propagation + + - name: Check Maven Central availability + run: | + RELEASE_VERSION="${{ github.event.inputs.release_version }}" + MAX_ATTEMPTS=12 + ATTEMPT=1 + + while [ $ATTEMPT -le $MAX_ATTEMPTS ]; do + echo "Attempt $ATTEMPT of $MAX_ATTEMPTS: Checking Maven Central for version $RELEASE_VERSION..." + + HTTP_STATUS=$(curl -s -o /dev/null -w "%{http_code}" \ + "https://repo1.maven.org/maven2/org/openhab/tools/sat/sat-plugin/$RELEASE_VERSION/sat-plugin-$RELEASE_VERSION.pom") + + if [ $HTTP_STATUS -eq 200 ]; then + echo "✅ Artifact successfully found on Maven Central!" + echo "🔗 Maven Central URL: https://repo1.maven.org/maven2/org/openhab/tools/sat/sat-plugin/$RELEASE_VERSION/" + echo "📦 Maven Central search: https://search.maven.org/artifact/org.openhab.tools.sat/sat-plugin/$RELEASE_VERSION/maven-plugin" + break + else + echo "❌ Artifact not yet available (HTTP $HTTP_STATUS). Waiting..." + if [ $ATTEMPT -eq $MAX_ATTEMPTS ]; then + echo "⚠️ Maximum attempts reached. Deployment may still be in progress." + echo "🕐 It can take up to 2 hours for artifacts to appear on Maven Central." + echo "📋 Check manually at: https://search.maven.org/artifact/org.openhab.tools.sat/sat-plugin/$RELEASE_VERSION/maven-plugin" + else + sleep 300 # Wait 5 minutes between attempts + fi + fi + + ATTEMPT=$((ATTEMPT + 1)) + done From eb0b4c00e531521132de1c79dd397dd2ab9b214f Mon Sep 17 00:00:00 2001 From: Kai Kreuzer Date: Fri, 5 Dec 2025 17:03:49 +0100 Subject: [PATCH 02/14] Update .github/workflows/release.yml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Kai Kreuzer --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 87fb2900..dd90e27f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -55,7 +55,7 @@ jobs: - name: Update parent POM versions in modules run: | # Update parent version in all child POMs - for pom in custom-checks/pom.xml custom-checks/checkstyle/pom.xml custom-checks/findbugs/pom.xml custom-checks/pmd/pom.xml sat-extension/pom.xml sat-plugin/pom.xml codestyle/pom.xml; do + for pom in $(find custom-checks sat-extension sat-plugin codestyle -name pom.xml); do if [ -f "$pom" ]; then mvn versions:update-parent -DparentVersion=${{ github.event.inputs.release_version }} -f "$pom" mvn versions:commit -f "$pom" From d9a46d4c10ebc23c12727f616bf7403b0f0572f6 Mon Sep 17 00:00:00 2001 From: Kai Kreuzer Date: Fri, 5 Dec 2025 17:04:33 +0100 Subject: [PATCH 03/14] Update .github/workflows/release.yml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Kai Kreuzer --- .github/workflows/release.yml | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index dd90e27f..b5d6300e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -112,14 +112,7 @@ jobs: - name: Collect all POM files for commit run: | # Add all modified POM files - git add pom.xml - git add custom-checks/pom.xml - git add custom-checks/checkstyle/pom.xml - git add custom-checks/findbugs/pom.xml - git add custom-checks/pmd/pom.xml - git add sat-extension/pom.xml - git add sat-plugin/pom.xml - git add codestyle/pom.xml + git add **/pom.xml - name: Create and push release tag run: | From d3326b06b61591507372ca7c482ade6b06c35658 Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Fri, 5 Dec 2025 17:09:44 +0100 Subject: [PATCH 04/14] Replace deprecated actions/create-release@v1 with softprops/action-gh-release@v2 (#526) * Initial plan * Replace deprecated actions/create-release@v1 with softprops/action-gh-release@v2 Co-authored-by: kaikreuzer <3244965+kaikreuzer@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: kaikreuzer <3244965+kaikreuzer@users.noreply.github.com> --- .github/workflows/release.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b5d6300e..eef003c6 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -155,12 +155,10 @@ jobs: git push origin - name: Create GitHub Release - uses: actions/create-release@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + uses: softprops/action-gh-release@v2 with: tag_name: "v${{ github.event.inputs.release_version }}" - release_name: "Release ${{ github.event.inputs.release_version }}" + name: "Release ${{ github.event.inputs.release_version }}" body: | Release ${{ github.event.inputs.release_version }} From e7f0b2243bbf774881918b572725ea2ffbdd3056 Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Fri, 5 Dec 2025 17:11:02 +0100 Subject: [PATCH 05/14] Fix duplicated POM file lists in release workflow (#527) * Initial plan * Fix duplicated POM file lists: use find command and glob patterns Co-authored-by: kaikreuzer <3244965+kaikreuzer@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: kaikreuzer <3244965+kaikreuzer@users.noreply.github.com> --- .github/workflows/release.yml | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index eef003c6..8273eaab 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -128,7 +128,7 @@ jobs: - name: Update parent POM versions in modules to snapshot run: | # Update parent version in all child POMs - for pom in custom-checks/pom.xml custom-checks/checkstyle/pom.xml custom-checks/findbugs/pom.xml custom-checks/pmd/pom.xml sat-extension/pom.xml sat-plugin/pom.xml codestyle/pom.xml; do + for pom in $(find custom-checks sat-extension sat-plugin codestyle -name pom.xml); do if [ -f "$pom" ]; then mvn versions:update-parent -DparentVersion=${{ github.event.inputs.next_snapshot_version }} -f "$pom" mvn versions:commit -f "$pom" @@ -143,14 +143,7 @@ jobs: - name: Commit and push snapshot version run: | # Add all modified POM files - git add pom.xml - git add custom-checks/pom.xml - git add custom-checks/checkstyle/pom.xml - git add custom-checks/findbugs/pom.xml - git add custom-checks/pmd/pom.xml - git add sat-extension/pom.xml - git add sat-plugin/pom.xml - git add codestyle/pom.xml + git add **/pom.xml git commit -m "Prepare for next development iteration: ${{ github.event.inputs.next_snapshot_version }}" git push origin From 8a41ea7bf1bb5b022a341638ca60ba03eaf1e46a Mon Sep 17 00:00:00 2001 From: Kai Kreuzer Date: Fri, 5 Dec 2025 22:18:35 +0100 Subject: [PATCH 06/14] Update .github/workflows/release.yml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Kai Kreuzer --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8273eaab..711fb1fd 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -55,7 +55,7 @@ jobs: - name: Update parent POM versions in modules run: | # Update parent version in all child POMs - for pom in $(find custom-checks sat-extension sat-plugin codestyle -name pom.xml); do + for pom in $(find . -name pom.xml -not -path "*/target/*"); do if [ -f "$pom" ]; then mvn versions:update-parent -DparentVersion=${{ github.event.inputs.release_version }} -f "$pom" mvn versions:commit -f "$pom" From fc4a58ece2f1dfd0f892320d151a08addcb7b639 Mon Sep 17 00:00:00 2001 From: Kai Kreuzer Date: Fri, 5 Dec 2025 22:19:09 +0100 Subject: [PATCH 07/14] Update .github/workflows/release.yml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Kai Kreuzer --- .github/workflows/release.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 711fb1fd..8ec46958 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -128,7 +128,8 @@ jobs: - name: Update parent POM versions in modules to snapshot run: | # Update parent version in all child POMs - for pom in $(find custom-checks sat-extension sat-plugin codestyle -name pom.xml); do + # Find all pom.xml files except the root pom.xml + for pom in $(find . -name pom.xml ! -path "./pom.xml"); do if [ -f "$pom" ]; then mvn versions:update-parent -DparentVersion=${{ github.event.inputs.next_snapshot_version }} -f "$pom" mvn versions:commit -f "$pom" From 9bee30089ad8eed4bd4af794bf1dbfaa302a7a4c Mon Sep 17 00:00:00 2001 From: Kai Kreuzer Date: Fri, 5 Dec 2025 22:21:01 +0100 Subject: [PATCH 08/14] Update .github/workflows/release.yml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Kai Kreuzer --- .github/workflows/release.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8ec46958..38702bbd 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -114,12 +114,15 @@ jobs: # Add all modified POM files git add **/pom.xml - - name: Create and push release tag + - name: Commit release version and push to main branch run: | git commit -m "Release version ${{ github.event.inputs.release_version }}" + git push origin + + - name: Create and push release tag + 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 run: | mvn versions:set -DnewVersion=${{ github.event.inputs.next_snapshot_version }} From ddd0e47156cefda99144ec3b099eb1121bc3739e Mon Sep 17 00:00:00 2001 From: Kai Kreuzer Date: Fri, 5 Dec 2025 22:22:02 +0100 Subject: [PATCH 09/14] Update .github/workflows/release.yml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Kai Kreuzer --- .github/workflows/release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 38702bbd..02e840f4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -111,8 +111,8 @@ jobs: - name: Collect all POM files for commit run: | - # Add all modified POM files - git add **/pom.xml + # Add all modified tracked POM files + git add -u **/pom.xml - name: Commit release version and push to main branch run: | From 32b9fa0ddb48bed7c8138bf11e22c071e06797ee Mon Sep 17 00:00:00 2001 From: Kai Kreuzer Date: Fri, 5 Dec 2025 22:23:46 +0100 Subject: [PATCH 10/14] Update .github/workflows/release.yml Co-authored-by: Holger Friedrich Signed-off-by: Kai Kreuzer --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 02e840f4..8976337b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -152,7 +152,7 @@ jobs: git push origin - name: Create GitHub Release - uses: softprops/action-gh-release@v2 + uses: softprops/action-gh-release@a06a81a03ee405af7f2048a818ed3f03bbf83c7b # v2.5.0 with: tag_name: "v${{ github.event.inputs.release_version }}" name: "Release ${{ github.event.inputs.release_version }}" From 0d5c7cba48c20437e6e52703f4aaca4002319c5c Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Fri, 5 Dec 2025 22:37:22 +0100 Subject: [PATCH 11/14] Add explicit fail-fast behavior for Maven Central deployment in release workflow (#528) * Initial plan * Add explicit fail-fast behavior for Maven Central deployment Co-authored-by: kaikreuzer <3244965+kaikreuzer@users.noreply.github.com> * Remove unused output from maven-deploy step Co-authored-by: kaikreuzer <3244965+kaikreuzer@users.noreply.github.com> --------- Signed-off-by: Kai Kreuzer Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: kaikreuzer <3244965+kaikreuzer@users.noreply.github.com> Co-authored-by: Kai Kreuzer --- .github/workflows/release.yml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8976337b..8280fd3c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -71,11 +71,13 @@ 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 - name: Trigger Central Publisher Portal Upload @@ -110,25 +112,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 +153,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 +168,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@a06a81a03ee405af7f2048a818ed3f03bbf83c7b # v2.5.0 with: tag_name: "v${{ github.event.inputs.release_version }}" From 5378bc768babd9cbb0d7e8b32643a7ebbdc19ecf Mon Sep 17 00:00:00 2001 From: Kai Kreuzer Date: Tue, 9 Dec 2025 22:19:10 +0100 Subject: [PATCH 12/14] Update .github/workflows/release.yml Co-authored-by: Holger Friedrich Signed-off-by: Kai Kreuzer --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8280fd3c..364350e0 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -55,7 +55,7 @@ jobs: - name: Update parent POM versions in modules run: | # Update parent version in all child POMs - for pom in $(find . -name pom.xml -not -path "*/target/*"); do + for pom in $(find . -name pom.xml -not -path "*/target/*" -not -path "*/src/test/resources/*"); do if [ -f "$pom" ]; then mvn versions:update-parent -DparentVersion=${{ github.event.inputs.release_version }} -f "$pom" mvn versions:commit -f "$pom" From a92151007d1ff4219b58326b03c887af885f5973 Mon Sep 17 00:00:00 2001 From: Kai Kreuzer Date: Tue, 9 Dec 2025 22:20:02 +0100 Subject: [PATCH 13/14] Update .github/workflows/release.yml Co-authored-by: Holger Friedrich Signed-off-by: Kai Kreuzer --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 364350e0..608a0b7a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -25,7 +25,7 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: token: ${{ secrets.GITHUB_TOKEN }} fetch-depth: 0 From b892ae1117f8bdc611fc8b7ae7431494d7590292 Mon Sep 17 00:00:00 2001 From: Kai Kreuzer Date: Tue, 9 Dec 2025 22:20:10 +0100 Subject: [PATCH 14/14] Update .github/workflows/release.yml Co-authored-by: Holger Friedrich Signed-off-by: Kai Kreuzer --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 608a0b7a..6e166e90 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -31,7 +31,7 @@ jobs: fetch-depth: 0 - name: Set up JDK 11 - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: java-version: 11 distribution: 'temurin'