name: tests

on:
  push:
    branches:
      - "master"
  pull_request:
    types: [opened, synchronize, reopened]

jobs:
  format:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - uses: actions/setup-node@v1
      with:
        node-version: '14.x'
    - run: npm install -g yarn
    - run: yarn install
    - run: yarn fmt:report

  type-check:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - uses: actions/setup-node@v1
      with:
        node-version: '14.x'
    - run: npm install -g yarn
    - run: yarn install
    - run: yarn flow

  lint:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - uses: actions/setup-node@v1
      with:
        node-version: '14.x'
    - run: npm install -g yarn
    - run: yarn install
    - run: yarn lint:report

  unit-test:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - uses: actions/setup-node@v1
      with:
        node-version: '14.x'
    - run: npm install -g yarn
    - run: yarn install
    - run: yarn jest
