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 doc-rules Version 23-07-07-A"
42 log_success_msg "INFO Starting additional checks related to documentation."
43 log_success_msg "INFO See https://git.onap.org/doc/doc-best-practice for example config files (master branch)."
44 log_success_msg "INFO Modify example config files if you like to use them in a release branch."
45 log_success_msg "INFO See https://wiki.onap.org/x/w4IEBw for the detailed procedure #02."
46 log_success_msg "INFO In case of questions please contact the ONAP documentation team."
48 if [ ! -d docs ] ; then
49 log_success_msg "INFO Directory docs not found. Skipping further checks."
52 # config files, required
53 for i in docs/index.rst docs/conf.py docs/requirements-docs.txt docs/_static/css/ribbon.css .readthedocs.yaml; do
55 log_failure_msg "FAIL $i missing. Please add it or remove the full docs directory."
58 log_success_msg "INFO $i found."
61 # config files, no longer required
62 for i in docs/conf.yaml; do
64 log_failure_msg "FAIL $i found. It is no longer required. Please remove it."
67 log_success_msg "INFO $i not found."
70 # tox.ini @ docs directory
71 filename="docs/tox.ini"
72 if [ ! -f $filename ] ; then
73 log_failure_msg "FAIL $filename missing. Please add it or remove the full docs directory."
76 log_success_msg "INFO $filename found."
77 # sphinx-build command and -W option
78 sphinxbuild_detected=0
80 while IFS="" read -r line || [ -n "$line" ] ; do
81 linenumber=$((linenumber+1))
82 if echo $line | grep -q '^[ \t]*sphinx-build.*' ; then
83 sphinxbuild_detected="1"
84 if echo $line | grep -q '^[ \t]*sphinx-build.* -W ' ; then
85 log_success_msg "INFO sphinx-build option '-W' used in $filename, line $linenumber."
86 elif echo $line | grep -q ' \-b spelling ' ; then
87 log_warning_msg "WARN sphinx-build option '-W' missing for spellcheck in $filename, line $linenumber."
90 log_warning_msg "WARN sphinx-build option '-W' missing in $filename, line $linenumber. Please add it."
92 #log_failure_msg "FAIL sphinx-build option '-W' missing in $filename, line $linenumber. Please add it."
97 if [ "$sphinxbuild_detected" = "0" ]; then
98 log_warning_msg "WARN Sphinx-build command(s) missing in $filename. Please add it."
100 #log_failure_msg "FAIL Sphinx-build command(s) missing in $filename. Please add it."
103 # second tox.ini @ root directory
104 if [ -f ./tox.ini ] ; then
105 # sphinx-build command
106 if cat ./tox.ini | grep -q '^[ \t]*sphinx-build.*' ; then
107 log_warning_msg "WARN tox.ini also exists in root directory and contains sphinx-build command(s). Please check for redundancies."
111 unset sphinxbuild_detected
116 filename="docs/_static/css/ribbon.css"
117 if [ ! -f $filename ]; then
118 log_failure_msg "FAIL $filename missing. Please add it or remove the full docs directory."
121 log_success_msg "INFO $filename found."
122 # max-width parameter
123 cssmaxwidth=$(grep '^[ \t]*max-width:' $filename | sed -e 's/^[ \t]*//' | sed -e 's/;$//');
124 if [[ ! $cssmaxwidth == *"max-width: 800px"* ]]; then
125 log_failure_msg "FAIL Setting 'max-width: 800px' missing in $filename. Please add it."
128 log_success_msg "INFO Setting 'max-width: 800px' found in $filename."
134 filename=".readthedocs.yaml"
135 if [ ! -f $filename ]; then
136 log_failure_msg "FAIL $filename missing. Please add it or remove the full docs directory."
139 log_success_msg "INFO $filename found."
140 # obsolete parameter: (build:) image: latest
141 buildimage=$(grep '^[ \t]*image:' $filename | sed -e 's/^[ \t]*//' | sed -e 's/;$//');
142 if [[ $buildimage == *"latest"* ]]; then
143 log_failure_msg "FAIL Setting '(build: image:) latest' found in $filename. Please remove it."
146 log_success_msg "INFO Setting '(build: image:) latest' not found in $filename."
149 # obsolete parameter: (python:) version: 3.7
150 pythonversion=$(grep '^[ \t]*version:' $filename | sed -e 's/^[ \t]*//' | sed -e 's/;$//');
151 if [[ $pythonversion == *"3.7"* ]]; then
152 log_failure_msg "FAIL Setting '(python:) version: 3.7' found in $filename. Please remove it."
155 log_success_msg "INFO Setting '(python:) version: 3.7' not found in $filename."
158 # obsolete parameter: submodules:
159 submodules=$(grep '^[ \t]*submodules:' $filename | sed -e 's/^[ \t]*//' | sed -e 's/;$//');
160 if [[ $submodules == *"submodules:"* ]]; then
161 log_failure_msg "FAIL Setting 'submodules:' found in $filename. Please remove it."
164 log_success_msg "INFO Setting 'submodules:' not found in $filename."
167 # required parameter: (build:) os:
168 buildos=$(grep '^[ \t]*os:' $filename | sed -e 's/^[ \t]*//' | sed -e 's/;$//');
169 if [[ ! $buildos == *"ubuntu-20.04"* ]]; then
170 log_failure_msg "FAIL Setting '(build:) os: ubuntu-20.04' missing in $filename. Please add it."
173 log_success_msg "INFO Setting '(build:) os: ubuntu-20.04' found in $filename."
176 # required parameter: (build: tools:) python
177 buildtoolspython=$(grep '^[ \t]*python:' $filename | sed -e 's/^[ \t]*//' | sed -e 's/;$//');
178 if [[ ! $buildtoolspython == *\"3.8\"* ]]; then
179 log_failure_msg "FAIL Setting '(build: tools:) python: \"3.8\"' missing in $filename. Please add it."
182 log_success_msg "INFO Setting '(build: tools:) python: \"3.8\"' found in $filename."
184 unset buildtoolspython
188 if [ "$exitstatus" = "0" ]; then
189 if [ "$warning" = "0" ]; then
190 log_success_msg "INFO Congratulations! No documentation problem(s) detected."
192 log_warning_msg "WARN No major documentation problem(s) detected but there are warnings!"
195 if [ ! "$warning" = "0" ]; then
196 log_warning_msg "WARN Please check the detected documentation warning(s)!"
198 log_failure_msg "FAIL Please fix the detected documentation problem(s)!"
205 node: ubuntu1804-docker-8c-8g
207 - doc-rules-patchset-created
211 project: $GERRIT_PROJECT