diff --git a/.github/workflows/build-desktop-release.yml b/.github/workflows/build-desktop-release.yml index 64b648670cf..805c0b5cd34 100644 --- a/.github/workflows/build-desktop-release.yml +++ b/.github/workflows/build-desktop-release.yml @@ -230,8 +230,81 @@ jobs: name: Logseq-x64.zip path: static/out/make/zip/darwin/x64/logseq-darwin-x64-${{ github.event.inputs.tag-version }}.zip + build-macos-arm64: + needs: [ compile-cljs ] + runs-on: macos-latest + + steps: + # this is only needed temporarily + # wait until macos-11 GA https://github.com/actions/virtual-environments/issues/2486 + # or m1 hardware https://github.com/actions/virtual-environments/issues/2187 + - name: hack osx sdk + run: | + if [ "$(sw_vers -productVersion | cut -d'.' -f1)" = 10 ]; then + pushd /Library/Developer/CommandLineTools/SDKs + sudo rm MacOSX.sdk + sudo ln -s MacOSX11.1.sdk MacOSX.sdk + sudo rm -rf MacOSX10.15.sdk + ls -l + popd + fi + - name: Download The Static Asset + uses: actions/download-artifact@v1 + with: + name: static.zip + path: ./ + + - name: Uncompress Static Files + run: unzip ./static.zip + + - name: List Static Files + run: ls -al ./static + + - name: Install Node.js, NPM and Yarn + uses: actions/setup-node@v2 + with: + node-version: 16 + + - name: Signing By Apple Developer ID + uses: apple-actions/import-codesign-certs@v1 + with: + p12-file-base64: ${{ secrets.APPLE_CERTIFICATES_P12 }} + p12-password: ${{ secrets.APPLE_CERTIFICATES_P12_PASSWORD }} + + - name: Cache Node Modules + uses: actions/cache@v2 + with: + path: | + **/node_modules + key: ${{ runner.os }}-node-modules + + - name: Build/Release Electron App + run: yarn install && yarn electron:make-macos-arm64 + working-directory: ./static + + - name: Change DMG Name + run: mv static/out/make/*.dmg static/out/make/logseq-darwin-arm64-${{ github.event.inputs.tag-version }}.dmg + + - name: Cache Artifact DMG + uses: actions/upload-artifact@v1 + with: + name: Logseq-arm64.dmg + path: static/out/make/logseq-darwin-arm64-${{ github.event.inputs.tag-version }}.dmg + + - name: ls files + run: du -a static/out/ + + - name: Change zip Name + run: mv static/out/make/zip/darwin/arm64/*.zip static/out/make/zip/darwin/arm64/logseq-darwin-arm64-${{ github.event.inputs.tag-version }}.zip + + - name: Cache Artifact ZIP + uses: actions/upload-artifact@v1 + with: + name: Logseq-arm64.zip + path: static/out/make/zip/darwin/arm64/logseq-darwin-arm64-${{ github.event.inputs.tag-version }}.zip + release: - needs: [ build-macos, build-linux, build-windows ] + needs: [ build-macos, build-linux, build-windows, build-macos-arm64 ] runs-on: ubuntu-18.04 steps: @@ -247,6 +320,18 @@ jobs: name: Logseq-x64.zip path: ./ + - name: Download The MacOS ARM64 DMG Artifact + uses: actions/download-artifact@v1 + with: + name: Logseq-arm64.dmg + path: ./ + + - name: Download The MacOS ARM64 ZIP Artifact + uses: actions/download-artifact@v1 + with: + name: Logseq-arm64.zip + path: ./ + - name: Download The Linux Artifact In Zip format uses: actions/download-artifact@v1 with: @@ -301,6 +386,28 @@ jobs: asset_name: logseq-darwin-x64-${{ github.event.inputs.tag-version }}.dmg asset_content_type: application/x-apple-diskimage + - name: Upload MacOS ARM64 ZIP Artifact + id: upload-macos-arm64-zip-artifact + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: ./logseq-darwin-arm64-${{ github.event.inputs.tag-version }}.zip + asset_name: logseq-darwin-arm64-${{ github.event.inputs.tag-version }}.zip + asset_content_type: application/zip + + - name: Upload MacOS ARM64 DMG Artifact + id: upload-macos-arm64-dmg-artifact + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: ./logseq-darwin-arm64-${{ github.event.inputs.tag-version }}.dmg + asset_name: logseq-darwin-arm64-${{ github.event.inputs.tag-version }}.dmg + asset_content_type: application/x-apple-diskimage + - name: Upload Linux Artifact With Zip format id: upload-linux-artifact-with-zip-format uses: actions/upload-release-asset@v1 diff --git a/resources/package.json b/resources/package.json index 300e437aa33..df2db713887 100644 --- a/resources/package.json +++ b/resources/package.json @@ -9,6 +9,7 @@ "electron:dev": "electron-forge start", "electron:debug": "electron-forge start --inspect-electron", "electron:make": "electron-forge make", + "electron:make-macos-arm64": "electron-forge make --platform=darwin --arch=arm64", "electron:publish:github": "electron-forge publish", "rebuild:better-sqlite3": "electron-rebuild -v 13 -f -w better-sqlite3", "postinstall": "install-app-deps"