forked from JabRef/jabref
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge remote-tracking branch 'upstream/main' into import_into_library
* upstream/main: (75 commits) Bump org.eclipse.jgit from 6.3.0.202209071007-r to 6.4.0.202211300538-r (JabRef#9476) Bump com.github.andygoossens.modernizer from 1.6.2 to 1.7.0 (JabRef#9478) Bump mockito-core from 4.9.0 to 4.10.0 (JabRef#9479) Bump checkstyle from 10.4 to 10.5.0 (JabRef#9477) Bump slf4j-api from 2.0.5 to 2.0.6 in /buildSrc (JabRef#9480) Bibtex month not deprecated (JabRef#9404) Show development information\n\n+semver: major Release v5.8 Update external libraries add afterburner fx jabref add jakarta inject fix display name for artifact store Prepare CHANGELOG for release Also trigger on branch arm64mac-release Only arm64 m+ Update deployment-arm64.yml add deployment with arm as well Revert "Test self hosted runner" remove self hosted from normal deployment fix unit test for slr Refine do not put under drive letter Update journal abbrev list (JabRef#9469) ... # Conflicts: # CHANGELOG.md
- Loading branch information
Showing
147 changed files
with
4,301 additions
and
852 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,196 @@ | ||
name: Deployment Release for ARM64 - Run manually! | ||
|
||
on: | ||
workflow_dispatch: | ||
push: | ||
branches: | ||
- arm64mac-release | ||
|
||
|
||
env: | ||
SpringerNatureAPIKey: ${{ secrets.SpringerNatureAPIKey }} | ||
AstrophysicsDataSystemAPIKey: ${{ secrets.AstrophysicsDataSystemAPIKey }} | ||
IEEEAPIKey: ${{ secrets.IEEEAPIKey }} | ||
BiodiversityHeritageApiKey: ${{ secrets.BiodiversityHeritageApiKey}} | ||
OSXCERT: ${{ secrets.OSX_SIGNING_CERT }} | ||
GRADLE_OPTS: -Xmx4g -Dorg.gradle.daemon=false -Dorg.gradle.vfs.watch=false | ||
JAVA_OPTS: -Xmx4g | ||
|
||
concurrency: | ||
group: ${{ github.ref }} | ||
cancel-in-progress: true | ||
|
||
jobs: | ||
build: | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os: [self-hosted] | ||
include: | ||
- os: self-hosted | ||
displayName: macOS (Arm64) | ||
suffix: '_arm64' | ||
archivePortable: tar -c -C build/distribution JabRef.app | pigz --rsyncable > build/distribution/JabRef-portable_macos_arm64.tar.gz && rm -R build/distribution/JabRef.app | ||
runs-on: ${{ matrix.os }} | ||
name: Create installer and portable version for ${{ matrix.displayName }} | ||
steps: | ||
- name: Check secrets presence | ||
id: checksecrets | ||
shell: bash | ||
run: | | ||
if [ "$BUILDJABREFPRIVATEKEY" == "" ]; then | ||
echo "secretspresent=NO" >> $GITHUB_OUTPUT | ||
else | ||
echo "secretspresent=YES" >> $GITHUB_OUTPUT | ||
fi | ||
env: | ||
BUILDJABREFPRIVATEKEY: ${{ secrets.buildJabRefPrivateKey }} | ||
- name: Fetch all history for all tags and branches | ||
uses: actions/checkout@v3 | ||
with: | ||
fetch-depth: 0 | ||
- name: Install GitVersion | ||
uses: gittools/actions/gitversion/setup@v0.9.15 | ||
with: | ||
versionSpec: "5.x" | ||
- name: Run GitVersion | ||
id: gitversion | ||
uses: gittools/actions/gitversion/execute@v0.9.15 | ||
- name: Set up JDK | ||
uses: actions/setup-java@v3 | ||
with: | ||
java-version: 18 | ||
distribution: 'temurin' | ||
cache: 'gradle' | ||
- name: Clean up keychain | ||
if: (matrix.os == 'self-hosted') && (steps.checksecrets.outputs.secretspresent == 'YES') | ||
run: | | ||
security delete-keychain signing_temp.keychain | ||
- name: Setup OSX key chain on OSX | ||
if: (matrix.os == 'macos-latest' || matrix.os == 'self-hosted') && (steps.checksecrets.outputs.secretspresent == 'YES') | ||
uses: apple-actions/import-codesign-certs@v1 | ||
with: | ||
p12-file-base64: ${{ secrets.OSX_SIGNING_CERT }} | ||
p12-password: ${{ secrets.OSX_CERT_PWD }} | ||
keychain-password: jabref | ||
- name: Setup OSX key chain on OSX for app id cert | ||
if: (matrix.os == 'macos-latest' || matrix.os == 'self-hosted') && (steps.checksecrets.outputs.secretspresent == 'YES') | ||
uses: apple-actions/import-codesign-certs@v1 | ||
with: | ||
p12-file-base64: ${{ secrets.OSX_SIGNING_CERT_APPLICATION }} | ||
p12-password: ${{ secrets.OSX_CERT_PWD }} | ||
create-keychain: false | ||
keychain-password: jabref | ||
- name: Build runtime image | ||
if: (matrix.os != 'macos-latest') || (steps.checksecrets.outputs.secretspresent == 'YES') | ||
run: ./gradlew -i -PprojVersion="${{ steps.gitversion.outputs.AssemblySemVer }}" -PprojVersionInfo="${{ steps.gitversion.outputs.InformationalVersion }}" jlinkZip | ||
- name: Build installer | ||
if: (matrix.os != 'macos-latest') || (steps.checksecrets.outputs.secretspresent == 'YES') | ||
run: ./gradlew -i -PprojVersion="${{ steps.gitversion.outputs.AssemblySemVer }}" -PprojVersionInfo="${{ steps.gitversion.outputs.InformationalVersion }}" jpackage | ||
shell: bash | ||
- name: Resign app image for OSX and build dmg | ||
if: (matrix.os == 'macos-latest' || matrix.os == 'self-hosted') && (steps.checksecrets.outputs.secretspresent == 'YES') | ||
shell: bash | ||
run: | | ||
codesign --entitlements buildres/mac/jabref.entitlements --options runtime -vvv -f --sign "Developer ID Application: JabRef e.V. (6792V39SK3)" build/distribution/JabRef.app/Contents/runtime/Contents/MacOS/libjli.dylib | ||
codesign --entitlements buildres/mac/jabref.entitlements --options runtime -vvv -f --sign "Developer ID Application: JabRef e.V. (6792V39SK3)" build/distribution/JabRef.app/Contents/MacOS/JabRef | ||
codesign --entitlements buildres/mac/jabref.entitlements --options runtime -vvv -f --sign "Developer ID Application: JabRef e.V. (6792V39SK3)" build/distribution/JabRef.app | ||
jpackage --type pkg --dest build/distribution --name JabRef --app-version "${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}" --app-image build/distribution/JabRef.app --verbose --type dmg --vendor JabRef --app-version "${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}" --file-associations buildres/mac/bibtexAssociations.properties --resource-dir buildres/mac | ||
codesign -s "Developer ID Application: JabRef e.V. (6792V39SK3)" --options runtime --entitlements buildres/mac/jabref.entitlements -vvvv --deep "build/distribution/JabRef-${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}.dmg" | ||
jpackage --type pkg --dest build/distribution --name JabRef --mac-package-identifier JabRef --app-version "${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}" --app-image build/distribution/JabRef.app --verbose --type pkg --vendor JabRef --app-version "${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}" --file-associations buildres/mac/bibtexAssociations.properties --resource-dir buildres/mac | ||
productsign --sign "Developer ID Installer: JabRef e.V. (6792V39SK3)" "build/distribution/JabRef-${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}.pkg" "build/distribution/JabRef-${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}-signed.pkg" | ||
- name: Notarize dmg and pkg installer | ||
if: (matrix.os == 'macos-latest' || matrix.os == 'self-hosted' ) && startsWith(github.ref, 'refs/tags/') && (steps.checksecrets.outputs.secretspresent == 'YES') | ||
shell: bash | ||
run: | | ||
REQUEST_UUID_DMG=$(xcrun altool --verbose --notarize-app --primary-bundle-id "org.jabref" --username ${{ secrets.OSX_NOTARIZATION_APP_USERNAME }} --password ${{ secrets.OSX_NOTARIZATION_APP_PWD }} --asc-provider "6792V39SK3" --file "build/distribution/JabRef-${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}.dmg" | grep RequestUUID | awk '{print $3}') | ||
while xcrun altool --notarization-info "$REQUEST_UUID_DMG" -u ${{ secrets.OSX_NOTARIZATION_APP_USERNAME }} -p ${{ secrets.OSX_NOTARIZATION_APP_PWD }} | grep "Status: in progress" > /dev/null; do | ||
echo "Verification in progress..." | ||
sleep 30 | ||
done | ||
xcrun stapler staple "build/distribution/JabRef-${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}.dmg" | ||
spctl -vvv --assess --type exec build/distribution/JabRef.app | ||
codesign -vvv --deep --strict "build/distribution/JabRef-${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}.dmg" | ||
codesign -dvv "build/distribution/JabRef-${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}.dmg" | ||
REQUEST_UUID_PKG=$(xcrun altool --verbose --notarize-app --primary-bundle-id "org.jabref" --username ${{ secrets.OSX_NOTARIZATION_APP_USERNAME }} --password ${{ secrets.OSX_NOTARIZATION_APP_PWD }} --asc-provider "6792V39SK3" --file "build/distribution/JabRef-${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}-signed.pkg" | grep RequestUUID | awk '{print $3}') | ||
while xcrun altool --notarization-info "$REQUEST_UUID_PKG" -u ${{ secrets.OSX_NOTARIZATION_APP_USERNAME }} -p ${{ secrets.OSX_NOTARIZATION_APP_PWD }} | grep "Status: in progress" > /dev/null; do | ||
echo "Verification in progress..." | ||
sleep 30 | ||
done | ||
xcrun stapler staple "build/distribution/JabRef-${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}-signed.pkg" | ||
rm "build/distribution/JabRef-${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}.pkg" | ||
mv "build/distribution/JabRef-${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}-signed.pkg" "build/distribution/JabRef-${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}.pkg" | ||
- name: Package application image | ||
if: (matrix.os != 'macos-latest' && matrix.os != 'self-hosted') || (steps.checksecrets.outputs.secretspresent == 'YES') | ||
shell: bash | ||
run: ${{ matrix.archivePortable }} | ||
- name: Rename files (non-macos) | ||
if: (matrix.os != 'macos-latest' && matrix.os != 'self-hosted') | ||
shell: pwsh | ||
run: | | ||
get-childitem -Path build/distribution/* | rename-item -NewName {$_.name -replace "${{ steps.gitversion.outputs.AssemblySemVer }}","${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}"} | ||
get-childitem -Path build/distribution/* | rename-item -NewName {$_.name -replace "portable","${{ steps.gitversion.outputs.Major }}.${{ steps.gitversion.outputs.Minor }}-portable"} | ||
- name: Rename files (arm64) | ||
if: (matrix.os == 'self-hosted') && (steps.checksecrets.outputs.secretspresent == 'YES') | ||
shell: pwsh | ||
run: | | ||
get-childitem -Path build/distribution/* | rename-item -NewName {$_.name -replace ".dmg", ".${{ matrix.suffix }}.dmg"} | ||
get-childitem -Path build/distribution/* | rename-item -NewName {$_.name -replace ".pkg", ".${{ matrix.suffix }}.pkg"} | ||
- name: Upload to GitHub workflow artifacts store | ||
if: (matrix.os != 'macos-latest' && matrix.os !='self-hosted') || (steps.checksecrets.outputs.secretspresent == 'YES') | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: JabRef-${{ matrix.displayName }} | ||
path: build/distribution | ||
deploy: | ||
strategy: | ||
fail-fast: false | ||
name: Deploy binaries on builds.jabref.org | ||
runs-on: ubuntu-latest | ||
needs: [build] | ||
steps: | ||
- name: Check secrets presence | ||
id: checksecrets | ||
shell: bash | ||
run: | | ||
if [ "$BUILDJABREFPRIVATEKEY" == "" ]; then | ||
echo "secretspresent=NO" >> $GITHUB_OUTPUT | ||
else | ||
echo "secretspresent=YES" >> $GITHUB_OUTPUT | ||
fi | ||
env: | ||
BUILDJABREFPRIVATEKEY: ${{ secrets.buildJabRefPrivateKey }} | ||
- name: Checkout source | ||
if: steps.checksecrets.outputs.secretspresent == 'YES' | ||
uses: actions/checkout@v3 | ||
- name: Fetch all history for all tags and branches | ||
if: steps.checksecrets.outputs.secretspresent == 'YES' | ||
run: git fetch --prune --unshallow | ||
- name: Install GitVersion | ||
if: steps.checksecrets.outputs.secretspresent == 'YES' | ||
uses: gittools/actions/gitversion/setup@v0.9.15 | ||
with: | ||
versionSpec: '5.x' | ||
- name: Run GitVersion | ||
if: steps.checksecrets.outputs.secretspresent == 'YES' | ||
id: gitversion | ||
uses: gittools/actions/gitversion/execute@v0.9.15 | ||
- name: Get macOSArm64 binaries | ||
if: steps.checksecrets.outputs.secretspresent == 'YES' | ||
uses: actions/download-artifact@master | ||
with: | ||
name: JabRef-macOS (Arm64) | ||
path: build/distribution/ | ||
- name: Deploy to builds.jabref.org | ||
id: deploy | ||
if: steps.checksecrets.outputs.secretspresent == 'YES' | ||
uses: Pendect/action-rsyncer@v2.0.0 | ||
env: | ||
DEPLOY_KEY: ${{ secrets.buildJabRefPrivateKey }} | ||
BRANCH: ${{ steps.gitversion.outputs.branchName }} | ||
with: | ||
flags: -vaz --itemize-changes --stats --partial-dir=/tmp/partial --rsync-path="mkdir -p /var/www/builds.jabref.org/www/${{ steps.gitversion.outputs.branchName }} && rsync" | ||
options: '' | ||
ssh_options: '-p 9922' | ||
src: 'build/distribution/' | ||
dest: jrrsync@build-upload.jabref.org:/var/www/builds.jabref.org/www/${{ steps.gitversion.outputs.branchName }}/ |
Oops, something went wrong.