diff --git a/.github/workflows/macos-zip.yml b/.github/workflows/macos-zip.yml new file mode 100644 index 00000000..b5668c19 --- /dev/null +++ b/.github/workflows/macos-zip.yml @@ -0,0 +1,64 @@ +name: macOS Build +on: [push, pull_request] +jobs: + build: + runs-on: macos-latest + + steps: + - name: Checkout + uses: actions/checkout@v1 + + - name: Installing Node + uses: actions/setup-node@v1 + with: + node-version: 10 + + - name: Install deps + run: | + sudo npm i -g yarn@1.19.1 + cd app + yarn + cd .. + rm app/node_modules/.yarn-integrity + yarn + + - name: Build native deps + run: scripts/build-native.js + + - name: Webpack + run: yarn run build + + - name: Prepackage plugins + run: scripts/prepackage-plugins.js + + # Prevent permission corruption caused by electron-builder + # This is the reason there's a separate workflow for the ZIP build + - run: sed -i '' 's/updateInfo = await/\/\/updateInfo = await/g' node_modules/app-builder-lib/out/targets/ArchiveTarget.js + + - name: Build and sign packages + run: scripts/build-macos-zip.js + if: github.repository == 'Eugeny/terminus' && github.event_name == 'push' + env: + #DEBUG: electron-builder,electron-builder:* + GH_TOKEN: ${{ secrets.GH_TOKEN }} + CSC_LINK: ${{ secrets.CSC_LINK }} + CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }} + APPSTORE_USERNAME: ${{ secrets.APPSTORE_USERNAME }} + APPSTORE_PASSWORD: ${{ secrets.APPSTORE_PASSWORD }} + + - name: Build packages without signing + run: scripts/build-macos.js + if: github.repository != 'Eugeny/terminus' || github.event_name != 'push' + env: + DEBUG: electron-builder,electron-builder:* + + - name: Package artifacts + run: | + mkdir artifact-zip + mv dist/*.zip artifact-zip/ + + - uses: actions/upload-artifact@master + name: Upload ZIP + with: + name: macOS .zip + path: artifact-zip diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index fd3c07f4..701dd6cf 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -2,7 +2,7 @@ name: macOS Build on: [push, pull_request] jobs: build: - runs-on: macOS-latest + runs-on: macos-latest steps: - name: Checkout @@ -31,8 +31,6 @@ jobs: - name: Prepackage plugins run: scripts/prepackage-plugins.js - - run: sed -i '' 's/updateInfo = await/\/\/updateInfo = await/g' node_modules/app-builder-lib/out/targets/ArchiveTarget.js - - name: Build and sign packages run: scripts/build-macos.js if: github.repository == 'Eugeny/terminus' && github.event_name == 'push' @@ -54,17 +52,9 @@ jobs: run: | mkdir artifact-pkg mv dist/*.pkg artifact-pkg/ - mkdir artifact-zip - mv dist/*.zip artifact-zip/ - uses: actions/upload-artifact@master name: Upload PKG with: name: macOS .pkg path: artifact-pkg - - - uses: actions/upload-artifact@master - name: Upload ZIP - with: - name: macOS .zip - path: artifact-zip diff --git a/scripts/build-macos-zip.js b/scripts/build-macos-zip.js new file mode 100644 index 00000000..38830932 --- /dev/null +++ b/scripts/build-macos-zip.js @@ -0,0 +1,17 @@ +#!/usr/bin/env node +const builder = require('electron-builder').build +const vars = require('./vars') + +const isTag = (process.env.GITHUB_REF || '').startsWith('refs/tags/') +const isCI = !!process.env.GITHUB_REF + +builder({ + dir: true, + mac: ['zip'], + config: { + extraMetadata: { + version: vars.version, + }, + }, + publish: isTag ? 'always' : 'onTag', +}).catch(() => process.exit(1)) diff --git a/scripts/build-macos.js b/scripts/build-macos.js index ecc08471..c8688889 100755 --- a/scripts/build-macos.js +++ b/scripts/build-macos.js @@ -7,7 +7,7 @@ const isCI = !!process.env.GITHUB_REF builder({ dir: true, - mac: ['pkg', 'zip'], + mac: ['pkg'], config: { extraMetadata: { version: vars.version,