name: Hardware Metadata Validation

on:
  push:
    paths:
      - ".github/workflows/hardware-metadata-validation.yml"
      - "schema/hardware-metadata.schema.json"
      - "app/boards/**/*.zmk.yml"
      - "app/scripts/west_commands/metadata.py"
  pull_request:
    paths:
      - ".github/workflows/hardware-metadata-validation.yml"
      - "schema/hardware-metadata.schema.json"
      - "app/boards/**/*.zmk.yml"
      - "app/scripts/west_commands/metadata.py"

jobs:
  validate-metadata:
    runs-on: ubuntu-latest
    container:
      image: docker.io/zmkfirmware/zmk-dev-arm:3.5
    steps:
      - uses: actions/checkout@v4
      - name: Install dependencies
        run: pip install --break-system-packages -r app/scripts/requirements.txt
      - name: West init
        run: west init -l app
      - name: Update modules (west update)
        run: west update
      - name: Export Zephyr CMake package (west zephyr-export)
        run: west zephyr-export
      - name: Validate Hardware Metadata
        working-directory: app
        run: west metadata check
