name: Build/Release Mainnet desktop app # this will help you specify where to run on: workflow_dispatch env: REACT_APP_FORTMATIC_KEY: ${{ secrets.REACT_APP_FORTMATIC_KEY }} REACT_APP_INFURA_TOKEN: ${{ secrets.REACT_APP_INFURA_TOKEN }} REACT_APP_PORTIS_ID: ${{ secrets.REACT_APP_PORTIS_ID }} REACT_APP_GNOSIS_APPS_URL: ${{ secrets.REACT_APP_GNOSIS_APPS_URL_PROD }} REACT_APP_INTERCOM_ID: ${{ secrets.REACT_APP_INTERCOM_ID }} REACT_APP_IPFS_GATEWAY: ${{ secrets.REACT_APP_IPFS_GATEWAY }} jobs: release: runs-on: ${{ matrix.os }} strategy: fail-fast: false max-parallel: 15 matrix: os: [macos-latest, windows-latest, ubuntu-20.04] steps: - name: Check out Git repository uses: actions/checkout@v2 - uses: actions/cache@v2 with: path: '**/node_modules' key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }} - name: Patch node gyp on windows to support Visual Studio 2019 if: startsWith(matrix.os, 'windows') shell: powershell run: | yarn global add --production windows-build-tools --vs2015 --msvs_version=2015 - name: Install node-gyp if: startsWith(matrix.os, 'windows') shell: powershell run: | yarn global add node-gyp yarn config set node_gyp "$_\node_modules\node-gyp\bin\node-gyp.js" - name: Install Node.js, NPM and Yarn uses: actions/setup-node@v2 with: node-version: 14 - run: | # Due to some dependencies yarn may randomly throw an error about invalid cache # This approach is taken from https://github.com/yarnpkg/yarn/issues/7212#issuecomment-506155894 to fix the issue # Another approach is to install with flag --network-concurrency 1, but this will make the installation pretty slow (default value is 8) mkdir .yarncache yarn install --cache-folder ./.yarncache --frozen-lockfile rm -rf .yarncache yarn cache clean - name: Build/Release Desktop App env: # macOS notarization API key APPLEID: ${{ secrets.APPLE_ID }} APPLEIDPASS: ${{ secrets.APPLE_ID_PASS }} uses: samuelmeuli/action-electron-builder@v1 with: #Build scipt build_script_name: build-desktop # GitHub token, automatically provided to the action # (No need to define this secret in the repo settings) github_token: ${{ secrets.github_token }} # macOS code signing certificate mac_certs: ${{ secrets.MAC_CERTS }} mac_certs_password: ${{ secrets.MAC_CERTS_PASSWORD }} # If the commit is tagged with a version (e.g. "v1.0.0"), # release the app after building release: ${{ startsWith(github.ref, 'refs/tags/v') }} - name: 'Upload Artifacts OSX' if: startsWith(matrix.os, 'macos') uses: actions/upload-artifact@v2 with: name: Desktop OSX path: ./dist/Safe[ ]Multisig*.dmg - name: 'Upload Artifacts Linux' if: startsWith(matrix.os, 'ubuntu') uses: actions/upload-artifact@v2 with: name: Desktop Linux path: ./dist/Safe[ ]Multisig*.AppImage - name: 'Upload Artifacts Windows' if: startsWith(matrix.os, 'windows') uses: actions/upload-artifact@v2 with: name: Desktop Windows path: ./dist/Safe[ ]Multisig*.exe