name: Build Web

on:
  push:
    branches:
      - master
    paths:
      - '.husky/**'
      - 'webclient/**'
      - '!**.md'
      - '.github/workflows/web-build.yml'
  pull_request:
    paths:
      - '.husky/**'
      - 'webclient/**'
      - '!**.md'
      - '.github/workflows/web-build.yml'

jobs:
  build-web:
    name: React (Node ${{matrix.node_version}})

    runs-on: ubuntu-latest

    defaults:
      run:
        working-directory: webclient

    strategy:
      fail-fast: false
      matrix:
        node_version:
          - 16
          - lts/*

    steps:
      - name: Checkout
        uses: actions/checkout@v5

      - name: Setup Node.js
        uses: actions/setup-node@v6
        with:
          node-version: ${{matrix.node_version}}
          cache: 'npm'
          cache-dependency-path: 'webclient/package-lock.json'

      - name: Install dependencies
        run: npm clean-install

      - name: Build app
        run: npm run build

      - name: Test app
        run: npm run test
