Add Python 3 verify step to SDC
[ci-management.git] / jjb / doc / rules.yaml
1 ---
2 - scm:
3     name: doc-scm
4     scm:
5       - git:
6           url: "https://gerrit.onap.org/r/{project}"
7           refspec: "+refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*"
8           branches:
9             - "{ref}"
10
11 - trigger:
12     name: doc-rules-patchset-created
13     triggers:
14       - gerrit:
15           trigger-on:
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"
22           projects:
23             - project-compare-type: "ANT"
24               project-pattern: "**"
25               branches:
26                 - branch-compare-type: "ANT"
27                   branch-pattern: "**/*"
28                 - branch-compare-type: "ANT"
29                   branch-pattern: "refs/tags/**"
30
31 - builder:
32     name: doc-rules
33     builders:
34       # yamllint disable rule:line-length
35       - shell: |
36           #!/bin/bash
37           . /lib/lsb/init-functions || exit 0
38           exitstatus="0"
39           warning="0"
40           # message, begin
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."
46           # docs directory
47           if [ ! -d docs ] ; then
48             log_success_msg "INFO Directory docs not found. Skipping further checks."
49             exit 0
50           fi
51           # config files, required
52           for i in docs/index.rst docs/conf.py docs/requirements-docs.txt docs/_static/css/ribbon.css; do
53             if [ ! -f $i ] ; then
54               log_failure_msg "FAIL $i missing. Please add it or remove the full docs directory."
55               exitstatus="1"
56             else
57               log_success_msg "INFO $i found."
58             fi
59           done
60           # config files, no longer required
61           for i in docs/conf.yaml; do
62             if [ -f $i ] ; then
63               log_failure_msg "FAIL $i found. It is no longer required. Please remove it."
64               exitstatus="1"
65             else
66               log_success_msg "INFO $i not found."
67             fi
68           done
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."
73             exitstatus="1"
74           else
75             log_success_msg "INFO $filename found."
76             # sphinx-build command and -W option
77             sphinxbuild_detected=0
78             linenumber=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."
87                   warning="1"
88                 else
89                   log_failure_msg "FAIL sphinx-build option '-W' missing in $filename, line $linenumber. Please add it."
90                   exitstatus="1"
91                 fi
92               fi
93             done < $filename
94             if [ "$sphinxbuild_detected" = "0" ]; then
95               log_failure_msg "FAIL Sphinx-build command(s) missing in $filename. Please add it."
96               exitstatus="1"
97             fi
98             # second tox.ini @ root directory
99             if [ -f ./tox.ini ] ; then
100               # sphinx-build command
101               if cat ./tox.ini | grep -q '^[ \t]*sphinx-build.*' ; then
102                 log_warning_msg "WARN tox.ini also exists in root directory and contains sphinx-build command(s). Please check for redundancies."
103                 warning="1"
104               fi
105             fi
106             unset sphinxbuild_detected
107             unset linenumber
108           fi
109           unset filename
110           # ribbon.css
111           filename="docs/_static/css/ribbon.css"
112           if [ ! -f $filename ]; then
113             log_failure_msg "FAIL $filename missing. Please add it or remove the full docs directory."
114             exitstatus="1"
115           else
116             log_success_msg "INFO $filename found."
117             # max-width parameter
118             cssmaxwidth=$(grep '^[ \t]*max-width:' $filename | sed -e 's/^[ \t]*//' | sed -e 's/;$//');
119             if [[ ! $cssmaxwidth == *"max-width: 800px"* ]]; then
120               log_failure_msg "FAIL Setting 'max-width: 800px' missing in $filename. Please add it."
121               exitstatus="1"
122             else
123               log_success_msg "INFO Setting 'max-width: 800px' found in $filename."
124             fi
125             unset cssmaxwidth
126           fi
127           unset filename
128           # message, end
129           if [ "$exitstatus" = "0" ]; then
130             if [ "$warning" = "0" ]; then
131               log_success_msg "INFO Congratulations! No documentation problem(s) detected."
132             else
133               log_warning_msg "WARN No major documentation problem(s) detected but there are warnings!"
134             fi
135           else
136             if [ ! "$warning" = "0" ]; then
137               log_warning_msg "WARN Please check the detected documentation warning(s)!"
138             fi
139             log_failure_msg "FAIL Please fix the detected documentation problem(s)!"
140           fi
141           exit $exitstatus
142       # yamllint enable
143
144 - job-template:
145     name: doc-rules
146     node: ubuntu1804-docker-8c-8g
147     triggers:
148       - doc-rules-patchset-created
149     scm:
150       - doc-scm:
151           ref: $GERRIT_REFSPEC
152           project: $GERRIT_PROJECT
153     builders:
154       - doc-rules
155
156 - project:
157     name: "doc-rules"
158     jobs:
159       - "doc-rules"