name: 🚀 Checks
on:
  push:
    branches:
      - master
  pull_request: {}
permissions:
  checks: write
  actions: write
  contents: write

jobs:
  lint:
    name: ⬣ ESLint
    runs-on: ubuntu-latest
    steps:
      - name: 🛑 Cancel Previous Runs
        uses: styfle/cancel-workflow-action@0.9.1

      - name: ⬇️ Checkout repo
        uses: actions/checkout@v3

      - name: ⎔ Setup node
        uses: actions/setup-node@v3
        with:
          node-version: 16

      - name: 📥 Download deps
        run: make install

      - name: 🔬 Lint
        uses: wearerequired/lint-action@v2
        with:
          continue_on_error: false
          eslint: true
          eslint_extensions: js
          prettier: false

  test:
    name: 🧪 Test
    runs-on: ubuntu-latest
    steps:
      - name: 🛑 Cancel Previous Runs
        uses: styfle/cancel-workflow-action@0.9.1

      - name: ⬇️ Checkout repo
        uses: actions/checkout@v3

      - name: 📥 Download deps
        run: make install

      - name: 🔎 Run Test
        run: make test-mocha

  test-e2e:
    name: 🔗 Test e2e
    runs-on: ubuntu-latest
    steps:
      - name: 🛑 Cancel Previous Runs
        uses: styfle/cancel-workflow-action@0.9.1

      - name: ⬇️ Checkout repo
        uses: actions/checkout@v3

      - name: 📥 Download deps
        run: make install

      - name: Run cypress
        run: make test-e2e