name: Validate JSON Schema on: pull_request: paths: - "config-schema.json" push: branches: - main paths: - "config-schema.json" workflow_dispatch: jobs: validate-schema: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Validate JSON Schema run: | # Check if the file is valid JSON if ! jq empty config-schema.json 2>/dev/null; then echo "Error: config-schema.json is not valid JSON" exit 1 fi # Validate that it's a valid JSON Schema # Check for required $schema field if ! jq -e '."$schema"' config-schema.json > /dev/null; then echo "Warning: config-schema.json should have a \$schema field" fi # Check that it has either properties or definitions if ! jq -e '.properties or .definitions or ."$defs"' config-schema.json > /dev/null; then echo "Warning: JSON Schema should contain properties, definitions, or \$defs" fi echo "✓ config-schema.json is valid"