name: Build htdocs

on:
  push:
    branches:
      - master
    paths:
      - 'web-src/**'

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Install dependencies
        working-directory: web-src
        run: npm install

      # Build for production with minification (will update web interface
      # in "../htdocs")
      - name: Build htdocs
        working-directory: web-src
        run: npm run build

      - name: Count changed files
        id: count
        run: |
          git add htdocs/
          git diff --numstat --staged > diffstat
          test -s diffstat || { echo "Warning: Push to web-src did not change htdocs"; exit 1; }

      # The GH action email is from https://github.com/orgs/community/discussions/26560
      - name: Commit and push updated assets
        run: |
          git config --global user.name "github-actions[bot]"
          git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
          git commit -m "[web] Rebuild web interface"
          git push