]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#2822] add check-for-json-errors-in-doc.sh to CI
authorAndrei Pavel <andrei@isc.org>
Sat, 13 May 2023 15:02:05 +0000 (18:02 +0300)
committerAndrei Pavel <andrei@isc.org>
Sat, 13 May 2023 15:02:05 +0000 (18:02 +0300)
.gitlab-ci.yml
tools/check-for-json-errors-in-doc.sh

index ccf25abb4194e742bab2918a80c05e7e384b3cf3..80d6b963fcf09cfd969472f0a3171c47f3526775 100644 (file)
@@ -112,6 +112,16 @@ shellcheck:
     - SCRIPTS+="tools/tests_in_valgrind.sh "
     - shellcheck ${SCRIPTS} ${SHELLCHECK_OPTS}
 
+are-database-scripts-in-sync:
+  stage: test
+  script:
+    - ./src/share/database/scripts/utils/are-scripts-in-sync.py
+
+check-for-json-errors-in-doc:
+  stage: test
+  script:
+    - ./tools/check-for-json-errors-in-doc.sh
+
 danger:
   stage: test
   before_script:
@@ -122,12 +132,6 @@ danger:
   script:
     - danger --fail-on-errors=true --new-comment
 
-dhcpdb_create-upgrade-consistency:
-  allow_failure: false
-  stage: test
-  script:
-    - ./src/share/database/scripts/utils/are-scripts-in-sync.py
-
 duplicate-includes:
   stage: test
   script:
index b8c96a498480fa685a141a9de23712dbf901abf5..a748cfb07d87366e6533c6bff5c794de91f1dd1c 100755 (executable)
@@ -1,14 +1,26 @@
 #!/bin/bash
+
+# Usage:
+# check-for-json-errors-in-doc.sh [--all] [<file1>, <file2>, ...]
+
 # Change directory to the root of the repository.
 script_path=$(cd "$(dirname "${0}")" && pwd)
 cd "${script_path}/.."
+
 # Parse parameters.
 if test ${#} -gt 0; then
-  files="${*}"
+       if test "${1}" = '--all'; then
+               files='doc src'
+       else
+               files="${*}"
+       fi
 else
-  files='doc src'
+       # By default, check only modified files.
+       files=$(git diff --name-only $(git merge-base origin/master HEAD))
 fi
 
+exit_code=0
+
 # Get the files.
 files=$(find ${files} -type f \( -name '*.rst' -or -name '*.json' \) -and -not -path '*/_build/*' -and -not -path '*/man/*' | sort)
 work_file=$(mktemp)
@@ -48,6 +60,7 @@ for file in $files; do
                                echo "===start of JSON block==="
                                cat $work_file
                                echo "====end of JSON block===="
+                               exit_code=1
                        fi
                fi
                if [ $comment -eq 0 -a $json -eq 1 ]; then
@@ -86,7 +99,10 @@ for file in $files; do
                        echo "===start of JSON block==="
                        cat $work_file
                        echo "====end of JSON block===="
+                       exit_code=1
                fi
        fi
 done
 rm $work_file
+
+exit ${exit_code}