diff --git a/.github/workflows/compat-json.yml b/.github/workflows/compat-json.yml new file mode 100644 index 000000000..be3d7ec4b --- /dev/null +++ b/.github/workflows/compat-json.yml @@ -0,0 +1,40 @@ +name: Compatibility Data Validator + +on: + push: + paths: + - "plugins/win-capture/data/compatibility.json" + - "plugins/win-capture/data/package.json" + pull_request: + paths: + - "plugins/win-capture/data/compatibility.json" + - "plugins/win-capture/data/package.json" + +jobs: + schema: + name: Schema + runs-on: [ubuntu-22.04] + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Install & Configure Python + run: | + sudo apt install python3-dev + python3 -m pip install jsonschema json_source_map + + - name: Validate Compatibility JSON Schema + run: | + JSON_FILES=( + plugins/win-capture/data/compatibility.json + plugins/win-capture/data/package.json + ) + python3 CI/check-jsonschema.py "${JSON_FILES[@]}" + + - name: Annotate Errors + if: failure() + uses: yuzutech/annotations-action@v0.4.0 + with: + repo-token: "${{ secrets.GITHUB_TOKEN }}" + title: "Compatibility JSON Errors" + input: "./validation_errors.json"