name: Node.js CI

on:
  push:
    branches: [master]
  pull_request:
    branches: [master]

jobs:
  lint:
    name: lint
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: Borales/actions-yarn@v2.3.0
      - run: yarn lint

  build:
    needs: ['lint']
    name: 'build'
    strategy:
      matrix:
        node-version: [12.x]
        os:
          - ubuntu-latest
          - macos-latest
          - windows-latest
    runs-on: ${{ matrix.os }}

    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-node@v2-beta
        with:
          node-version: ${{ matrix.node-version }}

      - name: Build
        run: |
          yarn global add cross-env
          yarn
          yarn build
          node ./build/afterSignHook.js
        env:
          GH_TOKEN: ${{ secrets.GH_TOKEN }}
          NOTARIZATION_USERNAME: ${{ secrets.NOTARIZATION_USERNAME }}
          NOTARIZATION_PASSWORD: ${{ secrets.NOTARIZATION_PASSWORD }}
          WIN_CSC_KEY_PASSWORD: ${{ secrets.WIN_CSC_KEY_PASSWORD }}
          CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }}
          WIN_CSC_LINK: https://s3.amazonaws.com/files.lbry.io/cert/win-csc-2020-2021-08.p12
          CSC_LINK: https://s3.amazonaws.com/files.lbry.io/cert/osx-cert.p12

          # UI
          MATOMO_URL: https://analytics.lbry.com/
          MATOMO_ID: 4
          WELCOME_VERSION: 1.0
          DOMAIN: lbry.tv
          URL: https://lbry.tv
          SITE_TITLE: lbry.tv
          SITE_NAME: lbry.tv
          SHOW_ADS: false
          YRBL_HAPPY_IMG_URL: https://cdn.lbryplayer.xyz/api/v3/streams/free/yrbl-happy/7aa50a7e5adaf48691935d55e45d697547392929/839d9a
          YRBL_SAD_IMG_URL: https://cdn.lbryplayer.xyz/api/v3/streams/free/yrbl-sad/c2d9649633d974e5ffb503925e1f17d951f1bd0f/f262dd
          ENABLE_COMMENT_REACTIONS: true
          DEFAULT_LANGUAGE: en
          KNOWN_APP_DOMAINS: lbry.tv,lbry.lat,odysee.com

      - uses: actions/upload-artifact@v2
        if: startsWith(runner.os, 'linux')
        with:
          name: Linux
          path: ./dist/electron/[LBRY]*.*

      - uses: actions/upload-artifact@v2
        if: startsWith(runner.os, 'mac')
        with:
          name: macOS
          path: ./dist/electron/[LBRY]*.*

      - uses: actions/upload-artifact@v2
        if: startsWith(runner.os, 'windows')
        with:
          name: Windows
          path: ./dist/electron/[LBRY]*.*