6 url: "https://gerrit.onap.org/r/{project}"
7 refspec: "+refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*"
12 name: doc-rules-patchset-created
16 - patchset-created-event
17 - comment-added-contains-event:
18 comment-contains-value: recheck
19 - comment-added-contains-event:
20 comment-contains-value: reverify
21 server-name: "Primary"
23 - project-compare-type: "ANT"
26 - branch-compare-type: "ANT"
27 branch-pattern: "**/*"
28 - branch-compare-type: "ANT"
29 branch-pattern: "refs/tags/**"
34 # yamllint disable rule:line-length
37 . /lib/lsb/init-functions || exit 0
41 log_success_msg "INFO Starting additional checks related to documentation."
42 log_success_msg "INFO See https://git.onap.org/doc/doc-best-practice for example config files (master branch)."
43 log_success_msg "INFO Modify example config files if you like to use them in a release branch."
44 log_success_msg "INFO See https://wiki.onap.org/x/w4IEBw for the detailed procedure #02."
45 log_success_msg "INFO In case of questions please contact the ONAP documentation team."
47 if [ ! -d docs ] ; then
48 log_success_msg "INFO Directory docs not found. Skipping further checks."
51 # config files, required
52 for i in docs/index.rst docs/conf.py docs/requirements-docs.txt docs/_static/css/ribbon.css .readthedocs.yaml; do
54 log_failure_msg "FAIL $i missing. Please add it or remove the full docs directory."
57 log_success_msg "INFO $i found."
60 # config files, no longer required
61 for i in docs/conf.yaml; do
63 log_failure_msg "FAIL $i found. It is no longer required. Please remove it."
66 log_success_msg "INFO $i not found."
69 # tox.ini @ docs directory
70 filename="docs/tox.ini"
71 if [ ! -f $filename ] ; then
72 log_failure_msg "FAIL $filename missing. Please add it or remove the full docs directory."
75 log_success_msg "INFO $filename found."
76 # sphinx-build command and -W option
77 sphinxbuild_detected=0
79 while IFS="" read -r line || [ -n "$line" ] ; do
80 linenumber=$((linenumber+1))
81 if echo $line | grep -q '^[ \t]*sphinx-build.*' ; then
82 sphinxbuild_detected="1"
83 if echo $line | grep -q '^[ \t]*sphinx-build.* -W ' ; then
84 log_success_msg "INFO sphinx-build option '-W' used in $filename, line $linenumber."
85 elif echo $line | grep -q ' \-b spelling ' ; then
86 log_warning_msg "WARN sphinx-build option '-W' missing for spellcheck in $filename, line $linenumber."
89 log_warning_msg "WARN sphinx-build option '-W' missing in $filename, line $linenumber. Please add it."
91 #log_failure_msg "FAIL sphinx-build option '-W' missing in $filename, line $linenumber. Please add it."
96 if [ "$sphinxbuild_detected" = "0" ]; then
97 log_failure_msg "FAIL Sphinx-build command(s) missing in $filename. Please add it."
100 # second tox.ini @ root directory
101 if [ -f ./tox.ini ] ; then
102 # sphinx-build command
103 if cat ./tox.ini | grep -q '^[ \t]*sphinx-build.*' ; then
104 log_warning_msg "WARN tox.ini also exists in root directory and contains sphinx-build command(s). Please check for redundancies."
108 unset sphinxbuild_detected
113 filename="docs/_static/css/ribbon.css"
114 if [ ! -f $filename ]; then
115 log_failure_msg "FAIL $filename missing. Please add it or remove the full docs directory."
118 log_success_msg "INFO $filename found."
119 # max-width parameter
120 cssmaxwidth=$(grep '^[ \t]*max-width:' $filename | sed -e 's/^[ \t]*//' | sed -e 's/;$//');
121 if [[ ! $cssmaxwidth == *"max-width: 800px"* ]]; then
122 log_failure_msg "FAIL Setting 'max-width: 800px' missing in $filename. Please add it."
125 log_success_msg "INFO Setting 'max-width: 800px' found in $filename."
131 filename=".readthedocs.yaml"
132 if [ ! -f $filename ]; then
133 log_failure_msg "FAIL $filename missing. Please add it or remove the full docs directory."
136 log_success_msg "INFO $filename found."
137 # obsolete parameter: (build:) image: latest
138 buildimage=$(grep '^[ \t]*image:' $filename | sed -e 's/^[ \t]*//' | sed -e 's/;$//');
139 if [[ $buildimage == *"latest"* ]]; then
140 log_failure_msg "FAIL Setting '(build: image:) latest' found in $filename. Please remove it."
143 log_success_msg "INFO Setting '(build: image:) latest' not found in $filename."
146 # obsolete parameter: (python:) version: 3.7
147 pythonversion=$(grep '^[ \t]*version:' $filename | sed -e 's/^[ \t]*//' | sed -e 's/;$//');
148 if [[ $pythonversion == *"3.7"* ]]; then
149 log_failure_msg "FAIL Setting '(python:) version: 3.7' found in $filename. Please remove it."
152 log_success_msg "INFO Setting '(python:) version: 3.7' not found in $filename."
155 # obsolete parameter: submodules:
156 submodules=$(grep '^[ \t]*submodules:' $filename | sed -e 's/^[ \t]*//' | sed -e 's/;$//');
157 if [[ $submodules == *"submodules:"* ]]; then
158 log_failure_msg "FAIL Setting 'submodules:' found in $filename. Please remove it."
161 log_success_msg "INFO Setting 'submodules:' not found in $filename."
164 # required parameter: (build:) os:
165 buildos=$(grep '^[ \t]*os:' $filename | sed -e 's/^[ \t]*//' | sed -e 's/;$//');
166 if [[ ! $buildos == *"ubuntu-20.04"* ]]; then
167 log_failure_msg "FAIL Setting '(build:) os: ubuntu-20.04' missing in $filename. Please add it."
170 log_success_msg "INFO Setting '(build:) os: ubuntu-20.04' found in $filename."
173 # required parameter: (build: tools:) python
174 buildtoolspython=$(grep '^[ \t]*python:' $filename | sed -e 's/^[ \t]*//' | sed -e 's/;$//');
175 if [[ ! $buildtoolspython == *\"3.8\"* ]]; then
176 log_failure_msg "FAIL Setting '(build: tools:) python: \"3.8\"' missing in $filename. Please add it."
179 log_success_msg "INFO Setting '(build: tools:) python: \"3.8\"' found in $filename."
181 unset buildtoolspython
185 if [ "$exitstatus" = "0" ]; then
186 if [ "$warning" = "0" ]; then
187 log_success_msg "INFO Congratulations! No documentation problem(s) detected."
189 log_warning_msg "WARN No major documentation problem(s) detected but there are warnings!"
192 if [ ! "$warning" = "0" ]; then
193 log_warning_msg "WARN Please check the detected documentation warning(s)!"
195 log_failure_msg "FAIL Please fix the detected documentation problem(s)!"
202 node: ubuntu1804-docker-8c-8g
204 - doc-rules-patchset-created
208 project: $GERRIT_PROJECT