name: Format validation on: push: branches: - '*' - '!rc/*' paths: - 'test/writer.jats_articleauthoring' - 'test/writer.jats_publishing' - 'test/writer.jats_archiving' pull_request: branches: - '*' - '!rc/*' paths: - 'test/writer.jats_articleauthoring' - 'test/writer.jats_publishing' - 'test/writer.jats_archiving' jobs: jats: name: JATS runs-on: ubuntu-latest env: VALIDATOR_URL: "https://jats-validator.hubmed.org/dtd/" strategy: fail-fast: false matrix: tagset: - articleauthoring - publishing - archiving file: - writer # tables are not supported yet, the files contain only snippets. steps: - name: Checkout uses: actions/checkout@v2 - name: Validate run: | filename=test/${{ matrix.file }}.jats_${{ matrix.tagset }} printf "Validating file %s\n" "$filename" json="$(curl --form "xml=@${filename}" --silent "$VALIDATOR_URL")" err_count="$(echo "$json" | jq '.errors | length')" if [ "$err_count" -eq 0 ]; then printf "File was validated successfully.\n" exit 0 else printf "Validator report:\n%s" "$json" exit 1 fi