Преглед на файлове

Merge branch 'feature/docs_check_lang_folder_sync' into 'master'

Introduced a CI check if folders with localized documentation are in sync, i.e.…

See merge request idf/esp-idf!2073
Ivan Grokhotkov преди 7 години
родител
ревизия
9ea38560ec
променени са 2 файла, в които са добавени 39 реда и са изтрити 1 реда
  1. 3 1
      .gitlab-ci.yml
  2. 36 0
      docs/check_lang_folder_sync.sh

+ 3 - 1
.gitlab-ci.yml

@@ -208,7 +208,9 @@ build_docs:
       - docs/zh_CN/_build/html
     expire_in: 1 mos
   script:
-    - cd docs/en
+    - cd docs
+    - ./check_lang_folder_sync.sh
+    - cd en
     - make gh-linkcheck
     - make html
     - ../check_doc_warnings.sh

+ 36 - 0
docs/check_lang_folder_sync.sh

@@ -0,0 +1,36 @@
+#!/bin/bash
+#
+# Check if folders with localized documentation are in sync
+#
+# 1. Traverse each folder with language version and generate a sorted list
+#    of all the files inside
+# 2. Compare the sorted lists of files and flag differences
+#
+# Note:
+# All differences between folders with language versions should be resolved
+# before releasing documentation
+#
+
+RESULT=0
+STARS='***************************************************'
+
+find en -type f | cut -d/ -f2- | sort > file_list_en
+find zh_CN -type f | cut -d/ -f2- | sort > file_list_zh_CN
+
+# format is to display new or different filenames
+DIFF_FORMAT="--unchanged-line-format= --old-line-format=[en]:%L --new-line-format=[zh_CN]:%L"
+
+FOLDER_DIFFERENCES=$(diff $DIFF_FORMAT file_list_en file_list_zh_CN)
+if ! [ -z "$FOLDER_DIFFERENCES" ]; then
+    echo "$STARS"
+    echo "Build failed due to the following differences in 'en' and 'zh_CN' folders:"
+    echo "$FOLDER_DIFFERENCES"
+    echo "$STARS"
+    echo "Please synchronize contents of 'en' and 'zh_CN' folders to contain files with identical names"
+    RESULT=1
+fi
+
+# remove temporary files
+rm file_list_en file_list_zh_CN
+
+exit $RESULT