blob: aa17f684814b4a10fa5303e173f85dc84f705020 [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:
# yamllint disable rule:line-length
- shell: |
#!/bin/bash
. /lib/lsb/init-functions || exit 0
exitstatus="0"
warning="0"
# message, begin
log_success_msg "INFO Starting additional checks related to documentation."
log_success_msg "INFO See https://git.onap.org/doc/doc-best-practice for example config files (master branch)."
log_success_msg "INFO Modify example config files if you like to use them in a release branch."
log_success_msg "INFO See https://wiki.onap.org/x/w4IEBw for the detailed procedure #02."
log_success_msg "INFO In case of questions please contact the ONAP documentation team."
# docs directory
if [ ! -d docs ] ; then
log_success_msg "INFO Directory docs not found. Skipping further checks."
exit 0
fi
# config files, required
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 "FAIL $i missing. Please add it or remove the full docs directory."
exitstatus="1"
else
log_success_msg "INFO $i found."
fi
done
# config files, no longer required
for i in docs/conf.yaml; do
if [ -f $i ] ; then
log_failure_msg "FAIL $i found. It is no longer required. Please remove it."
exitstatus="1"
else
log_success_msg "INFO $i not found."
fi
done
# tox.ini @ docs directory
filename="docs/tox.ini"
if [ ! -f $filename ] ; then
log_failure_msg "FAIL $filename missing. Please add it or remove the full docs directory."
exitstatus="1"
else
log_success_msg "INFO $filename found."
# sphinx-build command and -W option
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 "INFO sphinx-build option '-W' used in $filename, line $linenumber."
elif echo $line | grep -q ' \-b spelling ' ; then
log_warning_msg "WARN sphinx-build option '-W' missing for spellcheck in $filename, line $linenumber."
warning="1"
else
log_failure_msg "FAIL 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 "FAIL Sphinx-build command(s) missing in $filename. Please add it."
exitstatus="1"
fi
# second tox.ini @ root directory
if [ -f ./tox.ini ] ; then
# sphinx-build command
if cat ./tox.ini | grep -q '^[ \t]*sphinx-build.*' ; then
log_warning_msg "WARN tox.ini also exists in root directory and contains sphinx-build command(s). Please check for redundancies."
warning="1"
fi
fi
unset sphinxbuild_detected
unset linenumber
fi
unset filename
# ribbon.css
filename="docs/_static/css/ribbon.css"
if [ ! -f $filename ]; then
log_failure_msg "FAIL $filename missing. Please add it or remove the full docs directory."
exitstatus="1"
else
log_success_msg "INFO $filename found."
# max-width parameter
cssmaxwidth=$(grep '^[ \t]*max-width:' $filename | sed -e 's/^[ \t]*//' | sed -e 's/;$//');
if [[ ! $cssmaxwidth == *"max-width: 800px"* ]]; then
log_failure_msg "FAIL Setting 'max-width: 800px' missing in $filename. Please add it."
exitstatus="1"
else
log_success_msg "INFO Setting 'max-width: 800px' found in $filename."
fi
unset cssmaxwidth
fi
unset filename
# message, end
if [ "$exitstatus" = "0" ]; then
if [ "$warning" = "0" ]; then
log_success_msg "INFO Congratulations! No documentation problem(s) detected."
else
log_warning_msg "WARN No major documentation problem(s) detected but there are warnings!"
fi
else
if [ ! "$warning" = "0" ]; then
log_warning_msg "WARN Please check the detected documentation warning(s)!"
fi
log_failure_msg "FAIL Please fix the detected documentation problem(s)!"
fi
exit $exitstatus
# yamllint enable
- 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"