X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=jjb%2Fdoc%2Frules.yaml;h=b78c5aa46f3299a2d3ad3fd7c4d03f01f4723271;hb=b27342f9233908ba7bd2970f313d71f7306386db;hp=702449035629510f7ce1f6cf9468b32708b27591;hpb=e3b705eb4abeb0feacca7868308d67eb43264707;p=ci-management.git diff --git a/jjb/doc/rules.yaml b/jjb/doc/rules.yaml index 702449035..b78c5aa46 100644 --- a/jjb/doc/rules.yaml +++ b/jjb/doc/rules.yaml @@ -1,11 +1,12 @@ +--- - scm: name: doc-scm scm: - git: - url: 'https://gerrit.onap.org/r/{project}' - refspec: '+refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*' + url: "https://gerrit.onap.org/r/{project}" + refspec: "+refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*" branches: - - '{ref}' + - "{ref}" - trigger: name: doc-rules-patchset-created @@ -17,55 +18,63 @@ comment-contains-value: recheck - comment-added-contains-event: comment-contains-value: reverify - server-name: 'Primary' + server-name: "Primary" projects: - - project-compare-type: 'ANT' - project-pattern: '**' + - project-compare-type: "ANT" + project-pattern: "**" branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/*' - - branch-compare-type: 'ANT' - branch-pattern: 'refs/tags/**' + - 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" - 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." + # message, begin + log_success_msg "INFO doc-rules Version 23-07-07-A" + 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 "Directory docs not found. Skipping further checks." + log_success_msg "INFO 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 + # config files, required + for i in docs/index.rst docs/conf.py docs/requirements-docs.txt docs/_static/css/ribbon.css .readthedocs.yaml; do if [ ! -f $i ] ; then - log_failure_msg "$i missing. Please add it or remove the full docs directory." + log_failure_msg "FAIL $i missing. Please add it or remove the full docs directory." exitstatus="1" else - log_success_msg "$i found." + 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 "$i found. It is no longer required. Please remove it." + log_failure_msg "FAIL $i found. It is no longer required. Please remove it." exitstatus="1" else - log_success_msg "$i not found." + log_success_msg "INFO $i not found." fi done + # tox.ini @ docs directory filename="docs/tox.ini" if [ ! -f $filename ] ; then - log_failure_msg "$filename missing. Please add it or remove the full docs directory." + log_failure_msg "FAIL $filename missing. Please add it or remove the full docs directory." exitstatus="1" else - log_success_msg "$filename found." + 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 @@ -73,50 +82,123 @@ 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." + log_success_msg "INFO 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." + log_warning_msg "WARN sphinx-build option '-W' missing 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" + log_warning_msg "WARN sphinx-build option '-W' missing in $filename, line $linenumber. Please add it." + warning="1" + #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 "Sphinx-build command(s) missing in $filename. Please add it." - exitstatus="1" + log_warning_msg "WARN Sphinx-build command(s) missing in $filename. Please add it." + warning="1" + #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 "$filename missing. Please add it or remove the full docs directory." + log_failure_msg "FAIL $filename missing. Please add it or remove the full docs directory." exitstatus="1" else - log_success_msg "$filename found." + 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 "Setting 'max-width: 800px' missing in $filename. Please add it." + log_failure_msg "FAIL Setting 'max-width: 800px' missing in $filename. Please add it." exitstatus="1" else - log_success_msg "Setting 'max-width: 800px' found in $filename." + log_success_msg "INFO Setting 'max-width: 800px' found in $filename." fi unset cssmaxwidth fi unset filename + # readthedocs.yaml + filename=".readthedocs.yaml" + 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." + # obsolete parameter: (build:) image: latest + buildimage=$(grep '^[ \t]*image:' $filename | sed -e 's/^[ \t]*//' | sed -e 's/;$//'); + if [[ $buildimage == *"latest"* ]]; then + log_failure_msg "FAIL Setting '(build: image:) latest' found in $filename. Please remove it." + exitstatus="1" + else + log_success_msg "INFO Setting '(build: image:) latest' not found in $filename." + fi + unset buildimage + # obsolete parameter: (python:) version: 3.7 + pythonversion=$(grep '^[ \t]*version:' $filename | sed -e 's/^[ \t]*//' | sed -e 's/;$//'); + if [[ $pythonversion == *"3.7"* ]]; then + log_failure_msg "FAIL Setting '(python:) version: 3.7' found in $filename. Please remove it." + exitstatus="1" + else + log_success_msg "INFO Setting '(python:) version: 3.7' not found in $filename." + fi + unset pythonversion + # obsolete parameter: submodules: + submodules=$(grep '^[ \t]*submodules:' $filename | sed -e 's/^[ \t]*//' | sed -e 's/;$//'); + if [[ $submodules == *"submodules:"* ]]; then + log_failure_msg "FAIL Setting 'submodules:' found in $filename. Please remove it." + exitstatus="1" + else + log_success_msg "INFO Setting 'submodules:' not found in $filename." + fi + unset submodules + # required parameter: (build:) os: + buildos=$(grep '^[ \t]*os:' $filename | sed -e 's/^[ \t]*//' | sed -e 's/;$//'); + if [[ ! $buildos == *"ubuntu-20.04"* ]]; then + log_failure_msg "FAIL Setting '(build:) os: ubuntu-20.04' missing in $filename. Please add it." + exitstatus="1" + else + log_success_msg "INFO Setting '(build:) os: ubuntu-20.04' found in $filename." + fi + unset buildos + # required parameter: (build: tools:) python + buildtoolspython=$(grep '^[ \t]*python:' $filename | sed -e 's/^[ \t]*//' | sed -e 's/;$//'); + if [[ ! $buildtoolspython == *\"3.8\"* ]]; then + log_failure_msg "FAIL Setting '(build: tools:) python: \"3.8\"' missing in $filename. Please add it." + exitstatus="1" + else + log_success_msg "INFO Setting '(build: tools:) python: \"3.8\"' found in $filename." + fi + unset buildtoolspython + fi + unset filename + # message, end if [ "$exitstatus" = "0" ]; then if [ "$warning" = "0" ]; then - log_success_msg "Congratulations! No documentation problem(s) detected." + log_success_msg "INFO Congratulations! No documentation problem(s) detected." else - log_warning_msg "No major documentation problem(s) detected but there are warnings!" + log_warning_msg "WARN No major documentation problem(s) detected but there are warnings!" fi else - log_failure_msg "Please fix the detected documentation problem(s)!" + 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 @@ -131,6 +213,6 @@ - doc-rules - project: - name: 'doc-rules' + name: "doc-rules" jobs: - - 'doc-rules' + - "doc-rules"