Browse Source

separate mac builds

Eugene Pankov 5 years ago
parent
commit
90cc06c3fd
4 changed files with 83 additions and 12 deletions
  1. 64 0
      .github/workflows/macos-zip.yml
  2. 1 11
      .github/workflows/macos.yml
  3. 17 0
      scripts/build-macos-zip.js
  4. 1 1
      scripts/build-macos.js

+ 64 - 0
.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 [email protected]
+        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

+ 1 - 11
.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

+ 17 - 0
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))

+ 1 - 1
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,