11name : Release 
22
33on :
4+   workflow_call :
45  pull_request :
56    types : [ closed ] 
67    paths :
1920    runs-on : ubuntu-latest 
2021    name : Release power-server 
2122    if : ${{github.event.pull_request.merged == true}} 
23+     outputs :
24+       already_released : ${{steps.released.outputs.already_released}} 
2225
2326    steps :
2427      - uses : radcortez/project-metadata-action@main 
2831          github-token : ${{secrets.GITHUB_TOKEN}} 
2932          metadata-file-path : ' .github/project.yml' 
3033
34+       - name : Check if already released 
35+         id : released 
36+         run : | 
37+           if curl --output /dev/null --silent --head --fail "https://repo1.maven.org/maven2/net/laprun/sustainability/power-server/${{steps.metadata.outputs.current-version}}"; then 
38+             echo "already_released=true" >> $GITHUB_OUTPUT 
39+           fi 
40+ 
3141uses : actions/checkout@v4 
42+         if : steps.released.outputs.already_released != 'true' 
3243
3344      - uses : actions/setup-java@v4 
45+         if : steps.released.outputs.already_released != 'true' 
3446        with :
3547          distribution : ' temurin' 
3648          java-version : ' 21' 
@@ -42,11 +54,13 @@ jobs:
4254          gpg-passphrase : MAVEN_GPG_PASSPHRASE 
4355
4456      - name : Configure Git author 
57+         if : steps.released.outputs.already_released != 'true' 
4558        run : | 
4659          git config --local user.email "[email protected] " 4760          git config --local user.name "GitHub Action" 
4861
4962name : Maven release ${{steps.metadata.outputs.current-version}} 
63+         if : steps.released.outputs.already_released != 'true' 
5064        run : | 
5165          mvn -B release:prepare -Prelease -Darguments="-DskipTests" -DreleaseVersion=${{steps.metadata.outputs.current-version}} -DdevelopmentVersion=${{steps.metadata.outputs.next-version}} 
5266          mvn -B release:perform -Darguments="-DperformRelease -DskipTests" -DperformRelease -Prelease 
@@ -56,12 +70,14 @@ jobs:
5670          MAVEN_GPG_PASSPHRASE : " ${{ secrets.GPG_PASSPHRASE }}" 
5771
5872      - name : Push changes to ${{github.base_ref}} branch 
73+         if : steps.released.outputs.already_released != 'true' 
5974        run : | 
6075          git push 
6176          git push origin ${{steps.metadata.outputs.current-version}} 
6277
6378#  Build native executable per runner
6479  package :
80+     if : needs.maven-release.outputs.already_released != 'true' 
6581    needs : [ maven-release ] 
6682    name : ' Build with Graal on ${{ matrix.os }}' 
6783    strategy :
@@ -109,6 +125,7 @@ jobs:
109125
110126  #  Collect all executables and release
111127  release :
128+     if : needs.maven-release.outputs.already_released != 'true' 
112129    needs : [ maven-release, package ] 
113130    runs-on : ubuntu-latest 
114131    steps :
0 commit comments