Compare commits

...
+79 -11
View File
@@ -37,8 +37,8 @@ jobs:
with: with:
version: ${{ inputs.version }} version: ${{ inputs.version }}
build-msi: build-appimage:
name: Build .msi Installer name: Build appimage
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
needs: [ get-version ] needs: [ get-version ]
strategy: strategy:
@@ -230,24 +230,64 @@ jobs:
jar --file="$jarFile" --update $(Resolve-Path -Relative -Path $_) jar --file="$jarFile" --update $(Resolve-Path -Relative -Path $_)
} }
} }
- name: Generate license for MSI - name: Generate license file
run: > run: >
mvn -B license:add-third-party "-Djavafx.platform=win" mvn -B license:add-third-party "-Djavafx.platform=win"
"-Dlicense.thirdPartyFilename=license.rtf" "-Dlicense.thirdPartyFilename=license.rtf"
"-Dlicense.outputDirectory=dist/win/resources" "-Dlicense.outputDirectory=appdir"
"-Dlicense.fileTemplate=dist/win/resources/licenseTemplate.ftl" "-Dlicense.fileTemplate=dist/win/resources/licenseTemplate.ftl"
"-Dlicense.includedScopes=compile" "-Dlicense.includedScopes=compile"
"-Dlicense.excludedGroups=^org\.cryptomator" "-Dlicense.excludedGroups=^org\.cryptomator"
"-Dlicense.failOnMissing=true" "-Dlicense.failOnMissing=true"
"-Dlicense.licenseMergesUrl=file:///${{ github.workspace }}/license/merges" "-Dlicense.licenseMergesUrl=file:///${{ github.workspace }}/license/merges"
shell: pwsh shell: pwsh
- name: Create MSI - name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: appimage-${{ matrix.arch }}
include-hidden-files: true
if-no-files-found: error
path: |
appdir
build-msi:
name: Build .msi installer
runs-on: windows-latest
needs: [ get-version, build-appimage ]
steps:
- uses: actions/checkout@v4
- name: Download appimage
uses: actions/download-artifact@v4
with:
name: appimage-x64
path: appdir-x64
- name: Download appimage
uses: actions/download-artifact@v4
with:
name: appimage-arm64
path: appdir-arm64
- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: '24.0.1+9'
java-package: 'jdk'
cache: 'maven'
- name: Install wix and extensions
run: |
dotnet tool install --global wix --version 6.0.0
wix.exe extension add WixToolset.UI.wixext/6.0.0 --global
wix.exe extension add WixToolset.Util.wixext/6.0.0 --global
- name: Copy license file
run: cp appdir-x64/license.rtf dist/win/resources/license.rtf
- name: Create x64 MSI with x64 appimage
run: > run: >
${JAVA_HOME}/bin/jpackage ${JAVA_HOME}/bin/jpackage
--verbose --verbose
--type msi --type msi
--win-upgrade-uuid bda45523-42b1-4cae-9354-a45475ed4775 --win-upgrade-uuid bda45523-42b1-4cae-9354-a45475ed4775
--app-image appdir/Cryptomator --app-image appdir-x64/Cryptomator
--dest installer --dest installer
--name Cryptomator --name Cryptomator
--vendor "Skymatic GmbH" --vendor "Skymatic GmbH"
@@ -263,8 +303,37 @@ jobs:
--file-associations dist/win/resources/FAvaultFile.properties --file-associations dist/win/resources/FAvaultFile.properties
env: env:
JP_WIXWIZARD_RESOURCES: ${{ github.workspace }}/dist/win/resources # requires abs path, used in resources/main.wxs JP_WIXWIZARD_RESOURCES: ${{ github.workspace }}/dist/win/resources # requires abs path, used in resources/main.wxs
JP_WIXHELPER_DIR: ${{ github.workspace }}\appdir JP_WIXHELPER_DIR: ${{ github.workspace }}\appdir-x64
- name: Codesign MSI - name: Add possible alpha/beta tags and architecture to installer name
run: mv installer/Cryptomator-*.msi Cryptomator-${{ needs.get-version.outputs.semVerStr }}-x64.msi
- name: Copy license file for arm64
run: cp appdir-arm64/license.rtf dist/win/resources/license.rtf
- name: Create x64 MSI with arm64 appimage
run: >
${JAVA_HOME}/bin/jpackage
--verbose
--type msi
--win-upgrade-uuid bda45523-42b1-4cae-9354-a45475ed4775
--app-image appdir-arm64/Cryptomator
--dest installer
--name Cryptomator
--vendor "Skymatic GmbH"
--copyright "(C) 2016 - 2025 Skymatic GmbH"
--app-version "${{ needs.get-version.outputs.semVerNum }}.${{ needs.get-version.outputs.revNum}}"
--win-menu
--win-dir-chooser
--win-shortcut-prompt
--win-update-url "https:\\cryptomator.org\downloads"
--win-menu-group Cryptomator
--resource-dir dist/win/resources
--license-file dist/win/resources/license.rtf
--file-associations dist/win/resources/FAvaultFile.properties
env:
JP_WIXWIZARD_RESOURCES: ${{ github.workspace }}/dist/win/resources # requires abs path, used in resources/main.wxs
JP_WIXHELPER_DIR: ${{ github.workspace }}\appdir-arm64
- name: Add possible alpha/beta tags and architecture to installer name
run: mv installer/Cryptomator-*.msi Cryptomator-${{ needs.get-version.outputs.semVerStr }}-arm64.msi
- name: Codesign MSIs
uses: skymatic/code-sign-action@v3 uses: skymatic/code-sign-action@v3
with: with:
certificate: ${{ secrets.WIN_CODESIGN_P12_BASE64 }} certificate: ${{ secrets.WIN_CODESIGN_P12_BASE64 }}
@@ -273,8 +342,6 @@ jobs:
description: Cryptomator Installer description: Cryptomator Installer
timestampUrl: 'http://timestamp.digicert.com' timestampUrl: 'http://timestamp.digicert.com'
folder: installer folder: installer
- name: Add possible alpha/beta tags and architecture to installer name
run: mv installer/Cryptomator-*.msi Cryptomator-${{ needs.get-version.outputs.semVerStr }}-${{ matrix.arch }}.msi
- name: Create detached GPG signature with key 615D449FE6E6A235 - name: Create detached GPG signature with key 615D449FE6E6A235
run: | run: |
echo "${GPG_PRIVATE_KEY}" | gpg --batch --quiet --import echo "${GPG_PRIVATE_KEY}" | gpg --batch --quiet --import
@@ -285,7 +352,7 @@ jobs:
- name: Upload artifacts - name: Upload artifacts
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: msi-${{ matrix.arch }} name: msi-x64
path: | path: |
Cryptomator-*.msi Cryptomator-*.msi
Cryptomator-*.asc Cryptomator-*.asc
@@ -361,6 +428,7 @@ jobs:
working-directory: dist/win working-directory: dist/win
run: > run: >
wix build wix build
-arch ${{ matrix.arch }}
-define BundleName="Cryptomator" -define BundleName="Cryptomator"
-define BundleVersion="${{ needs.get-version.outputs.semVerNum }}.${{ needs.get-version.outputs.revNum}}" -define BundleVersion="${{ needs.get-version.outputs.semVerNum }}.${{ needs.get-version.outputs.revNum}}"
-define BundleVendor="Skymatic GmbH" -define BundleVendor="Skymatic GmbH"