name: CI

on:
    push:
        branches:
            - master
            - docker
        tags-ignore:
            - "**"
    pull_request:
        branches:
            - master
            - docker

jobs:
    build:
        runs-on: ubuntu-latest

        strategy:
            matrix:
                node-version: [17.x]

        steps:
            - uses: actions/checkout@v2
            - name: Use Node.js ${{ matrix.node-version }}
              uses: actions/setup-node@v2
              with:
                  node-version: ${{ matrix.node-version }}

            - name: Get cached node modules
              id: yarn-cache-dir-path
              run: echo "::set-output name=dir::$(yarn cache dir)"
            - uses: actions/cache@v2
              id: yarn-cache
              with:
                  path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
                  key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
                  restore-keys: |
                      ${{ runner.os }}-yarn-

            - name: Install dependencies
              run: yarn install --frozen-lockfile
            - name: Run lint
              run: yarn lint
            - name: Run test
              run: yarn test:cov
            - name: Run build
              run: yarn build

            - name: Coveralls GitHub Action
              uses: coverallsapp/github-action@master
              with:
                  github-token: ${{ secrets.GITHUB_TOKEN }}
