diff --git a/.github/scripts/validate-and-lint.sh b/.github/scripts/validate-and-lint.sh index 55ab16ef8..b73179bb4 100755 --- a/.github/scripts/validate-and-lint.sh +++ b/.github/scripts/validate-and-lint.sh @@ -7,13 +7,15 @@ # The -e flag causes the script to exit as soon as one command returns a non-zero exit code set -e +SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) + echo "Validating XML file structure and linting XSD and XML files ..." PARSING_ERROR=0 # Iterate all XML and XSD files while IFS= read -r -d $'\0' filename; do # Prettify the file using xmllint and save the result to ${filename}.pretty - if XMLLINT_INDENT=$'\t' xmllint --encode UTF-8 --format --pretty 1 "${filename}" >"${filename}.pretty"; then + if XMLLINT_INDENT=$'\t' $SCRIPT_DIR/xmllint --encode UTF-8 --format --pretty 1 "${filename}" >"${filename}.pretty"; then # Remove lines containing the term "xmlspy" to get rid of advertising this and save the result as ${filename} grep -i -v "xmlspy" "${filename}.pretty" >"${filename}" else diff --git a/.github/scripts/validate-examples.sh b/.github/scripts/validate-examples.sh index 0d3bd043f..6717dca9e 100755 --- a/.github/scripts/validate-examples.sh +++ b/.github/scripts/validate-examples.sh @@ -7,9 +7,11 @@ # The -e flag causes the script to exit as soon as one command returns a non-zero exit code set -e +SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) + echo "Validating NeTEx XML examples ..." -if xmllint --noout --schema xsd/NeTEx_publication.xsd examples/standards/efp/*.xml examples/standards/norway/*/*.xml examples/standards/nta/*.xml examples/standards/tap_tsi/*/*.xml && xmllint --noout --schema xsd/NeTEx_publication.xsd examples/standards/epiap/*xml examples/functions/deckPlans/*.xml && xmllint --noout --schema xsd/NeTEx_publication.xsd examples/functions/calendar/*.xml examples/functions/fares/*xml examples/functions/grouping/*xml examples/functions/newModes/*xml examples/functions/patterns/*xml examples/functions/pointOfInterest/*xml examples/functions/simpleNetwork/*xml examples/functions/site/*xml examples/functions/stopPlace/*xml examples/functions/timetable/*xml examples/functions/validityCondition/*xml examples/functions/variant/*xml examples/functions/vehicleSchedule/*xml examples/functions/versioning/*xml examples/standards/epip/*xml examples/standards/era_uic/*xml examples/standards/fxc/*xml examples/standards/gbfs/*xml examples/standards/gtfs/*xml examples/standards/neptune/*xml examples/standards/noptis/*xml examples/standards/tap_tsi/*xml examples/standards/txc/*xml examples/standards/vdv452/*/*xml examples/standards/vdv452/*/*/*xml; then +if $SCRIPT_DIR/xmllint --noout --schema xsd/NeTEx_publication.xsd examples/standards/efp/*.xml examples/standards/norway/*/*.xml examples/standards/nta/*.xml examples/standards/tap_tsi/*/*.xml examples/standards/epiap/*xml examples/functions/deckPlans/*.xml examples/functions/calendar/*.xml examples/functions/fares/*xml examples/functions/grouping/*xml examples/functions/newModes/*xml examples/functions/patterns/*xml examples/functions/pointOfInterest/*xml examples/functions/simpleNetwork/*xml examples/functions/site/*xml examples/functions/stopPlace/*xml examples/functions/timetable/*xml examples/functions/validityCondition/*xml examples/functions/variant/*xml examples/functions/vehicleSchedule/*xml examples/functions/versioning/*xml examples/standards/epip/*xml examples/standards/era_uic/*xml examples/standards/fxc/*xml examples/standards/gbfs/*xml examples/standards/gtfs/*xml examples/standards/neptune/*xml examples/standards/noptis/*xml examples/standards/tap_tsi/*xml examples/standards/txc/*xml examples/standards/vdv452/*/*xml examples/standards/vdv452/*/*/*xml; then echo -e '\033[0;32mValidating NeTEx XML examples succeeded\033[0m' else echo -e '\033[0;31mValidating NeTEx XML examples failed\033[0m' diff --git a/.github/scripts/xmllint b/.github/scripts/xmllint new file mode 100755 index 000000000..cc428f347 Binary files /dev/null and b/.github/scripts/xmllint differ diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 650cbc2c3..2ec17fa42 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,10 +12,10 @@ jobs: - name: Check out repository code uses: actions/checkout@v3 - - name: Install xmllint and xsltproc - run: | - sudo apt-get update - sudo apt-get install libxml2-utils xsltproc + # - name: Install xmllint and xsltproc + # run: | + # sudo apt-get update + # sudo apt-get install libxml2-utils xsltproc - name: Validate structure and lint XSD and XML files run: ./.github/scripts/validate-and-lint.sh