|
|
@@ -0,0 +1,268 @@
|
|
|
+name: Package-Build
|
|
|
+on: [push, pull_request]
|
|
|
+jobs:
|
|
|
+ macOS-Build:
|
|
|
+ runs-on: macos-11.0
|
|
|
+ strategy:
|
|
|
+ matrix:
|
|
|
+ include:
|
|
|
+ - arch: x86_64
|
|
|
+ - arch: arm64
|
|
|
+
|
|
|
+ steps:
|
|
|
+ - name: Checkout
|
|
|
+ uses: actions/[email protected]
|
|
|
+ with:
|
|
|
+ fetch-depth: 0
|
|
|
+
|
|
|
+ - name: Installing Node
|
|
|
+ uses: actions/[email protected]
|
|
|
+ with:
|
|
|
+ node-version: 14
|
|
|
+
|
|
|
+ - 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
|
|
|
+ env:
|
|
|
+ ARCH: ${{matrix.arch}}
|
|
|
+
|
|
|
+ - name: Build native deps
|
|
|
+ run: |
|
|
|
+ rm -rf app/node_modules/cpu-features
|
|
|
+ rm -rf app/node_modules/ssh2/crypto/build
|
|
|
+ if: ${{ matrix.arch == 'arm64' }}
|
|
|
+
|
|
|
+ - name: Webpack
|
|
|
+ run: yarn run build
|
|
|
+
|
|
|
+ - name: Prepackage plugins
|
|
|
+ run: scripts/prepackage-plugins.js
|
|
|
+ env:
|
|
|
+ ARCH: ${{matrix.arch}}
|
|
|
+
|
|
|
+ - 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/tabby' && github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags'))
|
|
|
+ env:
|
|
|
+ ARCH: ${{matrix.arch}}
|
|
|
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
+ CSC_LINK: ${{ secrets.CSC_LINK }}
|
|
|
+ CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }}
|
|
|
+ APPSTORE_USERNAME: ${{ secrets.APPSTORE_USERNAME }}
|
|
|
+ APPSTORE_PASSWORD: ${{ secrets.APPSTORE_PASSWORD }}
|
|
|
+ USE_HARD_LINKS: false
|
|
|
+ # DEBUG: electron-builder,electron-builder:*
|
|
|
+
|
|
|
+ - name: Build packages without signing
|
|
|
+ run: scripts/build-macos.js
|
|
|
+ if: "! (github.repository == 'Eugeny/tabby' && github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags')))"
|
|
|
+ env:
|
|
|
+ ARCH: ${{matrix.arch}}
|
|
|
+ # DEBUG: electron-builder,electron-builder:*
|
|
|
+
|
|
|
+ - name: Upload symbols
|
|
|
+ run: |
|
|
|
+ sudo npm install -g @sentry/cli --unsafe-perm
|
|
|
+ ./scripts/sentry-upload.js
|
|
|
+ env:
|
|
|
+ SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
|
|
|
+ SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
|
|
|
+ SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
|
|
|
+
|
|
|
+ - name: Package artifacts
|
|
|
+ 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 (${{matrix.arch}})
|
|
|
+ path: artifact-pkg
|
|
|
+
|
|
|
+ - uses: actions/upload-artifact@master
|
|
|
+ name: Upload ZIP
|
|
|
+ with:
|
|
|
+ name: macOS .zip (${{matrix.arch}})
|
|
|
+ path: artifact-zip
|
|
|
+
|
|
|
+ Linux-Build:
|
|
|
+ runs-on: ubuntu-18.04
|
|
|
+
|
|
|
+ steps:
|
|
|
+ - name: Checkout
|
|
|
+ uses: actions/[email protected]
|
|
|
+ with:
|
|
|
+ fetch-depth: 0
|
|
|
+
|
|
|
+ - name: Install Node
|
|
|
+ uses: actions/[email protected]
|
|
|
+ with:
|
|
|
+ node-version: 14
|
|
|
+
|
|
|
+ - name: Install deps
|
|
|
+ run: |
|
|
|
+ sudo apt-get update
|
|
|
+ sudo apt-get install bsdtar zsh
|
|
|
+ npm i -g [email protected]
|
|
|
+ cd app
|
|
|
+ yarn
|
|
|
+ cd ..
|
|
|
+ rm app/node_modules/.yarn-integrity
|
|
|
+ yarn
|
|
|
+ npm run patch
|
|
|
+
|
|
|
+ - name: Build native deps
|
|
|
+ run: scripts/build-native.js
|
|
|
+
|
|
|
+ - name: Webpack
|
|
|
+ run: yarn run build
|
|
|
+
|
|
|
+ - name: Prepackage plugins
|
|
|
+ run: scripts/prepackage-plugins.js
|
|
|
+
|
|
|
+ - name: Build packages
|
|
|
+ run: scripts/build-linux.js
|
|
|
+ env:
|
|
|
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
+ USE_HARD_LINKS: false
|
|
|
+ # DEBUG: electron-builder,electron-builder:*
|
|
|
+
|
|
|
+ - name: Build web resources
|
|
|
+ run: zsh -c 'tar czf tabby-web.tar.gz (tabby-*|web)/dist'
|
|
|
+
|
|
|
+ - name: Upload symbols
|
|
|
+ run: |
|
|
|
+ sudo npm install -g @sentry/cli --unsafe-perm
|
|
|
+ ./scripts/sentry-upload.js
|
|
|
+ env:
|
|
|
+ SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
|
|
|
+ SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
|
|
|
+ SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
|
|
|
+
|
|
|
+ - name: Package artifacts
|
|
|
+ run: |
|
|
|
+ mkdir artifact-deb
|
|
|
+ mv dist/*.deb artifact-deb/ || true
|
|
|
+ mkdir artifact-rpm
|
|
|
+ mv dist/*.rpm artifact-rpm/ || true
|
|
|
+ mkdir artifact-pacman
|
|
|
+ mv dist/*.pacman artifact-pacman/ || true
|
|
|
+ mkdir artifact-snap
|
|
|
+ mv dist/*.snap artifact-snap/ || true
|
|
|
+ mkdir artifact-tar.gz
|
|
|
+ mv dist/*.tar.gz artifact-tar.gz/ || true
|
|
|
+ mkdir artifact-web
|
|
|
+ mv tabby-web.tar.gz artifact-web/ || true
|
|
|
+
|
|
|
+ - uses: actions/upload-artifact@master
|
|
|
+ name: Upload DEB
|
|
|
+ with:
|
|
|
+ name: Linux DEB
|
|
|
+ path: artifact-deb
|
|
|
+
|
|
|
+ - uses: actions/upload-artifact@master
|
|
|
+ name: Upload RPM
|
|
|
+ with:
|
|
|
+ name: Linux RPM
|
|
|
+ path: artifact-rpm
|
|
|
+
|
|
|
+ - uses: actions/upload-artifact@master
|
|
|
+ name: Upload Pacman Package
|
|
|
+ with:
|
|
|
+ name: Linux Pacman
|
|
|
+ path: artifact-pacman
|
|
|
+
|
|
|
+ - uses: actions/upload-artifact@master
|
|
|
+ name: Upload Snap
|
|
|
+ with:
|
|
|
+ name: Linux Snap
|
|
|
+ path: artifact-snap
|
|
|
+
|
|
|
+ - uses: actions/upload-artifact@master
|
|
|
+ name: Upload Linux tarball
|
|
|
+ with:
|
|
|
+ name: Linux tarball
|
|
|
+ path: artifact-tar.gz
|
|
|
+
|
|
|
+ - uses: actions/upload-artifact@master
|
|
|
+ name: Upload web tarball
|
|
|
+ with:
|
|
|
+ name: Web tarball
|
|
|
+ path: artifact-web
|
|
|
+
|
|
|
+ Windows-Build:
|
|
|
+ runs-on: windows-2016
|
|
|
+
|
|
|
+ steps:
|
|
|
+ - name: Checkout
|
|
|
+ uses: actions/[email protected]
|
|
|
+ with:
|
|
|
+ fetch-depth: 0
|
|
|
+
|
|
|
+ - name: Installing Node
|
|
|
+ uses: actions/[email protected]
|
|
|
+ with:
|
|
|
+ node-version: 14
|
|
|
+
|
|
|
+ - name: Build
|
|
|
+ shell: powershell
|
|
|
+ run: |
|
|
|
+ npm i -g [email protected]
|
|
|
+ yarn
|
|
|
+ node scripts/build-native.js
|
|
|
+ yarn run build
|
|
|
+ node scripts/prepackage-plugins.js
|
|
|
+
|
|
|
+ - name: Build and sign packages
|
|
|
+ run: node scripts/build-windows.js
|
|
|
+ if: github.repository == 'Eugeny/tabby' && github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags'))
|
|
|
+ env:
|
|
|
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
+ WIN_CSC_LINK: ${{ secrets.WIN_CSC_LINK }}
|
|
|
+ WIN_CSC_KEY_PASSWORD: ${{ secrets.WIN_CSC_KEY_PASSWORD }}
|
|
|
+ # DEBUG: electron-builder,electron-builder:*
|
|
|
+
|
|
|
+ - name: Build packages without signing
|
|
|
+ run: node scripts/build-windows.js
|
|
|
+ if: "!(github.repository == 'Eugeny/tabby' && github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags')))"
|
|
|
+
|
|
|
+ - name: Upload symbols
|
|
|
+ run: |
|
|
|
+ npm install @sentry/cli
|
|
|
+ node scripts/sentry-upload.js
|
|
|
+ env:
|
|
|
+ SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
|
|
|
+ SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
|
|
|
+ SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
|
|
|
+
|
|
|
+ - name: Package artifacts
|
|
|
+ run: |
|
|
|
+ mkdir artifact-setup
|
|
|
+ mv dist/*-setup.exe artifact-setup/
|
|
|
+ mkdir artifact-portable
|
|
|
+ mv dist/*-portable.zip artifact-portable/
|
|
|
+
|
|
|
+ - uses: actions/upload-artifact@master
|
|
|
+ name: Upload installer
|
|
|
+ with:
|
|
|
+ name: Installer
|
|
|
+ path: artifact-setup
|
|
|
+
|
|
|
+ - uses: actions/upload-artifact@master
|
|
|
+ name: Upload portable build
|
|
|
+ with:
|
|
|
+ name: Portable build
|
|
|
+ path: artifact-portable
|