name: Code Review
on:
  pull_request:
    branches:
      - master
jobs:
  build:
    name: Build, Lint, and Test
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v2
      - name: Setup Node.js v15
        uses: actions/setup-node@v1
        with:
          node-version: 15
      - name: Install dependencies
        run: yarn install --frozen-lockfile
      - name: Lint code
        run: yarn lint
      - name: Run tests
        run: yarn test
      - name: Build storybook
        run: yarn build
  coverage:
    name: Coverage
    if: "!contains(github.event.head_commit.message, 'skip ci')"
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v2
      - name: Setup Node.js v15
        uses: actions/setup-node@v1
        with:
          node-version: 15
      - name: Install dependencies
        run: yarn install --frozen-lockfile
      - name: Run coverage tests
        run: yarn test:coverage
      - name: Upload coverage
        uses: codecov/codecov-action@v1
  visual:
    name: Vistual testing
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v2
        with:
          fetch-depth: 0
      - name: Setup Node.js v15
        uses: actions/setup-node@v1
        with:
          node-version: 15
      - name: Install dependencies
        run: yarn install --frozen-lockfile
      - name: Build storybook
        run: yarn build
      - name: Publish in Chromatic
        uses: chromaui/action@v1
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          projectToken: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}
          storybookBuildDir: 'storybook-static'
