From c63b9a5e209c3cf1df83137898c8f9d3c29824d3 Mon Sep 17 00:00:00 2001 From: Jon Azpiazu <jon.azpiazu@tecnalia.com> Date: Tue, 3 Dec 2019 14:18:01 +0100 Subject: [PATCH] Add script and job for asciidoctor syntax check --- ...ab-industrial-ci-kinetic-no-rosinstall.yml | 17 +++++++++++++++ ...-industrial-ci-kinetic-with-rosinstall.yml | 17 +++++++++++++++ scripts/asciidoctor_syntax_check.bash | 21 +++++++++++++++++++ 3 files changed, 55 insertions(+) create mode 100644 scripts/asciidoctor_syntax_check.bash diff --git a/.gitlab-industrial-ci-kinetic-no-rosinstall.yml b/.gitlab-industrial-ci-kinetic-no-rosinstall.yml index 866a9c7..0c30ca6 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 288675f..cd92ad5 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 0000000..fb66a87 --- /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 -- GitLab