CI: Check help tags for errors (duplicates, missing, etc) (#13865)
- Run the doc make html awk script, which also checks, that all
referenced help tags exists.
- Run the doc maketags awk script, which checks for duplicates
- in case of any error in the previous two steps, exit the CI with
an error and show the errors.log file, that is generated by the
previous 2 steps
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index b51cade..0efadcf 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -265,7 +265,12 @@
if: contains(matrix.extra, 'vimtags')
run: |
# This will exit with an error code if the generated vim tags differs from source.
- git diff --exit-code -- runtime/doc/tags
+ (
+ cd runtime/doc
+ git diff --exit-code -- tags
+ make html; rm *.html tags.ref;
+ test -f errors.log && exit 3;
+ )
- name: Generate gcov files
if: matrix.coverage
diff --git a/runtime/doc/maketags.awk b/runtime/doc/maketags.awk
index c6b2cd9..20b2b08 100644
--- a/runtime/doc/maketags.awk
+++ b/runtime/doc/maketags.awk
@@ -21,6 +21,13 @@
gsub(/%/,"\\%");
nf=split($0,tag," ");
+ if (counttag[tag[1]] > 0)
+ {
+ print "==============" > "errors.log"
+ print "Duplicate Tag " tag[1] > "errors.log"
+ print "==============" > "errors.log"
+ }
+ counttag[tag[1]]++
tagkey[t]=tag[1];tagref[t]=tag[2];tagnum[t]=NR;
print $1 " " $2 " line " NR >"tags.ref"
n=split($2,w,".");