name: Linux Build
on: [push, pull_request]
jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - name: Checkout
      uses: actions/checkout@v1

    - name: Install Node
      uses: actions/setup-node@v1
      with:
        node-version: 15

    - name: Install deps
      run: |
        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

    - name: Build packages
      run: scripts/build-linux.js
      env:
        DEBUG: electron-builder,electron-builder:*
        GH_TOKEN: ${{ secrets.GH_TOKEN }}
        USE_HARD_LINKS: false

    - 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-snap
        mv dist/*.snap artifact-snap/ || true
        mkdir artifact-tar.gz
        mv dist/*.tar.gz artifact-tar.gz/ || 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 Snap
      with:
        name: Linux .snap
        path: artifact-snap

    - uses: actions/upload-artifact@master
      name: Upload tarball
      with:
        name: Linux tarball
        path: artifact-tar.gz
