name: Json Validator

on:
  pull_request:
    paths:
      - '**.json'
  push:
    branches:
      - main
    paths:
      - '**.json'

jobs:
  json-validator:
    name: Json Validator
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4
      - name: Validate Json
        run: |
          sudo apt-get update
          sudo apt-get install python3-pip -y --no-install-recommends
          sudo pip3 install json-spec
          if ! json validate --schema-file=php/containers-schema.json --document-file=php/containers.json; then
            exit 1
          fi
          JSON_FILES="$(find ./community-containers -name '*.json')"
          mapfile -t JSON_FILES <<< "$JSON_FILES"
          for file in "${JSON_FILES[@]}"; do
            json validate --schema-file=php/containers-schema.json --document-file="$file" 2>&1 | tee -a ./json-validator.log
          done
          if grep -q "document does not validate with schema.\|invalid JSONFile" ./json-validator.log; then
            exit 1
          fi
