CI: Check help tags for errors (duplicates, missing, etc) (#13865)

Commit: 
https://github.com/vim/vim/commit/8102a4c463c21f3bba4f27f0dbc402b9850de915
Author: Christian Brabandt <[email protected]>
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 <[email protected]>

diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index b51cadeab..0efadcf9b 100644
--- 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
diff --git a/runtime/doc/maketags.awk b/runtime/doc/maketags.awk
index c6b2cd91f..20b2b081a 100644
--- 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,".");

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/E1rP5FC-00C98o-HH%40256bit.org.

Raspunde prin e-mail lui