changeset 34129:aa539262b6a7

CI: Check help tags for errors (duplicates, missing, etc) (#13865) Commit: https://github.com/vim/vim/commit/8102a4c463c21f3bba4f27f0dbc402b9850de915 Author: Christian Brabandt <cb@256bit.org> Date: Sun Jan 14 18:24:05 2024 +0000 CI: Check help tags for errors (duplicates, missing, etc) (https://github.com/vim/vim/issues/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>
author Christian Brabandt <cb@256bit.org>
date Sun, 14 Jan 2024 19:30:02 +0100
parents 575b6a99b81c
children 2ead2e7321c8
files .github/workflows/ci.yml runtime/doc/maketags.awk
diffstat 2 files changed, 13 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -265,7 +265,12 @@ jobs:
         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
--- a/runtime/doc/maketags.awk
+++ b/runtime/doc/maketags.awk
@@ -21,6 +21,13 @@ NR == 1 { nf=split(FILENAME,f,".")
 	gsub(/%/,"\\&#37;");
 
 	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,".");