11name : Release
22
33on :
4+ workflow_dispatch :
45 pull_request :
56 types : [ closed ]
67 paths :
1819 maven-release :
1920 runs-on : ubuntu-latest
2021 name : Release power-server
21- if : ${{github.event.pull_request.merged == true}}
22+ if : ${{ github.event_name == 'workflow_dispatch' || 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+
3141 - uses : 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
4962 - name : 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