1
1
name : Release
2
2
3
3
on :
4
+ workflow_dispatch :
4
5
pull_request :
5
6
types : [ closed ]
6
7
paths :
19
20
runs-on : ubuntu-latest
20
21
name : Release power-server
21
22
if : ${{github.event.pull_request.merged == true}}
23
+ outputs :
24
+ already_released : ${{steps.released.outputs.already_released}}
22
25
23
26
steps :
24
27
- uses : radcortez/project-metadata-action@main
28
31
github-token : ${{secrets.GITHUB_TOKEN}}
29
32
metadata-file-path : ' .github/project.yml'
30
33
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
+
31
41
- uses : actions/checkout@v4
42
+ if : steps.released.outputs.already_released != 'true'
32
43
33
44
- uses : actions/setup-java@v4
45
+ if : steps.released.outputs.already_released != 'true'
34
46
with :
35
47
distribution : ' temurin'
36
48
java-version : ' 21'
@@ -42,11 +54,13 @@ jobs:
42
54
gpg-passphrase : MAVEN_GPG_PASSPHRASE
43
55
44
56
- name : Configure Git author
57
+ if : steps.released.outputs.already_released != 'true'
45
58
run : |
46
59
git config --local user.email "action@github.com"
47
60
git config --local user.name "GitHub Action"
48
61
49
62
- name : Maven release ${{steps.metadata.outputs.current-version}}
63
+ if : steps.released.outputs.already_released != 'true'
50
64
run : |
51
65
mvn -B release:prepare -Prelease -Darguments="-DskipTests" -DreleaseVersion=${{steps.metadata.outputs.current-version}} -DdevelopmentVersion=${{steps.metadata.outputs.next-version}}
52
66
mvn -B release:perform -Darguments="-DperformRelease -DskipTests" -DperformRelease -Prelease
@@ -56,12 +70,14 @@ jobs:
56
70
MAVEN_GPG_PASSPHRASE : " ${{ secrets.GPG_PASSPHRASE }}"
57
71
58
72
- name : Push changes to ${{github.base_ref}} branch
73
+ if : steps.released.outputs.already_released != 'true'
59
74
run : |
60
75
git push
61
76
git push origin ${{steps.metadata.outputs.current-version}}
62
77
63
78
# Build native executable per runner
64
79
package :
80
+ if : needs.maven-release.outputs.already_released != 'true'
65
81
needs : [ maven-release ]
66
82
name : ' Build with Graal on ${{ matrix.os }}'
67
83
strategy :
@@ -109,6 +125,7 @@ jobs:
109
125
110
126
# Collect all executables and release
111
127
release :
128
+ if : needs.maven-release.outputs.already_released != 'true'
112
129
needs : [ maven-release, package ]
113
130
runs-on : ubuntu-latest
114
131
steps :
0 commit comments