name: "Validate JSON by JSON Schema" description: "Validates JSON files using their $schema reference" author: "Timo Behrendt " inputs: json-file: description: "The JSON file to validate" required: true runs: using: "composite" steps: - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0 with: node-version: "latest" - name: Extract schema shell: bash run: | schema=$(jq -r '.["$schema"]' < ${{ inputs.json-file }}) if [ -n "$schema" ]; then curl -s $schema > schema.json else echo "No schema found" exit 0 fi - name: Update the schema to the latest version shell: bash run: | npx ajv-cli migrate -s schema.json -o schema.json - name: Validate JSON shell: bash run: | npx ajv-cli validate -s schema.json -d ${{ inputs.json-file }} --strict=false