diff --git a/.github/workflows/jan-electron-build-beta.yml b/.github/workflows/jan-electron-build-beta.yml index 67496b3553..b29038b558 100644 --- a/.github/workflows/jan-electron-build-beta.yml +++ b/.github/workflows/jan-electron-build-beta.yml @@ -34,18 +34,8 @@ jobs: prerelease: false generate_release_notes: true - build-macos-x64: - uses: ./.github/workflows/template-build-macos-x64.yml - secrets: inherit - needs: [get-update-version] - with: - ref: ${{ github.ref }} - public_provider: github - new_version: ${{ needs.get-update-version.outputs.new_version }} - beta: true - - build-macos-arm64: - uses: ./.github/workflows/template-build-macos-arm64.yml + build-macos: + uses: ./.github/workflows/template-build-macos.yml secrets: inherit needs: [get-update-version] with: @@ -74,53 +64,14 @@ jobs: new_version: ${{ needs.get-update-version.outputs.new_version }} beta: true - combine-beta-mac-yml: - needs: [build-macos-x64, build-macos-arm64, create-draft-release, build-windows-x64, build-linux-x64] + sync-temp-to-latest: + needs: [build-macos, create-draft-release, build-windows-x64, build-linux-x64] runs-on: ubuntu-latest permissions: contents: write steps: - - name: Getting the repo - uses: actions/checkout@v3 - - - name: Download mac-x64 artifacts - uses: actions/download-artifact@v4 - with: - name: beta-mac-x64 - path: ./beta-mac-x64 - - name: Download mac-arm artifacts - uses: actions/download-artifact@v4 - with: - name: beta-mac-arm64 - path: ./beta-mac-arm64 - - - name: 'Merge beta-mac.yml' - # unfortunately electron-builder doesn't understand that we have two different releases for mac-x64 and mac-arm, so we need to manually merge the latest files - # see https://github.com/electron-userland/electron-builder/issues/5592 - run: | - ls -la . - ls -la ./beta-mac-x64 - ls -la ./beta-mac-arm64 - ls -la ./electron - cp ./electron/merge-latest-ymls.js /tmp/merge-beta-ymls.js - npm install js-yaml --prefix /tmp - node /tmp/merge-beta-ymls.js ./beta-mac-x64/beta-mac.yml ./beta-mac-arm64/beta-mac.yml ./beta-mac.yml - cat ./beta-mac.yml - - - name: Yet Another Upload Release Asset Action - uses: shogo82148/actions-upload-release-asset@v1.7.2 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ needs.create-draft-release.outputs.upload_url }} - asset_path: ./beta-mac.yml - asset_name: beta-mac.yml - asset_content_type: text/yaml - overwrite: true - - - name: Upload beta-mac.yml + - name: Sync temp to latest run: | - aws s3 cp ./beta-mac.yml "s3://${{ secrets.DELTA_AWS_S3_BUCKET_NAME }}/temp-beta/beta-mac.yml" # sync temp-beta to beta by copy files that are different or new aws s3 sync "s3://${{ secrets.DELTA_AWS_S3_BUCKET_NAME }}/temp-beta/" "s3://${{ secrets.DELTA_AWS_S3_BUCKET_NAME }}/beta/" env: @@ -136,7 +87,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} noti-discord-and-update-url-readme: - needs: [build-macos-x64, build-macos-arm64, create-draft-release, build-windows-x64, build-linux-x64, combine-beta-mac-yml] + needs: [build-macos, create-draft-release, build-windows-x64, build-linux-x64, sync-temp-to-latest] runs-on: ubuntu-latest steps: - name: Set version to environment variable @@ -149,8 +100,7 @@ jobs: args: | Jan-beta App version {{ VERSION }}, has been released, use the following links to download the app with faster speed or visit the Github release page for more information: - Windows: https://delta.jan.ai/beta/jan-beta-win-x64-{{ VERSION }}.exe - - macOS Intel: https://delta.jan.ai/beta/jan-beta-mac-x64-{{ VERSION }}.dmg - - macOS Apple Silicon: https://delta.jan.ai/beta/jan-beta-mac-arm64-{{ VERSION }}.dmg + - macOS Universal: https://delta.jan.ai/beta/jan-beta-mac-universal-{{ VERSION }}.dmg - Linux Deb: https://delta.jan.ai/beta/jan-beta-linux-amd64-{{ VERSION }}.deb - Linux AppImage: https://delta.jan.ai/beta/jan-beta-linux-x86_64-{{ VERSION }}.AppImage - Github Release URL: https://github.com/janhq/jan/releases/tag/v{{ VERSION }} diff --git a/.github/workflows/jan-electron-build-nightly.yml b/.github/workflows/jan-electron-build-nightly.yml index 73dc6524b0..60720052c8 100644 --- a/.github/workflows/jan-electron-build-nightly.yml +++ b/.github/workflows/jan-electron-build-nightly.yml @@ -42,17 +42,8 @@ jobs: get-update-version: uses: ./.github/workflows/template-get-update-version.yml - build-macos-x64: - uses: ./.github/workflows/template-build-macos-x64.yml - needs: [get-update-version, set-public-provider] - secrets: inherit - with: - ref: ${{ needs.set-public-provider.outputs.ref }} - public_provider: ${{ needs.set-public-provider.outputs.public_provider }} - new_version: ${{ needs.get-update-version.outputs.new_version }} - - build-macos-arm64: - uses: ./.github/workflows/template-build-macos-arm64.yml + build-macos: + uses: ./.github/workflows/template-build-macos.yml needs: [get-update-version, set-public-provider] secrets: inherit with: @@ -79,42 +70,13 @@ jobs: public_provider: ${{ needs.set-public-provider.outputs.public_provider }} new_version: ${{ needs.get-update-version.outputs.new_version }} - combine-latest-mac-yml: - needs: [set-public-provider, build-macos-x64, build-macos-arm64, build-windows-x64, build-linux-x64] + sync-temp-to-latest: + needs: [set-public-provider, build-windows-x64, build-linux-x64, build-macos] runs-on: ubuntu-latest steps: - - name: Getting the repo - uses: actions/checkout@v3 - with: - ref: ${{ needs.set-public-provider.outputs.ref }} - - name: Download mac-x64 artifacts - uses: actions/download-artifact@v4 - with: - name: latest-mac-x64 - path: ./latest-mac-x64 - - name: Download mac-arm artifacts - uses: actions/download-artifact@v4 - with: - name: latest-mac-arm64 - path: ./latest-mac-arm64 - - - name: 'Merge latest-mac.yml' - # unfortunately electron-builder doesn't understand that we have two different releases for mac-x64 and mac-arm, so we need to manually merge the latest files - # see https://github.com/electron-userland/electron-builder/issues/5592 - run: | - ls -la . - ls -la ./latest-mac-x64 - ls -la ./latest-mac-arm64 - ls -la ./electron - cp ./electron/merge-latest-ymls.js /tmp/merge-latest-ymls.js - npm install js-yaml --prefix /tmp - node /tmp/merge-latest-ymls.js ./latest-mac-x64/latest-mac.yml ./latest-mac-arm64/latest-mac.yml ./latest-mac.yml - cat ./latest-mac.yml - - - name: Upload latest-mac.yml + - name: Sync temp to latest if: ${{ needs.set-public-provider.outputs.public_provider == 'aws-s3' }} run: | - aws s3 cp ./latest-mac.yml "s3://${{ secrets.DELTA_AWS_S3_BUCKET_NAME }}/temp-nightly/latest-mac.yml" aws s3 sync s3://${{ secrets.DELTA_AWS_S3_BUCKET_NAME }}/temp-nightly/ s3://${{ secrets.DELTA_AWS_S3_BUCKET_NAME }}/nightly/ env: AWS_ACCESS_KEY_ID: ${{ secrets.DELTA_AWS_ACCESS_KEY_ID }} @@ -123,7 +85,7 @@ jobs: AWS_EC2_METADATA_DISABLED: "true" noti-discord-nightly-and-update-url-readme: - needs: [build-macos-x64, build-macos-arm64, build-windows-x64, build-linux-x64, get-update-version, set-public-provider, combine-latest-mac-yml] + needs: [build-macos, build-windows-x64, build-linux-x64, get-update-version, set-public-provider, sync-temp-to-latest] secrets: inherit if: github.event_name == 'schedule' uses: ./.github/workflows/template-noti-discord-and-update-url-readme.yml @@ -134,7 +96,7 @@ jobs: new_version: ${{ needs.get-update-version.outputs.new_version }} noti-discord-pre-release-and-update-url-readme: - needs: [build-macos-x64, build-macos-arm64, build-windows-x64, build-linux-x64, get-update-version, set-public-provider, combine-latest-mac-yml] + needs: [build-macos, build-windows-x64, build-linux-x64, get-update-version, set-public-provider, sync-temp-to-latest] secrets: inherit if: github.event_name == 'push' uses: ./.github/workflows/template-noti-discord-and-update-url-readme.yml @@ -145,7 +107,7 @@ jobs: new_version: ${{ needs.get-update-version.outputs.new_version }} noti-discord-manual-and-update-url-readme: - needs: [build-macos-x64, build-macos-arm64, build-windows-x64, build-linux-x64, get-update-version, set-public-provider, combine-latest-mac-yml] + needs: [build-macos, build-windows-x64, build-linux-x64, get-update-version, set-public-provider, sync-temp-to-latest] secrets: inherit if: github.event_name == 'workflow_dispatch' && github.event.inputs.public_provider == 'aws-s3' uses: ./.github/workflows/template-noti-discord-and-update-url-readme.yml diff --git a/.github/workflows/jan-electron-build.yml b/.github/workflows/jan-electron-build.yml index 095c0ed200..3ca4a1fe28 100644 --- a/.github/workflows/jan-electron-build.yml +++ b/.github/workflows/jan-electron-build.yml @@ -33,17 +33,8 @@ jobs: draft: true prerelease: false - build-macos-x64: - uses: ./.github/workflows/template-build-macos-x64.yml - secrets: inherit - needs: [get-update-version] - with: - ref: ${{ github.ref }} - public_provider: github - new_version: ${{ needs.get-update-version.outputs.new_version }} - - build-macos-arm64: - uses: ./.github/workflows/template-build-macos-arm64.yml + build-macos: + uses: ./.github/workflows/template-build-macos.yml secrets: inherit needs: [get-update-version] with: @@ -69,52 +60,8 @@ jobs: public_provider: github new_version: ${{ needs.get-update-version.outputs.new_version }} - combine-latest-mac-yml: - needs: [build-macos-x64, build-macos-arm64, create-draft-release] - runs-on: ubuntu-latest - permissions: - contents: write - steps: - - name: Getting the repo - uses: actions/checkout@v3 - - - name: Download mac-x64 artifacts - uses: actions/download-artifact@v4 - with: - name: latest-mac-x64 - path: ./latest-mac-x64 - - name: Download mac-arm artifacts - uses: actions/download-artifact@v4 - with: - name: latest-mac-arm64 - path: ./latest-mac-arm64 - - - name: 'Merge latest-mac.yml' - # unfortunately electron-builder doesn't understand that we have two different releases for mac-x64 and mac-arm, so we need to manually merge the latest files - # see https://github.com/electron-userland/electron-builder/issues/5592 - run: | - ls -la . - ls -la ./latest-mac-x64 - ls -la ./latest-mac-arm64 - ls -la ./electron - cp ./electron/merge-latest-ymls.js /tmp/merge-latest-ymls.js - npm install js-yaml --prefix /tmp - node /tmp/merge-latest-ymls.js ./latest-mac-x64/latest-mac.yml ./latest-mac-arm64/latest-mac.yml ./latest-mac.yml - cat ./latest-mac.yml - - - name: Yet Another Upload Release Asset Action - uses: shogo82148/actions-upload-release-asset@v1.7.2 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ needs.create-draft-release.outputs.upload_url }} - asset_path: ./latest-mac.yml - asset_name: latest-mac.yml - asset_content_type: text/yaml - overwrite: true - update_release_draft: - needs: [build-macos-x64, build-macos-arm64, build-windows-x64, build-linux-x64, combine-latest-mac-yml] + needs: [build-macos, build-windows-x64, build-linux-x64] permissions: # write permission is required to create a github release contents: write diff --git a/.github/workflows/template-build-macos-x64.yml b/.github/workflows/template-build-macos-x64.yml deleted file mode 100644 index 7781eb6301..0000000000 --- a/.github/workflows/template-build-macos-x64.yml +++ /dev/null @@ -1,210 +0,0 @@ -name: build-macos -on: - workflow_call: - inputs: - ref: - required: true - type: string - default: 'refs/heads/main' - public_provider: - required: true - type: string - default: none - description: 'none: build only, github: build and publish to github, aws s3: build and publish to aws s3' - new_version: - required: true - type: string - default: '' - aws_s3_prefix: - required: false - type: string - default: '/latest/' - beta: - required: false - type: boolean - default: false - secrets: - DELTA_AWS_S3_BUCKET_NAME: - required: false - DELTA_AWS_ACCESS_KEY_ID: - required: false - DELTA_AWS_SECRET_ACCESS_KEY: - required: false - CODE_SIGN_P12_BASE64: - required: false - CODE_SIGN_P12_PASSWORD: - required: false - APPLE_ID: - required: false - APPLE_APP_SPECIFIC_PASSWORD: - required: false - DEVELOPER_ID: - required: false - -jobs: - build-macos: - runs-on: macos-13 - environment: production - permissions: - contents: write - steps: - - name: Getting the repo - uses: actions/checkout@v3 - with: - ref: ${{ inputs.ref }} - - - name: Installing node - uses: actions/setup-node@v1 - with: - node-version: 20 - - - name: Install jq - uses: dcarbone/install-jq-action@v2.0.1 - - - name: Update app version based on latest release tag with build number - if: inputs.public_provider != 'github' - run: | - echo "Version: ${{ inputs.new_version }}" - # Update the version in electron/package.json - jq --arg version "${{ inputs.new_version }}" '.version = $version' electron/package.json > /tmp/package.json - mv /tmp/package.json electron/package.json - - jq --arg version "${{ inputs.new_version }}" '.version = $version' web/package.json > /tmp/package.json - mv /tmp/package.json web/package.json - - jq '.build.publish = [{"provider": "generic", "url": "https://delta.jan.ai/nightly", "channel": "latest"}, {"provider": "s3", "acl": null, "bucket": "${{ secrets.DELTA_AWS_S3_BUCKET_NAME }}", "region": "${{ secrets.DELTA_AWS_REGION}}", "path": "temp-nightly", "channel": "latest"}]' electron/package.json > /tmp/package.json - mv /tmp/package.json electron/package.json - - jq --arg teamid "${{ secrets.APPLE_TEAM_ID }}" '.build.mac.notarize.teamId = $teamid' electron/package.json > /tmp/package.json - mv /tmp/package.json electron/package.json - - cat electron/package.json - chmod +x .github/scripts/rename-app.sh - .github/scripts/rename-app.sh ./electron/package.json nightly - chmod +x .github/scripts/rename-workspace.sh - .github/scripts/rename-workspace.sh ./package.json nightly - echo "------------------------" - cat ./electron/package.json - echo "------------------------" - - - name: Change App Name for beta version - if: inputs.beta == true - shell: bash - run: | - chmod +x .github/scripts/rename-app.sh - .github/scripts/rename-app.sh ./electron/package.json beta - chmod +x .github/scripts/rename-workspace.sh - .github/scripts/rename-workspace.sh ./package.json beta - echo "------------------------" - cat ./electron/package.json - echo "------------------------" - cat ./package.json - jq '.build.publish = [{"provider": "generic", "url": "https://delta.jan.ai/beta", "channel": "beta"}, {"provider": "github", "owner": "janhq", "repo": "jan", "channel": "beta"}, {"provider": "s3", "acl": null, "bucket": "${{ secrets.DELTA_AWS_S3_BUCKET_NAME }}", "region": "${{ secrets.DELTA_AWS_REGION}}", "path": "temp-beta", "channel": "beta"}]' electron/package.json > /tmp/package.json - mv /tmp/package.json electron/package.json - cat electron/package.json - - - name: Update app version base on tag - if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') && inputs.public_provider == 'github' - run: | - jq --arg version "${VERSION_TAG#v}" '.version = $version' electron/package.json > /tmp/package.json - mv /tmp/package.json electron/package.json - jq --arg version "${VERSION_TAG#v}" '.version = $version' web/package.json > /tmp/package.json - mv /tmp/package.json web/package.json - jq --arg teamid "${{ secrets.APPLE_TEAM_ID }}" '.build.mac.notarize.teamId = $teamid' electron/package.json > /tmp/package.json - mv /tmp/package.json electron/package.json - cat electron/package.json - env: - VERSION_TAG: ${{ inputs.new_version }} - - - name: Get Cer for code signing - run: base64 -d <<< "$CODE_SIGN_P12_BASE64" > /tmp/codesign.p12 - shell: bash - env: - CODE_SIGN_P12_BASE64: ${{ secrets.CODE_SIGN_P12_BASE64 }} - - - uses: apple-actions/import-codesign-certs@v2 - continue-on-error: true - with: - p12-file-base64: ${{ secrets.CODE_SIGN_P12_BASE64 }} - p12-password: ${{ secrets.CODE_SIGN_P12_PASSWORD }} - - - name: Build and publish app to aws s3 r2 or github artifactory - if: inputs.public_provider != 'github' - run: | - # check public_provider is true or not - echo "public_provider is ${{ inputs.public_provider }}" - if [ "${{ inputs.public_provider }}" == "none" ]; then - make build - else - make build-and-publish - fi - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - CSC_LINK: "/tmp/codesign.p12" - CSC_KEY_PASSWORD: ${{ secrets.CODE_SIGN_P12_PASSWORD }} - CSC_IDENTITY_AUTO_DISCOVERY: "true" - APPLE_ID: ${{ secrets.APPLE_ID }} - APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }} - APP_PATH: "." - DEVELOPER_ID: ${{ secrets.DEVELOPER_ID }} - AWS_ACCESS_KEY_ID: ${{ secrets.DELTA_AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.DELTA_AWS_SECRET_ACCESS_KEY }} - AWS_DEFAULT_REGION: auto - AWS_EC2_METADATA_DISABLED: "true" - AWS_MAX_ATTEMPTS: "5" - - - name: Build and publish app to github - if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') && inputs.public_provider == 'github' && inputs.beta == false - run: | - make build-and-publish - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - CSC_LINK: "/tmp/codesign.p12" - CSC_KEY_PASSWORD: ${{ secrets.CODE_SIGN_P12_PASSWORD }} - CSC_IDENTITY_AUTO_DISCOVERY: "true" - APPLE_ID: ${{ secrets.APPLE_ID }} - APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }} - APP_PATH: "." - DEVELOPER_ID: ${{ secrets.DEVELOPER_ID }} - ANALYTICS_ID: ${{ secrets.JAN_APP_UMAMI_PROJECT_API_KEY }} - ANALYTICS_HOST: ${{ secrets.JAN_APP_UMAMI_URL }} - - - name: Build and publish app to github - if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') && inputs.public_provider == 'github' && inputs.beta == true - run: | - make build-and-publish - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - CSC_LINK: "/tmp/codesign.p12" - CSC_KEY_PASSWORD: ${{ secrets.CODE_SIGN_P12_PASSWORD }} - CSC_IDENTITY_AUTO_DISCOVERY: "true" - APPLE_ID: ${{ secrets.APPLE_ID }} - APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }} - APP_PATH: "." - DEVELOPER_ID: ${{ secrets.DEVELOPER_ID }} - AWS_ACCESS_KEY_ID: ${{ secrets.DELTA_AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.DELTA_AWS_SECRET_ACCESS_KEY }} - AWS_DEFAULT_REGION: auto - AWS_EC2_METADATA_DISABLED: "true" - AWS_MAX_ATTEMPTS: "5" - - - name: Upload Artifact - if: inputs.public_provider != 'github' - uses: actions/upload-artifact@v4 - with: - name: jan-mac-x64-${{ inputs.new_version }} - path: ./electron/dist/*.dmg - - - name: Upload Artifact - if: inputs.beta == false - uses: actions/upload-artifact@v4 - with: - name: latest-mac-x64 - path: ./electron/dist/latest-mac.yml - - - name: Upload Artifact - if: inputs.beta == true - uses: actions/upload-artifact@v4 - with: - name: beta-mac-x64 - path: ./electron/dist/beta-mac.yml \ No newline at end of file diff --git a/.github/workflows/template-build-macos-arm64.yml b/.github/workflows/template-build-macos.yml similarity index 94% rename from .github/workflows/template-build-macos-arm64.yml rename to .github/workflows/template-build-macos.yml index e618afb533..256bd8c5a6 100644 --- a/.github/workflows/template-build-macos-arm64.yml +++ b/.github/workflows/template-build-macos.yml @@ -192,19 +192,5 @@ jobs: if: inputs.public_provider != 'github' uses: actions/upload-artifact@v4 with: - name: jan-mac-arm64-${{ inputs.new_version }} + name: jan-mac-universal-${{ inputs.new_version }} path: ./electron/dist/*.dmg - - - name: Upload Artifact - if: inputs.beta == false - uses: actions/upload-artifact@v4 - with: - name: latest-mac-arm64 - path: ./electron/dist/latest-mac.yml - - - name: Upload Artifact - if: inputs.beta == true - uses: actions/upload-artifact@v4 - with: - name: beta-mac-arm64 - path: ./electron/dist/beta-mac.yml \ No newline at end of file diff --git a/.github/workflows/template-noti-discord-and-update-url-readme.yml b/.github/workflows/template-noti-discord-and-update-url-readme.yml index d799dacfac..59ad3c7be4 100644 --- a/.github/workflows/template-noti-discord-and-update-url-readme.yml +++ b/.github/workflows/template-noti-discord-and-update-url-readme.yml @@ -48,8 +48,7 @@ jobs: args: | Jan App ${{ inputs.build_reason }} build artifact version {{ VERSION }}: - Windows: https://delta.jan.ai/nightly/jan-nightly-win-x64-{{ VERSION }}.exe - - macOS Intel: https://delta.jan.ai/nightly/jan-nightly-mac-x64-{{ VERSION }}.dmg - - macOS Apple Silicon: https://delta.jan.ai/nightly/jan-nightly-mac-arm64-{{ VERSION }}.dmg + - macOS Universal: https://delta.jan.ai/nightly/jan-nightly-mac-universal-{{ VERSION }}.dmg - Linux Deb: https://delta.jan.ai/nightly/jan-nightly-linux-amd64-{{ VERSION }}.deb - Linux AppImage: https://delta.jan.ai/nightly/jan-nightly-linux-x86_64-{{ VERSION }}.AppImage - Github action run: https://github.com/janhq/jan/actions/runs/{{ GITHUB_RUN_ID }} diff --git a/electron/package.json b/electron/package.json index 662a912f03..c4609e7af1 100644 --- a/electron/package.json +++ b/electron/package.json @@ -89,11 +89,11 @@ "build:test:darwin": "tsc -p . && electron-builder -p never -m --dir", "build:test:win32": "tsc -p . && electron-builder -p never -w --dir", "build:test:linux": "tsc -p . && electron-builder -p never -l --dir", - "build:darwin": "tsc -p . && electron-builder -p never -m", + "build:darwin": "tsc -p . && electron-builder -p never -m --universal", "build:win32": "tsc -p . && electron-builder -p never -w", "build:linux": "tsc -p . && electron-builder -p never -l deb -l AppImage", "build:publish": "yarn copy:assets && run-script-os", - "build:publish:darwin": "tsc -p . && electron-builder -p always -m", + "build:publish:darwin": "tsc -p . && electron-builder -p always -m --universal", "build:publish:win32": "tsc -p . && electron-builder -p always -w", "build:publish:linux": "tsc -p . && electron-builder -p always -l deb -l AppImage" },