diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml index 70bf9654f..56dcf5d06 100644 --- a/.github/ISSUE_TEMPLATE/bug.yml +++ b/.github/ISSUE_TEMPLATE/bug.yml @@ -37,14 +37,19 @@ body: id: volume-type attributes: label: Volume Type - description: What is selected under Settings → Virtual Drive? - multiple: true - options: - - FUSE - - Dokany - - WebDAV + description: What volume type is selected under Settings → Virtual Drive? + value: | + - WinFsp + - WinFsp (Local Drive) + - FUSE-T + - macFUSE + - WebDAV (Windows Explorer) + - WebDAV (AppleScript) + - WebDAV (gio) + - WebDAV (HTTP Address) + - Dokany (1.5) validations: - required: false + required: true - type: textarea id: reproduction-steps attributes: diff --git a/.github/workflows/appimage.yml b/.github/workflows/appimage.yml index a3502145a..4e81a4295 100644 --- a/.github/workflows/appimage.yml +++ b/.github/workflows/appimage.yml @@ -16,7 +16,7 @@ jobs: get-version: uses: ./.github/workflows/get-version.yml with: - version: ${{ github.event.inputs.version }} + version: ${{ inputs.version }} build: name: Build AppImage @@ -47,7 +47,6 @@ jobs: - name: Patch target dir run: | cp LICENSE.txt target - cp dist/linux/launcher.sh target cp target/cryptomator-*.jar target/mods - name: Run jlink run: > @@ -55,7 +54,7 @@ jobs: --verbose --output runtime --module-path "${JAVA_HOME}/jmods" - --add-modules java.base,java.desktop,java.instrument,java.logging,java.naming,java.net.http,java.scripting,java.sql,java.xml,javafx.base,javafx.graphics,javafx.controls,javafx.fxml,jdk.unsupported,jdk.crypto.ec,jdk.accessibility,jdk.management.jfr + --add-modules java.base,java.desktop,java.instrument,java.logging,java.naming,java.net.http,java.scripting,java.sql,java.xml,javafx.base,javafx.graphics,javafx.controls,javafx.fxml,jdk.unsupported,jdk.crypto.ec,jdk.security.auth,jdk.accessibility,jdk.management.jfr --strip-native-commands --no-header-files --no-man-pages @@ -78,8 +77,10 @@ jobs: --dest appdir --name Cryptomator --vendor "Skymatic GmbH" - --copyright "(C) 2016 - 2022 Skymatic GmbH" + --copyright "(C) 2016 - 2023 Skymatic GmbH" --app-version "${{ needs.get-version.outputs.semVerNum }}.${{ needs.get-version.outputs.revNum }}" + --java-options "--enable-preview" + --java-options "--enable-native-access=org.cryptomator.jfuse.linux.amd64,org.cryptomator.jfuse.linux.aarch64" --java-options "-Xss5m" --java-options "-Xmx256m" --java-options "-Dcryptomator.appVersion=\"${{ needs.get-version.outputs.semVerStr }}\"" @@ -109,12 +110,6 @@ jobs: ln -s usr/share/icons/hicolor/scalable/apps/org.cryptomator.Cryptomator.svg Cryptomator.AppDir/.DirIcon ln -s usr/share/applications/org.cryptomator.Cryptomator.desktop Cryptomator.AppDir/Cryptomator.desktop ln -s bin/cryptomator.sh Cryptomator.AppDir/AppRun - - name: Extract libjffi.so # workaround for https://github.com/cryptomator/cryptomator-linux/issues/27 - run: | - JFFI_NATIVE_JAR=`ls lib/app/ | grep -e 'jffi-[1-9]\.[0-9]\{1,2\}.[0-9]\{1,2\}-native.jar'` - ${JAVA_HOME}/bin/jar -xf lib/app/${JFFI_NATIVE_JAR} /jni/x86_64-Linux/ - mv jni/x86_64-Linux/* lib/app/libjffi.so - working-directory: Cryptomator.AppDir - name: Download AppImageKit run: | curl -L https://github.com/AppImage/AppImageKit/releases/download/13/appimagetool-x86_64.AppImage -o appimagetool.AppImage diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d94048ee9..b31bfa08a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -42,15 +42,6 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} - - name: Sign source tarball with key 615D449FE6E6A235 - if: startsWith(github.ref, 'refs/tags/') - run: | - git archive --prefix="cryptomator-${{ github.ref_name }}/" -o "cryptomator-${{ github.ref_name }}.tar.gz" ${{ github.ref }} - echo "${GPG_PRIVATE_KEY}" | gpg --batch --quiet --import - echo "${GPG_PASSPHRASE}" | gpg --batch --quiet --passphrase-fd 0 --pinentry-mode loopback -u 615D449FE6E6A235 --detach-sign -a cryptomator-*.tar.gz - env: - GPG_PRIVATE_KEY: ${{ secrets.RELEASES_GPG_PRIVATE_KEY }} - GPG_PASSPHRASE: ${{ secrets.RELEASES_GPG_PASSPHRASE }} - name: Draft a release if: startsWith(github.ref, 'refs/tags/') uses: softprops/action-gh-release@v1 @@ -59,9 +50,6 @@ jobs: discussion_category_name: releases token: ${{ secrets.CRYPTOBOT_RELEASE_TOKEN }} generate_release_notes: true - files: | - cryptomator-*.tar.gz.asc - fail_on_unmatched_files: true body: |- :construction: Work in Progress diff --git a/.github/workflows/debian.yml b/.github/workflows/debian.yml index 8b6a3c956..d406d3883 100644 --- a/.github/workflows/debian.yml +++ b/.github/workflows/debian.yml @@ -1,18 +1,22 @@ name: Build Debian Package on: - release: - types: [published] workflow_dispatch: inputs: + ref: + description: 'GitHub Ref (e.g. refs/tags/1.6.16)' + required: true + semver: + description: 'SemVer String (e.g. 1.7.0-beta1)' + required: true + ppaver: + description: 'Base PPA Version String (e.g. 1.6.16+1.7.0~beta1) without -0ppa1' + required: true dput: description: 'Upload to PPA' required: true default: false type: boolean - version: - description: 'Version' - required: false env: JAVA_VERSION: 19 @@ -20,17 +24,23 @@ env: OPENJFX_JMODS_AARCH64: 'https://download2.gluonhq.com/openjfx/19/openjfx-19_linux-aarch64_bin-jmods.zip' jobs: - get-version: - uses: ./.github/workflows/get-version.yml - with: - version: ${{ github.event.inputs.version }} - build: name: Build Debian Package runs-on: ubuntu-20.04 - needs: [get-version] steps: - uses: actions/checkout@v3 + with: + ref: ${{ inputs.ref }} + fetch-depth: 0 + - id: versions + name: Get version information + run: | + SEM_VER_STR="${{ inputs.semver }}" + SEM_VER_NUM=`echo ${SEM_VER_STR} | sed -E 's/([0-9]+\.[0-9]+\.[0-9]+).*/\1/'` + REVCOUNT=`git rev-list --count HEAD` + echo "semVerStr=${SEM_VER_STR}" >> $GITHUB_OUTPUT + echo "semVerNum=${SEM_VER_NUM}" >> $GITHUB_OUTPUT + echo "revNum=${REVCOUNT}" >> $GITHUB_OUTPUT - name: Install build tools run: | sudo add-apt-repository ppa:coffeelibs/openjdk @@ -42,12 +52,6 @@ jobs: distribution: 'zulu' java-version: ${{ env.JAVA_VERSION }} cache: 'maven' - - id: versions - name: Create PPA version string - run: echo "ppaVerStr=${SEM_VER_STR/-/\~}-${REVCOUNT}" >> $GITHUB_OUTPUT - env: - SEM_VER_STR: ${{ needs.get-version.outputs.semVerStr }} - REVCOUNT: ${{ needs.get-version.outputs.revNum }} - name: Run maven run: mvn -B clean package -Pdependency-check,linux -DskipTests - name: Download OpenJFX jmods @@ -60,23 +64,26 @@ jobs: mkdir -p jmods/aarch64 unzip -j openjfx-aarch64.zip \*/javafx.base.jmod \*/javafx.controls.jmod \*/javafx.fxml.jmod \*/javafx.graphics.jmod -d jmods/aarch64 - name: Ensure major jfx version in pom and in jmods is the same - shell: pwsh run: | - mkdir jfxBaseJmodAmd64 - jmod extract --dir jfxBaseJmodAmd64 jmods/amd64/javafx.base.jmod - $jfxJmodVersionAmd64 = ((Get-Content -Path "jfxBaseJmodAmd64/lib/javafx.properties" | Where-Object {$_ -like 'javafx.version=*' }) -replace '.*=','') -split "\." - mkdir jfxBaseJmodAarch64 - jmod extract --dir jfxBaseJmodAarch64 jmods/aarch64/javafx.base.jmod - $jfxJmodVersionAarch64 = ((Get-Content -Path "jfxBaseJmodAarch64/lib/javafx.properties" | Where-Object {$_ -like 'javafx.version=*' }) -replace '.*=','') -split "\." - if ($jfxJmodVersionAmd64[0] -ne $jfxJmodVersionAarch64[0] ) { - Write-Error "JavaFX Jmods for aarch64 and amd64 are different major versions" + JMOD_VERSION_AMD64=$(jmod describe jmods/amd64/javafx.base.jmod | head -1) + JMOD_VERSION_AMD64=${JMOD_VERSION_AMD64#*@} + JMOD_VERSION_AMD64=${JMOD_VERSION_AMD64%%.*} + JMOD_VERSION_AARCH64=$(jmod describe jmods/aarch64/javafx.base.jmod | head -1) + JMOD_VERSION_AARCH64=${JMOD_VERSION_AARCH64#*@} + JMOD_VERSION_AARCH64=${JMOD_VERSION_AARCH64%%.*} + POM_JFX_VERSION=$(mvn help:evaluate "-Dexpression=javafx.version" -q -DforceStdout) + POM_JFX_VERSION=${POM_JFX_VERSION#*@} + POM_JFX_VERSION=${POM_JFX_VERSION%%.*} + + if [ $POM_JFX_VERSION -ne $JMOD_VERSION_AMD64 ]; then + >&2 echo "Major JavaFX version in pom.xml (${POM_JFX_VERSION}) != amd64 jmod version (${JMOD_VERSION_AMD64})" exit 1 - } - $jfxPomVersion = (&mvn help:evaluate "-Dexpression=javafx.version" -q -DforceStdout) -split "\." - if ($jfxPomVersion[0] -ne $jfxJmodVersionAmd64[0]) { - Write-Error "Major part of JavaFX version in pom($($jfxPomVersion[0])) does not match the version of Jmods($($jfxJmodVersionAmd64[0])) " + fi + + if [ $POM_JFX_VERSION -ne $JMOD_VERSION_AARCH64 ]; then + >&2 echo "Major JavaFX version in pom.xml (${POM_JFX_VERSION}) != aarch64 jmod version (${JMOD_VERSION_AARCH64})" exit 1 - } + fi - name: Create orig.tar.gz with common/ libs/ mods/ jmods/ run: | mkdir pkgdir @@ -85,7 +92,7 @@ jobs: cp -r jmods pkgdir cp -r dist/linux/common/ pkgdir cp target/cryptomator-*.jar pkgdir/mods - tar -cJf cryptomator_${{ steps.versions.outputs.ppaVerStr }}.orig.tar.xz -C pkgdir . + tar -cJf cryptomator_${{ inputs.ppaver }}.orig.tar.xz -C pkgdir . - name: Patch and rename pkgdir run: | cp -r dist/linux/debian/ pkgdir @@ -93,12 +100,12 @@ jobs: envsubst '${SEMVER_STR} ${VERSION_NUM} ${REVISION_NUM}' < dist/linux/debian/rules > pkgdir/debian/rules envsubst '${PPA_VERSION} ${RFC2822_TIMESTAMP}' < dist/linux/debian/changelog > pkgdir/debian/changelog find . -name "*.jar" >> pkgdir/debian/source/include-binaries - mv pkgdir cryptomator_${{ steps.versions.outputs.ppaVerStr }} + mv pkgdir cryptomator_${{ inputs.ppaver }} env: - SEMVER_STR: ${{ needs.get-version.outputs.semVerStr }} - VERSION_NUM: ${{ needs.get-version.outputs.semVerNum }} - REVISION_NUM: ${{ needs.get-version.outputs.revNum }} - PPA_VERSION: ${{ steps.versions.outputs.ppaVerStr }}-0ppa1 + SEMVER_STR: ${{ steps.versions.outputs.semVerStr }} + VERSION_NUM: ${{ steps.versions.outputs.semVerNum }} + REVISION_NUM: ${{ steps.versions.outputs.revNum }} + PPA_VERSION: ${{ inputs.ppaver }}-0ppa1 - name: Prepare GPG-Agent for signing with key 615D449FE6E6A235 run: | echo "${GPG_PRIVATE_KEY}" | gpg --batch --quiet --import @@ -113,7 +120,7 @@ jobs: env: DEBSIGN_PROGRAM: gpg --batch --pinentry-mode loopback DEBSIGN_KEYID: 615D449FE6E6A235 - working-directory: cryptomator_${{ steps.versions.outputs.ppaVerStr }} + working-directory: cryptomator_${{ inputs.ppaver }} - name: Create detached GPG signatures run: | gpg --batch --quiet --passphrase-fd 0 --pinentry-mode loopback -u 615D449FE6E6A235 --detach-sign -a cryptomator_*_amd64.deb @@ -130,14 +137,19 @@ jobs: cryptomator_*_amd64.deb cryptomator_*.asc - name: Publish on PPA - if: startsWith(github.ref, 'refs/tags/') || inputs.dput + if: inputs.dput run: dput ppa:sebastian-stenzel/cryptomator-beta cryptomator_*_source.changes + + # If ref is a tag, also upload to GitHub Releases: + - name: Determine tag name + if: startsWith(inputs.ref, 'refs/tags/') + run: | + REF=${{ inputs.ref }} + echo "TAG_NAME=${REF##*/}" >> $GITHUB_ENV - name: Publish Debian package on GitHub Releases - if: startsWith(github.ref, 'refs/tags/') - uses: softprops/action-gh-release@v1 - with: - fail_on_unmatched_files: true - token: ${{ secrets.CRYPTOBOT_RELEASE_TOKEN }} - files: | - cryptomator_*_amd64.deb - cryptomator_*.asc \ No newline at end of file + if: startsWith(inputs.ref, 'refs/tags/') + env: + GITHUB_TOKEN: ${{ secrets.CRYPTOBOT_RELEASE_TOKEN }} + run: | + artifacts=$(ls | grep cryptomator*.deb) + gh release upload ${{ env.TAG_NAME }} $artifacts \ No newline at end of file diff --git a/.github/workflows/get-version.yml b/.github/workflows/get-version.yml index e6131b835..5cffb56fb 100644 --- a/.github/workflows/get-version.yml +++ b/.github/workflows/get-version.yml @@ -58,13 +58,13 @@ jobs: SEM_VER_NUM=`echo ${SEM_VER_STR} | sed -E 's/([0-9]+\.[0-9]+\.[0-9]+).*/\1/'` REVCOUNT=`git rev-list --count HEAD` TYPE="unknown" - if [[ $SEM_VER_STR =~ [0-9]+\.[0-9]+\.[0-9]+ ]]; then + if [[ $SEM_VER_STR =~ [0-9]+\.[0-9]+\.[0-9]+$ ]]; then TYPE="stable" - elif [[ $SEM_VER_STR =~ [0-9]+\.[0-9]+\.[0-9]+-alpha[1-9] ]]; then + elif [[ $SEM_VER_STR =~ [0-9]+\.[0-9]+\.[0-9]+-alpha[1-9]+$ ]]; then TYPE="alpha" - elif [[ $SEM_VER_STR =~ [0-9]+\.[0-9]+\.[0-9]+-beta[1-9] ]]; then + elif [[ $SEM_VER_STR =~ [0-9]+\.[0-9]+\.[0-9]+-beta[1-9]+$ ]]; then TYPE="beta" - elif [[ $SEM_VER_STR =~ [0-9]+\.[0-9]+\.[0-9]+-rc[1-9] ]]; then + elif [[ $SEM_VER_STR =~ [0-9]+\.[0-9]+\.[0-9]+-rc[1-9]$ ]]; then TYPE="rc" fi echo "semVerStr=${SEM_VER_STR}" >> $GITHUB_OUTPUT diff --git a/.github/workflows/mac-dmg.yml b/.github/workflows/mac-dmg.yml index 2b2a9c52b..27320dba8 100644 --- a/.github/workflows/mac-dmg.yml +++ b/.github/workflows/mac-dmg.yml @@ -16,7 +16,7 @@ jobs: get-version: uses: ./.github/workflows/get-version.yml with: - version: ${{ github.event.inputs.version }} + version: ${{ inputs.version }} build: name: Build Cryptomator.app for ${{ matrix.output-suffix }} @@ -30,10 +30,12 @@ jobs: architecture: x64 output-suffix: x64 xcode-path: '/Applications/Xcode_13.2.1.app' + fuse-lib: macFUSE - os: [self-hosted, macOS, ARM64] architecture: aarch64 output-suffix: arm64 xcode-path: '/Applications/Xcode_13.2.1.app' + fuse-lib: FUSE-T steps: - uses: actions/checkout@v3 - name: Setup Java @@ -61,7 +63,6 @@ jobs: - name: Patch target dir run: | cp LICENSE.txt target - cp dist/mac/launcher.sh target cp target/cryptomator-*.jar target/mods - name: Run jlink run: > @@ -87,8 +88,10 @@ jobs: --dest appdir --name Cryptomator --vendor "Skymatic GmbH" - --copyright "(C) 2016 - 2022 Skymatic GmbH" + --copyright "(C) 2016 - 2023 Skymatic GmbH" --app-version "${{ needs.get-version.outputs.semVerNum }}" + --java-options "--enable-preview" + --java-options "--enable-native-access=org.cryptomator.jfuse.mac" --java-options "-Xss5m" --java-options "-Xmx256m" --java-options "-Dfile.encoding=\"utf-8\"" @@ -101,6 +104,7 @@ jobs: --java-options "-Dcryptomator.p12Path=\"~/Library/Application Support/Cryptomator/key.p12\"" --java-options "-Dcryptomator.ipcSocketPath=\"~/Library/Application Support/Cryptomator/ipc.socket\"" --java-options "-Dcryptomator.integrationsMac.keychainServiceName=\"Cryptomator\"" + --java-options "-Dcryptomator.mountPointsDir=\"~/Cryptomator\"" --java-options "-Dcryptomator.showTrayIcon=true" --java-options "-Dcryptomator.buildNumber=\"dmg-${{ needs.get-version.outputs.revNum }}\"" --mac-package-identifier org.cryptomator @@ -175,7 +179,7 @@ jobs: run: | mkdir dmg mv Cryptomator.app dmg - cp dist/mac/dmg/resources/macFUSE.webloc dmg + cp dist/mac/dmg/resources/${{ matrix.fuse-lib }}.webloc dmg ls -l dmg - name: Install create-dmg run: | @@ -186,14 +190,14 @@ jobs: create-dmg --volname Cryptomator --volicon "dist/mac/dmg/resources/Cryptomator-Volume.icns" - --background "dist/mac/dmg/resources/Cryptomator-background.tiff" + --background "dist/mac/dmg/resources/Cryptomator-${{ matrix.fuse-lib }}-background.tiff" --window-pos 400 100 --window-size 640 694 --icon-size 128 --icon "Cryptomator.app" 128 245 --hide-extension "Cryptomator.app" - --icon "macFUSE.webloc" 320 501 - --hide-extension "macFUSE.webloc" + --icon "${{ matrix.fuse-lib }}.webloc" 320 501 + --hide-extension "${{ matrix.fuse-lib }}.webloc" --app-drop-link 512 245 --eula "dist/mac/dmg/resources/license.rtf" --icon ".background" 128 758 diff --git a/.github/workflows/post-publish.yml b/.github/workflows/post-publish.yml new file mode 100644 index 000000000..121cfd599 --- /dev/null +++ b/.github/workflows/post-publish.yml @@ -0,0 +1,39 @@ +name: Post Release Publish Tasks + +on: + release: + types: [published] + +jobs: + get-version: + runs-on: ubuntu-latest + steps: + - name: Download source tarball + run: | + curl -L -H "Accept: application/vnd.github+json" ${{ github.event.release.tarball_url }} --output cryptomator-${{ github.event.release.tag_name }}.tar.gz + - name: Sign source tarball with key 615D449FE6E6A235 + run: | + echo "${GPG_PRIVATE_KEY}" | gpg --batch --quiet --import + echo "${GPG_PASSPHRASE}" | gpg --batch --quiet --passphrase-fd 0 --pinentry-mode loopback -u 615D449FE6E6A235 --detach-sign -a cryptomator-*.tar.gz + env: + GPG_PRIVATE_KEY: ${{ secrets.RELEASES_GPG_PRIVATE_KEY }} + GPG_PASSPHRASE: ${{ secrets.RELEASES_GPG_PASSPHRASE }} + - name: Publish asc on GitHub Releases + uses: softprops/action-gh-release@v1 + with: + fail_on_unmatched_files: true + token: ${{ secrets.CRYPTOBOT_RELEASE_TOKEN }} + files: | + cryptomator-*.tar.gz.asc + - name: Slack Notification + uses: rtCamp/action-slack-notify@v2 + env: + SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }} + SLACK_USERNAME: 'Cryptobot' + SLACK_ICON: false + SLACK_ICON_EMOJI: ':bot:' + SLACK_CHANNEL: 'cryptomator-desktop' + SLACK_TITLE: "Release ${{ github.event.repository.name }} ${{ github.event.release.tag_name }} published." + SLACK_MESSAGE: "Ready to ." + SLACK_FOOTER: false + MSG_MINIMAL: true \ No newline at end of file diff --git a/.github/workflows/win-exe.yml b/.github/workflows/win-exe.yml index 1ccf7a560..8e46c8908 100644 --- a/.github/workflows/win-exe.yml +++ b/.github/workflows/win-exe.yml @@ -22,7 +22,7 @@ jobs: get-version: uses: ./.github/workflows/get-version.yml with: - version: ${{ github.event.inputs.version }} + version: ${{ inputs.version }} build-msi: name: Build .msi Installer @@ -55,7 +55,6 @@ jobs: - name: Patch target dir run: | cp LICENSE.txt target - cp dist/linux/launcher.sh target cp target/cryptomator-*.jar target/mods - name: Run jlink run: > @@ -81,8 +80,10 @@ jobs: --dest appdir --name Cryptomator --vendor "Skymatic GmbH" - --copyright "(C) 2016 - 2022 Skymatic GmbH" + --copyright "(C) 2016 - 2023 Skymatic GmbH" --app-version "${{ needs.get-version.outputs.semVerNum }}.${{ needs.get-version.outputs.revNum }}" + --java-options "--enable-preview" + --java-options "--enable-native-access=org.cryptomator.jfuse.win" --java-options "-Xss5m" --java-options "-Xmx256m" --java-options "-Dcryptomator.appVersion=\"${{ needs.get-version.outputs.semVerStr }}\"" @@ -116,6 +117,9 @@ jobs: - name: Fix permissions run: attrib -r appdir/Cryptomator/Cryptomator.exe shell: pwsh + - name: Extract integrations DLL for code signing + shell: pwsh + run: gci ./appdir/Cryptomator/app/mods/ -File integrations-win-*.jar | ForEach-Object {Set-Location -Path $_.Directory; jar --file=$($_.FullName) --extract integrations.dll } - name: Codesign uses: skymatic/code-sign-action@v2 with: @@ -126,6 +130,10 @@ jobs: timestampUrl: 'http://timestamp.digicert.com' folder: appdir/Cryptomator recursive: true + - name: Repack signed DLL into jar + shell: pwsh + run: | + gci ./appdir/Cryptomator/app/mods/ -File integrations-win-*.jar | ForEach-Object {Set-Location -Path $_.Directory; jar --file=$($_.FullName) --update integrations.dll; Remove-Item integrations.dll} - name: Generate license for MSI run: > mvn -B license:add-third-party @@ -147,8 +155,8 @@ jobs: --dest installer --name Cryptomator --vendor "Skymatic GmbH" - --copyright "(C) 2016 - 2022 Skymatic GmbH" - --app-version "${{ needs.get-version.outputs.semVerNum }}" + --copyright "(C) 2016 - 2023 Skymatic GmbH" + --app-version "${{ needs.get-version.outputs.semVerNum }}.${{ needs.get-version.outputs.revNum}}" --win-menu --win-dir-chooser --win-shortcut-prompt @@ -197,7 +205,7 @@ jobs: call-winget-flow: needs: [get-version, build-msi] - if: github.event.action == 'published' && needs.get-version.outputs.type == 'stable' + if: github.event.action == 'published' && needs.get-version.outputs.versionType == 'stable' uses: ./.github/workflows/winget.yml with: releaseTag: ${{ github.event.release.tag_name }} @@ -235,17 +243,18 @@ jobs: shell: pwsh - name: Download WinFsp run: | - $winfspUrl= (Select-String -Path ".\dist\win\bundle\resources\winfsp-download.url" -Pattern 'https:.*').Matches.Value + $winfspUrl = (Select-String -Path ".\dist\win\bundle\resources\winFspMetaData.wxi" -Pattern '<\?define BundledWinFspDownloadLink="(.+)".*?>').Matches.Groups[1].Value curl --output dist/win/bundle/resources/winfsp.msi -L $winfspUrl shell: pwsh - name: Compile to wixObj file run: > "${WIX}/bin/candle.exe" dist/win/bundle/bundleWithWinfsp.wxs -ext WixBalExtension + -ext WixUtilExtension -out dist/win/bundle/ -dBundleVersion="${{ needs.get-version.outputs.semVerNum }}.${{ needs.get-version.outputs.revNum }}" -dBundleVendor="Skymatic GmbH" - -dBundleCopyright="(C) 2016 - 2022 Skymatic GmbH" + -dBundleCopyright="(C) 2016 - 2023 Skymatic GmbH" -dAboutUrl="https://cryptomator.org" -dHelpUrl="https://cryptomator.org/contact" -dUpdateUrl="https://cryptomator.org/downloads/" @@ -253,6 +262,7 @@ jobs: run: > "${WIX}/bin/light.exe" -b dist/win/ dist/win/bundle/bundleWithWinfsp.wixobj -ext WixBalExtension + -ext WixUtilExtension -out installer/unsigned/Cryptomator-Installer.exe - name: Detach burn engine in preparation to sign run: > @@ -316,12 +326,12 @@ jobs: needs: [build-msi, build-exe] steps: - name: Download .msi - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v3 with: name: msi path: msi - name: Download .exe - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v3 with: name: exe path: exe @@ -331,7 +341,7 @@ jobs: cp msi/*.msi files cp exe/*.exe files - name: Upload to Kaspersky - uses: SamKirkland/FTP-Deploy-Action@4.3.0 + uses: SamKirkland/FTP-Deploy-Action@4.3.3 with: protocol: ftps server: allowlist.kaspersky-labs.com diff --git a/.github/workflows/winget.yml b/.github/workflows/winget.yml index 7115a1785..632b02de5 100644 --- a/.github/workflows/winget.yml +++ b/.github/workflows/winget.yml @@ -18,7 +18,7 @@ jobs: name: Publish on winget repo runs-on: windows-latest steps: - - name: Get download url for msi artifacts + - name: Get download url for release assets id: get-release-assets uses: actions/github-script@v6 with: diff --git a/.idea/compiler.xml b/.idea/compiler.xml index 18e7c76e0..1d25cbef3 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -14,10 +14,10 @@