summaryrefslogtreecommitdiffstats
path: root/jjb/doc/rules.yaml
diff options
context:
space:
mode:
Diffstat (limited to 'jjb/doc/rules.yaml')
-rw-r--r--jjb/doc/rules.yaml136
1 files changed, 136 insertions, 0 deletions
diff --git a/jjb/doc/rules.yaml b/jjb/doc/rules.yaml
new file mode 100644
index 000000000..702449035
--- /dev/null
+++ b/jjb/doc/rules.yaml
@@ -0,0 +1,136 @@
+- scm:
+ name: doc-scm
+ scm:
+ - git:
+ url: 'https://gerrit.onap.org/r/{project}'
+ refspec: '+refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*'
+ branches:
+ - '{ref}'
+
+- trigger:
+ name: doc-rules-patchset-created
+ triggers:
+ - gerrit:
+ trigger-on:
+ - patchset-created-event
+ - comment-added-contains-event:
+ comment-contains-value: recheck
+ - comment-added-contains-event:
+ comment-contains-value: reverify
+ server-name: 'Primary'
+ projects:
+ - project-compare-type: 'ANT'
+ project-pattern: '**'
+ branches:
+ - branch-compare-type: 'ANT'
+ branch-pattern: '**/*'
+ - branch-compare-type: 'ANT'
+ branch-pattern: 'refs/tags/**'
+
+- builder:
+ name: doc-rules
+ builders:
+ - shell: |
+ #!/bin/bash
+ . /lib/lsb/init-functions || exit 0
+ exitstatus="0"
+ warning="0"
+ log_success_msg "Starting additional checks related to documentation."
+ log_success_msg "See https://git.onap.org/doc/doc-best-practice for example config files (master branch)."
+ log_success_msg "Modify example config files if you like to use them in a release branch."
+ log_success_msg "See https://wiki.onap.org/x/w4IEBw for the detailed procedure #02."
+ log_success_msg "In case of questions please contact the ONAP documentation team."
+ if [ ! -d docs ] ; then
+ log_success_msg "Directory docs not found. Skipping further checks."
+ exit 0
+ fi
+ for i in docs/index.rst docs/conf.py docs/requirements-docs.txt docs/_static/css/ribbon.css; do
+ if [ ! -f $i ] ; then
+ log_failure_msg "$i missing. Please add it or remove the full docs directory."
+ exitstatus="1"
+ else
+ log_success_msg "$i found."
+ fi
+ done
+ for i in docs/conf.yaml; do
+ if [ -f $i ] ; then
+ log_failure_msg "$i found. It is no longer required. Please remove it."
+ exitstatus="1"
+ else
+ log_success_msg "$i not found."
+ fi
+ done
+ filename="docs/tox.ini"
+ if [ ! -f $filename ] ; then
+ log_failure_msg "$filename missing. Please add it or remove the full docs directory."
+ exitstatus="1"
+ else
+ log_success_msg "$filename found."
+ sphinxbuild_detected=0
+ linenumber=0
+ while IFS="" read -r line || [ -n "$line" ] ; do
+ linenumber=$((linenumber+1))
+ if echo $line | grep -q '^[ \t]*sphinx-build.*' ; then
+ sphinxbuild_detected="1"
+ if echo $line | grep -q '^[ \t]*sphinx-build.* -W ' ; then
+ log_success_msg "sphinx-build option '-W' used in $filename, line $linenumber."
+ elif echo $line | grep -q ' \-b spelling ' ; then
+ log_warning_msg "sphinx-build option '-W' not used for spellcheck in $filename, line $linenumber."
+ warning="1"
+ else
+ log_failure_msg "sphinx-build option '-W' missing in $filename, line $linenumber. Please add it."
+ exitstatus="1"
+ fi
+ fi
+ done < $filename
+ if [ "$sphinxbuild_detected" = "0" ]; then
+ log_failure_msg "Sphinx-build command(s) missing in $filename. Please add it."
+ exitstatus="1"
+ fi
+ unset sphinxbuild_detected
+ unset linenumber
+ fi
+ unset filename
+ filename="docs/_static/css/ribbon.css"
+ if [ ! -f $filename ]; then
+ log_failure_msg "$filename missing. Please add it or remove the full docs directory."
+ exitstatus="1"
+ else
+ log_success_msg "$filename found."
+ cssmaxwidth=$(grep '^[ \t]*max-width:' $filename | sed -e 's/^[ \t]*//' | sed -e 's/;$//');
+ if [[ ! $cssmaxwidth == *"max-width: 800px"* ]]; then
+ log_failure_msg "Setting 'max-width: 800px' missing in $filename. Please add it."
+ exitstatus="1"
+ else
+ log_success_msg "Setting 'max-width: 800px' found in $filename."
+ fi
+ unset cssmaxwidth
+ fi
+ unset filename
+ if [ "$exitstatus" = "0" ]; then
+ if [ "$warning" = "0" ]; then
+ log_success_msg "Congratulations! No documentation problem(s) detected."
+ else
+ log_warning_msg "No major documentation problem(s) detected but there are warnings!"
+ fi
+ else
+ log_failure_msg "Please fix the detected documentation problem(s)!"
+ fi
+ exit $exitstatus
+
+- job-template:
+ name: doc-rules
+ node: ubuntu1804-docker-8c-8g
+ triggers:
+ - doc-rules-patchset-created
+ scm:
+ - doc-scm:
+ ref: $GERRIT_REFSPEC
+ project: $GERRIT_PROJECT
+ builders:
+ - doc-rules
+
+- project:
+ name: 'doc-rules'
+ jobs:
+ - 'doc-rules'