diff options
-rw-r--r-- | .github/workflows/format-validation.yml | 36 |
1 files changed, 30 insertions, 6 deletions
diff --git a/.github/workflows/format-validation.yml b/.github/workflows/format-validation.yml index 1c0060cf8..2104f9da1 100644 --- a/.github/workflows/format-validation.yml +++ b/.github/workflows/format-validation.yml @@ -9,6 +9,7 @@ on: - 'test/writer.jats_articleauthoring' - 'test/writer.jats_publishing' - 'test/writer.jats_archiving' + - 'test/tables.jats_archiving' pull_request: branches: - '*' @@ -17,6 +18,7 @@ on: - 'test/writer.jats_articleauthoring' - 'test/writer.jats_publishing' - 'test/writer.jats_archiving' + - 'test/tables.jats_archiving' jobs: jats: @@ -31,19 +33,16 @@ jobs: - articleauthoring - publishing - archiving - file: - - writer - # tables are not supported yet, the files contain only snippets. steps: - name: Checkout uses: actions/checkout@v2 - - name: Validate + - name: Validate writer output run: | - filename=test/${{ matrix.file }}.jats_${{ matrix.tagset }} + filename=test/writer.jats_${{ matrix.tagset }} printf "Validating file %s\n" "$filename" json="$(curl --form "xml=@${filename}" --silent "$VALIDATOR_URL")" - err_count="$(echo "$json" | jq '.errors | length')" + err_count="$(printf '%s' "$json" | jq '.errors | length')" if [ "$err_count" -eq 0 ]; then printf "File was validated successfully.\n" exit 0 @@ -51,3 +50,28 @@ jobs: printf "Validator report:\n%s" "$json" exit 1 fi + + - name: Validate tables + # Archiving has the simplest template, so we only check with that. + if: matrix.tagset == 'archiving' + run: | + tmpl="$(cat <<EOF + <?xml version="1.0" encoding="utf-8" ?> + <!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.2 20190208//EN" + "JATS-archivearticle1.dtd"> + <article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" dtd-version="1.2" article-type="other"> + <front><article-meta></article-meta></front> + <body>%s</body></article> + EOF + )" + jats_file="$(mktemp jats-tables.XXXXX)" + printf "$tmpl" "$(cat test/tables.jats_archiving)" > "$jats_file" + json="$(curl --form "xml=@${jats_file}" --silent "$VALIDATOR_URL")" + err_count="$(printf "%s" "$json" | jq '.errors | length')" + if [ "$err_count" -eq 0 ]; then + printf "Table output is valid when used as body content.\n" + exit 0 + else + printf "Validator report:\n%s" "$json" + exit 1 + fi |