name: CI
on: [push, pull_request]
jobs:
  Tests:
    runs-on: ${{ matrix.os }}
    timeout-minutes: 6
    strategy:
      matrix:
        node-version: [8, 10, 12, 14]
        os: [ubuntu-latest, windows-latest, macOS-latest]
    steps:
    - uses: actions/checkout@v1
    - uses: actions/setup-node@v1
      with:
        node-version: ${{ matrix.node-version }}
    - run: npm install
    - run: npm test
      env:
        CI: true
  Lint:
    runs-on: ubuntu-latest
    timeout-minutes: 2
    steps:
    - uses: actions/checkout@v1
    - uses: actions/setup-node@v1
    - run: 'npm i && npm run lint'
  Unit:
    runs-on: ${{ matrix.os }}
    timeout-minutes: 3
    strategy:
      matrix:
        os: [ubuntu-latest, windows-latest, macOS-latest]
    steps:
    - uses: actions/checkout@v1
    - uses: actions/setup-node@v1
    - run: 'npm i && npm run test:unit'

name: CI
on: [push, pull_request]
jobs:
  Tests:
    runs-on: ${{ matrix.os }}
    timeout-minutes: 6
    strategy:
      matrix:
        node-version: [8, 10, 12, 14]
        os: [ubuntu-latest, windows-latest, macOS-latest]
    steps:
    - uses: actions/checkout@v1
    - uses: actions/setup-node@v1
      with:
        node-version: ${{ matrix.node-version }}
    - run: npm install
    - run: npm test
      env:
        CI: true
  Lint:
    runs-on: ubuntu-latest
    timeout-minutes: 2
    steps:
    - uses: actions/checkout@v1
    - uses: actions/setup-node@v1
    - run: 'npm i && npm run lint'
  Unit:
    runs-on: ${{ matrix.os }}
    timeout-minutes: 5
    strategy:
      matrix:
        os: [ubuntu-latest, windows-latest, macOS-latest]
    steps:
    - uses: actions/checkout@v1
    - uses: actions/setup-node@v1
    - run: 'npm i && npm run test:unit'

Increase timeout for unit tests
Increase timeout for unit tests

Mac build randomly takes between 1 minute + 4 minutes, so this stops it getting cancelled.