@@ -164,6 +164,20 @@ jobs:
164164 id : diskspace
165165 shell : bash
166166 run : |
167+ PR_NUMBER="${{ github.event.pull_request.number }}"
168+ TARGET="/var/www/builds.jabref.org/www/pull/$PR_NUMBER"
169+ SSH_OPTS="-p 9922 -i sshkey -o StrictHostKeyChecking=no"
170+ HOST="jrrsync@build-upload.jabref.org"
171+ if ssh $SSH_OPTS "$HOST" "test -d '$TARGET'"; then
172+ echo "☁️ Target exists: $TARGET - will upload"
173+ echo "☁️ Target exists: $TARGET - will upload" >> $GITHUB_STEP_SUMMARY
174+ echo "available=true" >> "$GITHUB_OUTPUT"
175+ exit 0
176+ fi
177+
178+ echo "🤔 Target does not exist: $TARGET"
179+ echo "🤔 Target does not exist: $TARGET" >> $GITHUB_STEP_SUMMARY
180+
167181 USAGE=$(ssh -p 9922 -i sshkey -o StrictHostKeyChecking=no jrrsync@build-upload.jabref.org \
168182 "df --output=pcent /var/www/builds.jabref.org | tail -n1 | tr -dc '0-9'")
169183 echo "Remote usage: ${USAGE}%"
@@ -193,40 +207,40 @@ jobs:
193207 matrix :
194208 include :
195209 # if you change the os version rename all other occurrences
196- - os : ubuntu-22.04
197- displayName : linux
210+ - os : ubuntu-22.04 # if this is adapted, also the next lines need to be adapted
211+ displayName : linux-amd64
198212 archivePortable : tar -c -C jabgui/build/packages/ubuntu-22.04 JabRef | pigz --rsyncable > jabgui/build/packages/ubuntu-22.04/JabRef-portable_linux.tar.gz && rm -R jabgui/build/packages/ubuntu-22.04/JabRef
199213 archivePortableJabKit : tar -c -C jabkit/build/packages/ubuntu-22.04 jabkit | pigz --rsyncable > jabkit/build/packages/ubuntu-22.04/jabkit-portable_linux.tar.gz && rm -R jabkit/build/packages/ubuntu-22.04/jabkit
200214 archivePortableJabLS : tar -c -C jabls-cli/build/packages/ubuntu-22.04 jabls | pigz --rsyncable > jabls-cli/build/packages/ubuntu-22.04/jabls-portable_linux.tar.gz && rm -R jabls-cli/build/packages/ubuntu-22.04/jabls
201215 suffix : ' '
202216 archForDebianRepack : ' _amd64'
203- - os : ubuntu-22.04-arm
217+ - os : ubuntu-22.04-arm # if this is adapted, also the next lines need to be adapted
204218 displayName : linux-arm
205219 archivePortable : tar -c -C jabgui/build/packages/ubuntu-22.04-arm JabRef | pigz --rsyncable > jabgui/build/packages/ubuntu-22.04-arm/JabRef-portable_linux_arm64.tar.gz && rm -R jabgui/build/packages/ubuntu-22.04-arm/JabRef
206220 archivePortableJabKit : tar -c -C jabkit/build/packages/ubuntu-22.04-arm jabkit | pigz --rsyncable > jabkit/build/packages/ubuntu-22.04-arm/jabkit-portable_linux_arm64.tar.gz && rm -R jabkit/build/packages/ubuntu-22.04-arm/jabkit
207221 archivePortableJabLS : tar -c -C jabls-cli/build/packages/ubuntu-22.04-arm jabls | pigz --rsyncable > jabls-cli/build/packages/ubuntu-22.04-arm/jabls-portable_linux_arm64.tar.gz && rm -R jabls-cli/build/packages/ubuntu-22.04-arm/jabls
208222 suffix : ' _arm64'
209223 archForDebianRepack : ' _arm64'
210224 - os : windows-latest
211- displayName : windows
225+ displayName : windows-amd64
212226 archivePortable : 7z a -r jabgui/build/packages/windows-latest/JabRef-portable_windows.zip ./jabgui/build/packages/windows-latest/JabRef && rm -R jabgui/build/packages/windows-latest/JabRef
213227 archivePortableJabKit : 7z a -r jabkit/build/packages/windows-latest/jabkit-portable_windows.zip ./jabkit/build/packages/windows-latest/jabkit && rm -R jabkit/build/packages/windows-latest/jabkit
214228 archivePortableJabLS : 7z a -r jabls-cli/build/packages/windows-latest/jabls-portable_windows.zip ./jabls-cli/build/packages/windows-latest/jabls && rm -R jabls-cli/build/packages/windows-latest/jabls
215229 suffix : ' '
216230 archForDebianRepack : ' '
217- - os : macos-15-intel # intel image
218- displayName : macOS
219- archivePortable : 7z a -r jabgui/build/packages/macos-15-intel/JabRef-portable_macos.zip ./jabgui/build/packages/macos-15-intel/JabRef.app && rm -R jabgui/build/packages/macos-15-intel/JabRef.app
220- archivePortableJabKit : 7z a -r jabkit/build/packages/macos-15-intel/jabkit-portable_macos.zip ./jabkit/build/packages/macos-15-intel/jabkit.app && rm -R jabkit/build/packages/macos-15-intel/jabkit.app
221- archivePortableJabLS : 7z a -r jabls-cli/build/packages/macos-15-intel/jabls-portable_macos.zip ./jabls-cli/build/packages/macos-15-intel/jabls.app && rm -R jabls-cli/build/packages/macos-15-intel/jabls.app
222- suffix : ' '
231+ - os : macos-15-intel
232+ displayName : macOS-intel
233+ archivePortable : 7z a -r jabgui/build/packages/macos-15-intel/JabRef-portable_macos-intel .zip ./jabgui/build/packages/macos-15-intel/JabRef.app && rm -R jabgui/build/packages/macos-15-intel/JabRef.app
234+ archivePortableJabKit : 7z a -r jabkit/build/packages/macos-15-intel/jabkit-portable_macos-intel .zip ./jabkit/build/packages/macos-15-intel/jabkit.app && rm -R jabkit/build/packages/macos-15-intel/jabkit.app
235+ archivePortableJabLS : 7z a -r jabls-cli/build/packages/macos-15-intel/jabls-portable_macos-intel .zip ./jabls-cli/build/packages/macos-15-intel/jabls.app && rm -R jabls-cli/build/packages/macos-15-intel/jabls.app
236+ suffix : ' _intel '
223237 archForDebianRepack : ' '
224238 - os : macos-15
225- displayName : macOS-arm
226- archivePortable : 7z a -r jabgui/build/packages/macos-15/JabRef-portable_macos-arm .zip ./jabgui/build/packages/macos-15/JabRef.app && rm -R jabgui/build/packages/macos-15/JabRef.app
227- archivePortableJabKit : 7z a -r jabkit/build/packages/macos-15/jabkit-portable_macos-arm .zip ./jabkit/build/packages/macos-15/jabkit.app && rm -R jabkit/build/packages/macos-15/jabkit.app
228- archivePortableJabLS : 7z a -r jabls-cli/build/packages/macos-15/jabls-portable_macos-arm .zip ./jabls-cli/build/packages/macos-15/jabls.app && rm -R jabls-cli/build/packages/macos-15/jabls.app
229- suffix : ' _arm64 '
239+ displayName : macOS-silicon
240+ archivePortable : 7z a -r jabgui/build/packages/macos-15/JabRef-portable_macos-silicon .zip ./jabgui/build/packages/macos-15/JabRef.app && rm -R jabgui/build/packages/macos-15/JabRef.app
241+ archivePortableJabKit : 7z a -r jabkit/build/packages/macos-15/jabkit-portable_macos-silicon .zip ./jabkit/build/packages/macos-15/jabkit.app && rm -R jabkit/build/packages/macos-15/jabkit.app
242+ archivePortableJabLS : 7z a -r jabls-cli/build/packages/macos-15/jabls-portable_macos-silicon .zip ./jabls-cli/build/packages/macos-15/jabls.app && rm -R jabls-cli/build/packages/macos-15/jabls.app
243+ suffix : ' _silicon '
230244 archForDebianRepack : ' '
231245 runs-on : ${{ matrix.os }}
232246 outputs :
@@ -235,6 +249,12 @@ jobs:
235249 branchname : ${{ steps.gitversion.outputs.branchName }}
236250 name : ${{ matrix.displayName }} installer and portable version
237251 steps :
252+ - name : Install pigz and cache (linux)
253+ if : (startsWith(matrix.os, 'ubuntu'))
254+ uses : awalsh128/cache-apt-pkgs-action@latest
255+ with :
256+ packages : pigz
257+ version : 1.0
238258 - name : Fetch all history for all tags and branches
239259 uses : actions/checkout@v6
240260 with :
@@ -249,27 +269,22 @@ jobs:
249269 id : gitversion
250270 uses : gittools/actions/gitversion/execute@v3.2.1
251271 - uses : ./.github/actions/setup-gradle
252- - name : Install pigz and cache (linux)
253- if : (startsWith(matrix.os, 'ubuntu'))
254- uses : awalsh128/cache-apt-pkgs-action@latest
255- with :
256- packages : pigz
257- version : 1.0
272+
258273 - name : Setup macOS key chain
259274 if : (startsWith(matrix.os, 'macos')) && (needs.conditions.outputs.secretspresent == 'true')
260275 uses : slidoapp/import-codesign-certs@1923310662e8682dd05b76b612b53301f431cd5d
261276 with :
262277 p12-file-base64 : ${{ secrets.OSX_SIGNING_CERT }}
263278 p12-password : ${{ secrets.OSX_CERT_PWD }}
264- keychain-password : jabref
279+ keychain-password : tEmPoRaRY-PaeSWD
265280 - name : Setup macOS key chain for app id cert
266281 if : (startsWith(matrix.os, 'macos')) && (needs.conditions.outputs.secretspresent == 'true')
267282 uses : slidoapp/import-codesign-certs@1923310662e8682dd05b76b612b53301f431cd5d
268283 with :
269284 p12-file-base64 : ${{ secrets.OSX_SIGNING_CERT_APPLICATION }}
270285 p12-password : ${{ secrets.OSX_CERT_PWD }}
271286 create-keychain : false
272- keychain-password : jabref
287+ keychain-password : tEmPoRaRY-PaeSWD
273288 - name : Build runtime image and installer
274289 shell : bash
275290 run : ./gradlew -i -PprojVersion="${{ steps.gitversion.outputs.AssemblySemVer }}" -PprojVersionInfo="${{ steps.gitversion.outputs.InformationalVersion }}" :jabgui:jpackage
@@ -387,7 +402,7 @@ jobs:
387402 name : JabRef-${{ matrix.os }}-tbn
388403 path : |
389404 jabgui/build/packages/${{ matrix.os }}
390- jabkit /build/packages/${{ matrix.os }}
405+ jabls-cli /build/packages/${{ matrix.os }}
391406 compression-level : 0 # no compression
392407 # endregion
393408
@@ -466,11 +481,25 @@ jobs:
466481 matrix :
467482 include :
468483 - os : macos-15
469- displayName : macOS (ARM64)
470- suffix : _arm64
484+ displayName : JabGui macOS (ARM64)
485+ path : ' jabgui'
486+ prefix : ' JabRef'
487+ suffix : ' _silicon'
488+ - os : macos-15-intel
489+ displayName : JabGui macOS (intel)
490+ path : ' jabgui'
491+ prefix : ' JabRef'
492+ suffix : ' _intel'
493+ - os : macos-15
494+ displayName : jabls macOS (ARM64)
495+ path : ' jabls'
496+ prefix : ' jabls'
497+ suffix : ' _silicon'
471498 - os : macos-15-intel
472- displayName : macOS (ARM64)
473- suffix : " "
499+ displayName : jabls macOS (intel)
500+ path : ' jabls'
501+ prefix : ' jabls'
502+ suffix : ' _intel'
474503 runs-on : ${{ matrix.os }}
475504 steps :
476505 - name : Download from GitHub workflow artifacts store (macOS)
@@ -480,21 +509,21 @@ jobs:
480509 - name : Notarize dmg
481510 shell : bash
482511 run : |
483- cd jabgui
512+ cd ${{ matrix.path }}
484513 find . -type f
485514 xcrun notarytool store-credentials "notarytool-profile" --apple-id "vorstand@jabref.org" --team-id "6792V39SK3" --password "${{ secrets.OSX_NOTARIZATION_APP_PWD }}"
486- xcrun notarytool submit build/packages/${{ matrix.os }}/JabRef -${{ needs.build.outputs.major }}.${{ needs.build.outputs.minor }}${{ matrix.suffix}}.dmg --keychain-profile "notarytool-profile" --wait
487- xcrun stapler staple build/packages/${{ matrix.os }}/JabRef -${{ needs.build.outputs.major }}.${{ needs.build.outputs.minor }}${{ matrix.suffix}}.dmg
515+ xcrun notarytool submit build/packages/${{ matrix.os }}/${{ matrix.prefix }} -${{ needs.build.outputs.major }}.${{ needs.build.outputs.minor }}${{ matrix.suffix}}.dmg --keychain-profile "notarytool-profile" --wait
516+ xcrun stapler staple build/packages/${{ matrix.os }}/${{ matrix.prefix }} -${{ needs.build.outputs.major }}.${{ needs.build.outputs.minor }}${{ matrix.suffix}}.dmg
488517 - name : Notarize pkg
489518 shell : bash
490519 run : |
491- cd jabgui
520+ cd ${{ matrix.path }}
492521 xcrun notarytool store-credentials "notarytool-profile" --apple-id "vorstand@jabref.org" --team-id "6792V39SK3" --password "${{ secrets.OSX_NOTARIZATION_APP_PWD }}"
493- xcrun notarytool submit build/packages/${{ matrix.os }}/JabRef -${{ needs.build.outputs.major }}.${{ needs.build.outputs.minor }}${{ matrix.suffix}}.pkg --keychain-profile "notarytool-profile" --wait
494- xcrun stapler staple build/packages/${{ matrix.os }}/JabRef -${{ needs.build.outputs.major }}.${{ needs.build.outputs.minor }}${{ matrix.suffix}}.pkg
522+ xcrun notarytool submit build/packages/${{ matrix.os }}/${{ matrix.prefix }} -${{ needs.build.outputs.major }}.${{ needs.build.outputs.minor }}${{ matrix.suffix}}.pkg --keychain-profile "notarytool-profile" --wait
523+ xcrun stapler staple build/packages/${{ matrix.os }}/${{ matrix.prefix }} -${{ needs.build.outputs.major }}.${{ needs.build.outputs.minor }}${{ matrix.suffix}}.pkg
495524 - name : Upload to builds.jabref.org
496525 shell : bash
497526 run : |
498527 echo "${{ secrets.buildJabRefPrivateKey }}" > sshkey
499528 chmod 600 sshkey
500- rsync -rt --chmod=Du=rwx,Dg=rx,Do=rx,Fu=rw,Fg=r,Fo=r --itemize-changes --stats --rsync-path="mkdir -p /var/www/builds.jabref.org/www/${{ needs.build.outputs.branchname }} && rsync" -e 'ssh -p 9922 -i sshkey -o StrictHostKeyChecking=no' jabgui /build/packages/${{ matrix.os }}/ jrrsync@build-upload.jabref.org:/var/www/builds.jabref.org/www/${{ needs.build.outputs.branchname }}/
529+ rsync -rt --chmod=Du=rwx,Dg=rx,Do=rx,Fu=rw,Fg=r,Fo=r --itemize-changes --stats --rsync-path="mkdir -p /var/www/builds.jabref.org/www/${{ needs.build.outputs.branchname }} && rsync" -e 'ssh -p 9922 -i sshkey -o StrictHostKeyChecking=no' ${{ matrix.path }} /build/packages/${{ matrix.os }}/ jrrsync@build-upload.jabref.org:/var/www/builds.jabref.org/www/${{ needs.build.outputs.branchname }}/
0 commit comments