4
4
JAVAFX_VERSION : ' 17.0.7'
5
5
on :
6
6
push :
7
- branches : [master]
7
+ branches : [master, windows-installer ]
8
8
9
9
defaults :
10
10
run :
59
59
JOSM release ${{ env.josm_release_tag }}
60
60
draft : false
61
61
prerelease : ${{ env.josm_prerelease }}
62
+ if : github.ref == 'refs/heads/master'
62
63
63
64
build :
64
65
needs : createrelease
69
70
fail-fast : false
70
71
matrix :
71
72
# test against latest update of each major Java version, as well as specific updates of LTS versions:
72
- java : [8, 11, 17, 21, 22-ea]
73
+ java : [8, 11, 17, 21, 22, 23 -ea]
73
74
os : [ubuntu-latest, macos-latest, windows-latest]
74
75
name : Java ${{ matrix.java }} on ${{ matrix.os }}
75
76
steps :
@@ -113,18 +114,20 @@ jobs:
113
114
SIGN_TSA : ${{ secrets.SIGN_TSA }}
114
115
# Calls ant with -Dreleasebuild=true if we're a 'tested' build
115
116
run : |
116
- export SIGN_KEYSTORE=certificate.p12
117
- echo "$SIGN_CERT" | base64 --decode > $SIGN_KEYSTORE
117
+ if [ ! -z "${SIGN_CERT}" ]; then
118
+ export SIGN_KEYSTORE=certificate.p12
119
+ echo "$SIGN_CERT" | base64 --decode > $SIGN_KEYSTORE
120
+ fi
118
121
if [ "${{ needs.createrelease.outputs.josm_prerelease }}" == "true" ]; then
119
122
ANT="ant"
120
123
else
121
124
ANT="ant -Dreleasebuild=true"
122
125
fi
123
126
$ANT dist
124
- rm $SIGN_KEYSTORE
127
+ if [ ! -z "${SIGN_KEYSTORE}" ]; then rm $SIGN_KEYSTORE; fi
125
128
126
129
- name : Upload jar
127
- if : ${{ always() }}
130
+ if : ${{ always() && needs.createrelease.outputs.upload_url }}
128
131
env :
129
132
GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
130
133
uses : actions/upload-release-asset@v1
@@ -134,6 +137,15 @@ jobs:
134
137
asset_name : JOSM-${{ runner.os}}-java${{ matrix.java }}-${{ needs.createrelease.outputs.josm_revision }}.jar
135
138
asset_content_type : application/java-archive
136
139
140
+ - name : Upload jar
141
+ if : ${{ always() && !needs.createrelease.outputs.upload_url }}
142
+ env :
143
+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
144
+ uses : actions/upload-artifact@v4
145
+ with :
146
+ path : dist/josm-custom.jar
147
+ name : JOSM-${{ runner.os}}-java${{ matrix.java }}-${{ needs.createrelease.outputs.josm_revision }}.jar
148
+
137
149
- name : Build and package for macOS
138
150
if : ${{ runner.os == 'macos' && matrix.java != '8' && matrix.java != '11' && always() }}
139
151
env :
@@ -172,7 +184,7 @@ jobs:
172
184
./native/windows/win-jpackage.sh ${{ needs.createrelease.outputs.josm_revision }}
173
185
174
186
- name : Upload macOS app
175
- if : ${{ runner.os == 'macos' && matrix.java != '8' && matrix.java != '11' && always() }}
187
+ if : ${{ runner.os == 'macos' && matrix.java != '8' && matrix.java != '11' && always() && needs.createrelease.outputs.upload_url }}
176
188
uses : actions/upload-release-asset@v1
177
189
env :
178
190
GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
@@ -182,8 +194,17 @@ jobs:
182
194
asset_name : JOSM-${{ runner.os}}-java${{ matrix.java }}-${{ needs.createrelease.outputs.josm_revision }}.zip
183
195
asset_content_type : application/zip
184
196
197
+ - name : Upload macOS app
198
+ if : ${{ runner.os == 'macos' && matrix.java != '8' && matrix.java != '11' && always() && !needs.createrelease.outputs.upload_url }}
199
+ uses : actions/upload-artifact@v4
200
+ env :
201
+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
202
+ with :
203
+ path : app/JOSM.zip
204
+ name : JOSM-${{ runner.os}}-java${{ matrix.java }}-${{ needs.createrelease.outputs.josm_revision }}.zip
205
+
185
206
- name : Upload Windows Installer executable
186
- if : ${{ runner.os == 'windows' && matrix.java != '8' && matrix.java != '11' && always() }}
207
+ if : ${{ runner.os == 'windows' && matrix.java != '8' && matrix.java != '11' && always() && needs.createrelease.outputs.upload_url }}
187
208
uses : actions/upload-release-asset@v1
188
209
env :
189
210
GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
@@ -193,8 +214,17 @@ jobs:
193
214
asset_name : JOSM-${{ runner.os}}-java${{ matrix.java }}-${{ needs.createrelease.outputs.josm_revision }}.exe
194
215
asset_content_type : application/vnd.microsoft.portable-executable
195
216
217
+ - name : Upload Windows Installer executable
218
+ if : ${{ runner.os == 'windows' && matrix.java != '8' && matrix.java != '11' && always() && !needs.createrelease.outputs.upload_url }}
219
+ uses : actions/upload-artifact@v4
220
+ env :
221
+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
222
+ with :
223
+ path : app/JOSM.exe
224
+ name : JOSM-${{ runner.os}}-java${{ matrix.java }}-${{ needs.createrelease.outputs.josm_revision }}.exe
225
+
196
226
- name : Upload Windows Installer package
197
- if : ${{ runner.os == 'windows' && matrix.java != '8' && matrix.java != '11' && always() }}
227
+ if : ${{ runner.os == 'windows' && matrix.java != '8' && matrix.java != '11' && always() && needs.createrelease.outputs.upload_url }}
198
228
uses : actions/upload-release-asset@v1
199
229
env :
200
230
GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
@@ -203,3 +233,12 @@ jobs:
203
233
asset_path : app/JOSM.msi
204
234
asset_name : JOSM-${{ runner.os}}-java${{ matrix.java }}-${{ needs.createrelease.outputs.josm_revision }}.msi
205
235
asset_content_type : application/x-ole-storage
236
+
237
+ - name : Upload Windows Installer package
238
+ if : ${{ runner.os == 'windows' && matrix.java != '8' && matrix.java != '11' && always() && !needs.createrelease.outputs.upload_url }}
239
+ uses : actions/upload-artifact@v4
240
+ env :
241
+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
242
+ with :
243
+ path : app/JOSM.msi
244
+ name : JOSM-${{ runner.os}}-java${{ matrix.java }}-${{ needs.createrelease.outputs.josm_revision }}.msi
0 commit comments