name: CI

on:
  push:
    paths:
      - '*.json'
      - '.github/**'
      - 'test/**'
      - 'src/**'
    branches:
      - '**'
    tags-ignore:
      - '**'
  pull_request:
    paths:
      - '*.json'
      - '.github/**'
      - 'test/**'
      - 'src/**'
    branches:
      - master

jobs:
  test:
    name: Node.js v${{ matrix.nodejs }}
    runs-on: ubuntu-latest
    strategy:
      matrix:
        nodejs: [8, 10, 12]
    steps:
    - uses: actions/checkout@v2
    - uses: actions/setup-node@v1
      with:
        node-version: ${{ matrix.nodejs }}

    - name: Install
      run: |
        npm install
        npm install -g nyc

    - name: Test w/ Coverage
      run: nyc --include=src npm test

    - name: Report
      if: matrix.nodejs >= 12
      run: |
        nyc report --reporter=text-lcov > coverage.lcov
        bash <(curl -s https://codecov.io/bash)
      env:
        CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
