diff --git a/.gitlab-industrial-ci-kinetic-no-rosinstall.yml b/.gitlab-industrial-ci-kinetic-no-rosinstall.yml index 866a9c7a0ff2ec72d2232d22ea08f9bad7d9f5af..0c30ca68251b59d4b54198df1f4229fcadcb0fd4 100644 --- a/.gitlab-industrial-ci-kinetic-no-rosinstall.yml +++ b/.gitlab-industrial-ci-kinetic-no-rosinstall.yml @@ -131,3 +131,20 @@ file_syntax: when: always tags: - docker + +########################################################## +## Check for errors in Asciidoctor files +## Could not find a proper linter for Asciidoctor format, +## so this is a custom-made "dirty" script +########################################################## +adoc_syntax: + stage: postcheck + image: alpine + before_script: + - apk add --update curl asciidoctor bash + script: + - curl -Ls https://git.code.tecnalia.com/tecnalia_robotics-public/gitlab_templates/raw/master/scripts/asciidoctor_syntax_check.bash | bash -s -- . + tags: + - docker + when: always + allow_failure: yes diff --git a/.gitlab-industrial-ci-kinetic-with-rosinstall.yml b/.gitlab-industrial-ci-kinetic-with-rosinstall.yml index 288675fc99aac8d454185a062a94b69665609021..cd92ad5a62f9112eddb830c51195c40dc98b8280 100644 --- a/.gitlab-industrial-ci-kinetic-with-rosinstall.yml +++ b/.gitlab-industrial-ci-kinetic-with-rosinstall.yml @@ -133,3 +133,20 @@ file_syntax: when: always tags: - docker + +########################################################## +## Check for errors in Asciidoctor files +## Could not find a proper linter for Asciidoctor format, +## so this is a custom-made "dirty" script +########################################################## +adoc_syntax: + stage: postcheck + image: alpine + before_script: + - apk add --update curl asciidoctor bash + script: + - curl -Ls https://git.code.tecnalia.com/tecnalia_robotics-public/gitlab_templates/raw/master/scripts/asciidoctor_syntax_check.bash | bash -s -- . + tags: + - docker + when: always + allow_failure: yes diff --git a/scripts/asciidoctor_syntax_check.bash b/scripts/asciidoctor_syntax_check.bash new file mode 100644 index 0000000000000000000000000000000000000000..fb66a87b58071134a107e41101ce7729ea02c96e --- /dev/null +++ b/scripts/asciidoctor_syntax_check.bash @@ -0,0 +1,21 @@ +#!/bin/bash + +if ! [ -x "$(command -v asciidoctor)" ]; then + echo "Error: asciidoctor is not installed" + exit 1 +fi + +if [ -z "$1" ] ; then + echo "Error: No argument supplied - path needed" + exit 1 +fi + +touch output.log # avoid failing if no adoc files exist +while IFS= read -r -d '' filename; do + asciidoctor "$filename" 2>&1 | tee -a output.log +done < <(find "$1" -name '*.adoc' -type f -print0) +adoc_errors=0 ; adoc_warnings=0 +adoc_errors=$(grep -c "ERROR" output.log) +adoc_warnings=$(grep -c "WARNING" output.log) +echo "AsciiDoc format Found ${adoc_errors} errors and ${adoc_warnings} warnings" +if [ "${adoc_errors}" -eq 0 ]; then exit 0; else exit 1; fi