name: Test
on:
  push:
    branches:
      - master
      - '!gh-pages'
  pull_request:
    branches:
      - master

jobs:

  lint:
    name: Lint+Test
    runs-on: ubuntu-latest
    if: "!contains(github.event.head_commit.message, 'skip-ci')"

    steps:

    - name: Checkout
      uses: actions/checkout@v1

    - name: Cache
      uses: actions/cache@v1
      with:
        path: ~/.npm # npm cache files are stored in `~/.npm` on Linux/macOS
        key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
        restore-keys: |
          ${{ runner.os }}-build-${{ env.cache-name }}-
          ${{ runner.os }}-build-
          ${{ runner.os }}-

    - name: Setup
      uses: actions/setup-node@v1
      with:
        node-version: 12

    - name: Install
      run: npm install

    - name: Lint
      run: npm run lint

    - name: Build
      run: npm run build

    - name: Build Browser
      run: npm run browser:build

    - name: Test Setup
      run: mkdir -p test-results

    - name: Test Node
      run: npm run test:node

    - name: Test Browser
      run: npm run test:browser

    - name: Results
      uses: actions/upload-artifact@v1
      with:
        name: Results
        path: test-results

