diff --git a/.github/workflows/validate_examples.yml b/.github/workflows/validate_examples.yml index 004880de..fe9c588e 100644 --- a/.github/workflows/validate_examples.yml +++ b/.github/workflows/validate_examples.yml @@ -13,35 +13,7 @@ jobs: - name: Install dependencies run: | sudo apt install -y gawk - - name: Check files - run: | - set -e - for f in examples/jsonld/*.json; do - echo "Checking $f" - - check-jsonschema \ - -v \ - --schemafile https://spdx.org/schema/3.0.0/spdx-json-schema.json \ - $f - pyshacl \ - -s https://spdx.org/rdf/3.0.0/spdx-model.ttl \ - -e https://spdx.org/rdf/3.0.0/spdx-model.ttl \ - $f - done - - - name: Check documentation examples + - name: Check examples run: | - for f in docs/annexes/getting-started.md; do - echo "Checking $f" - cat $f | awk '/^```json/, $0=="```" {if ($0 !~ /^```.*/ ) print}' > temp.json - check-jsonschema \ - -v \ - --schemafile https://spdx.org/schema/3.0.0/spdx-json-schema.json \ - temp.json - - pyshacl \ - -s https://spdx.org/rdf/3.0.0/spdx-model.ttl \ - -e https://spdx.org/rdf/3.0.0/spdx-model.ttl \ - temp.json - done + ./bin/check-examples.sh diff --git a/bin/check-examples.sh b/bin/check-examples.sh new file mode 100755 index 00000000..29b0c9e6 --- /dev/null +++ b/bin/check-examples.sh @@ -0,0 +1,76 @@ +#! /bin/bash +# +# Validates SPDX example, both in separate files and inline in the +# documentation +# +# SPDX-License-Identifier: MIT + +set -e + +THIS_DIR=$(dirname $0) + +for f in examples/jsonld/*.json; do + echo "Checking $f" + + check-jsonschema \ + -v \ + --schemafile https://spdx.org/schema/3.0.0/spdx-json-schema.json \ + $f + + pyshacl \ + -s https://spdx.org/rdf/3.0.0/spdx-model.ttl \ + -e https://spdx.org/rdf/3.0.0/spdx-model.ttl \ + $f +done + +T=$(mktemp -d) + +for f in $THIS_DIR/../docs/annexes/*.md; do + if ! grep -q '```json' $f; then + continue + fi + echo "Checking $f" + echo "" > $T/temp.json + + if ! grep -q '@context' $f; then + cat >> $T/temp.json <> $T/temp.json + + if ! grep -q '@context' $f; then + cat >> $T/temp.json <