name: Build
on:
  push:
    paths-ignore:
      - '**.md'
  pull_request:
    paths-ignore:
      - '**.md'

jobs:
  build:
    name: build
    runs-on: ubuntu-18.04
    steps:
      - name: Checkout repo
        uses: actions/checkout@v2

      - name: Install pnpm
        run: sudo npm install -g pnpm

      - name: Cache dependencies
        uses: actions/cache@v1
        with:
          path: ~/.pnpm-store
          key: pnpm-store-${{ hashFiles('pnpm-lock.yaml') }}

      - name: Install dependencies
        run: pnpm install

      - name: Build project
        run: pnpm run build

      - name: Run tests
        run: pnpm run test:ci

      - name: Run benchmark
        run: pnpm run benchmark

      - name: Upload code coverage
        uses: codecov/codecov-action@v1
        with:
          token: ${{ secrets.CODECOV_TOKEN }}
