blob: 702449035629510f7ce1f6cf9468b32708b27591 [file] [log] [blame]
- 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'