name: CI - WebUI

on: [pull_request, push]

permissions:
  security-events: write

concurrency:
  group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
  cancel-in-progress: ${{ github.head_ref != '' }}

jobs:
  ci:
    name: Check
    runs-on: ubuntu-latest

    defaults:
      run:
        working-directory: src/webui/www

    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Setup nodejs
        uses: actions/setup-node@v4
        with:
          node-version: 'lts/*'

      - name: Install tools
        run: npm install

      - name: Lint code
        run: npm run lint

      - name: Format code
        run: |
          npm run format
          git diff --exit-code

      - name: Initialize CodeQL
        uses: github/codeql-action/init@v3
        with:
          config-file: ./.github/workflows/helper/codeql/js.yaml
          languages: javascript

      - name: Run CodeQL analysis
        uses: github/codeql-action/analyze@v3
