name: Lint

on:
  push:
    branches: [ master, release* ]
  pull_request:
    branches: [ master, release* ]

jobs:
  run-escheck:
    name: Run es-check
    runs-on: ubuntu-latest

    steps:
      - name: Check out Git repository
        uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3

      - name: Setup node environment
        uses: actions/setup-node@e33196f7422957bea03ed53f6fbb155025ffc7b8 # v3.7.0
        with:
          node-version: 16
          check-latest: true
          cache: npm

      - name: Install Node.js dependencies
        run: npm ci --no-audit

      - name: Run a production build
        run: npm run build:production

      - name: Run es-check
        run: npm run escheck

  run-eslint:
    name: Run eslint
    runs-on: ubuntu-latest

    steps:
      - name: Check out Git repository
        uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3

      - name: Setup node environment
        uses: actions/setup-node@e33196f7422957bea03ed53f6fbb155025ffc7b8 # v3.7.0
        with:
          node-version: 16
          check-latest: true
          cache: npm

      - name: Install Node.js dependencies
        run: npm ci --no-audit

      - name: Run eslint
        run: npm run lint

  run-stylelint-css:
    name: Run stylelint (css)
    runs-on: ubuntu-latest

    steps:
      - name: Check out Git repository
        uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3

      - name: Setup node environment
        uses: actions/setup-node@e33196f7422957bea03ed53f6fbb155025ffc7b8 # v3.7.0
        with:
          node-version: 16
          check-latest: true
          cache: npm

      - name: Set up stylelint matcher
        uses: xt0rted/stylelint-problem-matcher@34db1b874c0452909f0696aedef70b723870a583 # tag=v1

      - name: Install Node.js dependencies
        run: npm ci --no-audit

      - name: Run stylelint
        run: npm run stylelint:css

  run-stylelint-scss:
    name: Run stylelint (scss)
    runs-on: ubuntu-latest

    steps:
      - name: Check out Git repository
        uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3

      - name: Setup node environment
        uses: actions/setup-node@e33196f7422957bea03ed53f6fbb155025ffc7b8 # v3.7.0
        with:
          node-version: 16
          check-latest: true
          cache: npm

      - name: Set up stylelint matcher
        uses: xt0rted/stylelint-problem-matcher@34db1b874c0452909f0696aedef70b723870a583 # tag=v1

      - name: Install Node.js dependencies
        run: npm ci --no-audit

      - name: Run stylelint
        run: npm run stylelint:scss
