From f8830d6b92b0106febd21552c338da9097303f40 Mon Sep 17 00:00:00 2001 From: Joel Date: Tue, 30 Jul 2024 11:11:05 -0400 Subject: [PATCH] refactor locale and fix ci Refactors the locale github actions workflow to use a matrix strategy, making it much shorter. This also includes a fix to an incorrect use of the -C argument to ctest, which recently started failing in some environments. --- .github/workflows/locale.yml | 478 +++-------------------------------- CMakeLists.txt | 15 +- docs/localization.md | 5 +- tools/cmake/gtest.cmake | 2 +- 4 files changed, 45 insertions(+), 455 deletions(-) diff --git a/.github/workflows/locale.yml b/.github/workflows/locale.yml index a843e3c73..923c87675 100644 --- a/.github/workflows/locale.yml +++ b/.github/workflows/locale.yml @@ -10,11 +10,37 @@ env: CTEST_OUTPUT_ON_FAILURE: 1 jobs: - linux-de-de: - name: "linux, de-de" + locales: + name: "Locale Tests" runs-on: "ubuntu-latest" + strategy: + matrix: + lang: + - "bg_BG.UTF-8" + - "bn_IN.UTF-8" + - "cz_CZ.UTF-8" + - "da_DK.UTF-8" + - "de_DE.UTF-8" + - "el_GR.UTF-8" + - "es_ES.UTF-8" + - "fr_FR.UTF-8" + - "he_IL.UTF-8" + - "hi_IN.UTF-8" + - "hu_HU.UTF-8" + - "it_IT.UTF-8" + - "ja_JP.UTF-8" + - "pl_PL.UTF-8" + - "pt_BR.UTF-8" + - "si_LK.UTF-8" + - "sk_SK.UTF-8" + - "sq_AL.UTF-8" + - "sv_SE.UTF-8" + - "sw_KE.UTF-8" + - "te_IN.UTF-8" + - "tr_TR.UTF-8" + - "zh_CN.UTF-8" env: - LANG: "de_DE.UTF-8" + LANG: ${{ matrix.lang }} steps: - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - name: Configure @@ -22,7 +48,8 @@ jobs: cmake . - name: Check Language run: | - grep -q "STUMPLESS_LANGUAGE \"de-DE\"" include/stumpless/config.h + EXPECTED_LANG=$( echo $LANG | sed 's/\(..\)_\(..\).UTF-8/\1-\2/g' ) + grep -q "STUMPLESS_LANGUAGE \"$EXPECTED_LANG\"" include/stumpless/config.h - name: Build run: | make all @@ -30,446 +57,3 @@ jobs: run: | make check if grep "DEPRECATED" Testing/Temporary/LastTest.log; then exit 1; fi - linux-cz-cz: - name: "linux, cz-cz" - runs-on: "ubuntu-latest" - env: - LANG: "cz_ES.UTF-8" - steps: - - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - name: Configure - run: | - cmake . - - name: Check Language - run: | - grep -q "STUMPLESS_LANGUAGE \"cz-CZ\"" include/stumpless/config.h - - name: Build - run: | - make all - - name: Test - run: | - make check - if grep "DEPRECATED" Testing/Temporary/LastTest.log; then exit 1; fi - linux-es-es: - name: "linux, es-es" - runs-on: "ubuntu-latest" - env: - LANG: "es_ES.UTF-8" - steps: - - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - name: Configure - run: | - cmake . - - name: Check Language - run: | - grep -q "STUMPLESS_LANGUAGE \"es-ES\"" include/stumpless/config.h - - name: Build - run: | - make all - - name: Test - run: | - make check - if grep "DEPRECATED" Testing/Temporary/LastTest.log; then exit 1; fi - linux-fr-fr: - name: "linux, fr-fr" - runs-on: "ubuntu-latest" - env: - LANG: "fr_FR.UTF-8" - steps: - - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - name: Configure - run: | - cmake . - - name: Check Language - run: | - grep -q "STUMPLESS_LANGUAGE \"fr-FR\"" include/stumpless/config.h - - name: Build - run: | - make all - - name: Test - run: | - make check - if grep "DEPRECATED" Testing/Temporary/LastTest.log; then exit 1; fi - linux-it-it: - name: "linux, it-it" - runs-on: "ubuntu-latest" - env: - LANG: "it_IT.UTF-8" - steps: - - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - name: Configure - run: | - cmake . - - name: Check Language - run: | - grep -q "STUMPLESS_LANGUAGE \"it-IT\"" include/stumpless/config.h - - name: Build - run: | - make all - - name: Test - run: | - make check - if grep "DEPRECATED" Testing/Temporary/LastTest.log; then exit 1; fi - linux-sk-sk: - name: "linux, sk-sk" - runs-on: "ubuntu-latest" - env: - LANG: "sk_SK.UTF-8" - steps: - - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - name: Configure - run: | - cmake . - - name: Check Language - run: | - grep -q "STUMPLESS_LANGUAGE \"sk-SK\"" include/stumpless/config.h - - name: Build - run: | - make all - - name: Test - run: | - make check - if grep "DEPRECATED" Testing/Temporary/LastTest.log; then exit 1; fi - linux-tr-tr: - name: "linux, tr-tr" - runs-on: "ubuntu-latest" - env: - LANG: "tr_TR.UTF-8" - steps: - - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - name: Configure - run: | - cmake . - - name: Check Language - run: | - grep -q "STUMPLESS_LANGUAGE \"tr-TR\"" include/stumpless/config.h - - name: Build - run: | - make all - - name: Test - run: | - make check - if grep "DEPRECATED" Testing/Temporary/LastTest.log; then exit 1; fi - linux-pl-pl: - name: "linux, pl-pl" - runs-on: "ubuntu-latest" - env: - LANG: "pl_PL.UTF-8" - steps: - - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - name: Configure - run: | - cmake . - - name: Check Language - run: | - grep -q "STUMPLESS_LANGUAGE \"pl-PL\"" include/stumpless/config.h - - name: Build - run: | - make all - - name: Test - run: | - make check - if grep "DEPRECATED" Testing/Temporary/LastTest.log; then exit 1; fi - linux-hu-hu: - name: "linux, hu-hu" - runs-on: "ubuntu-latest" - env: - LANG: "hu_HU.UTF-8" - steps: - - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - name: Configure - run: | - cmake . - - name: Check Language - run: | - grep -q "STUMPLESS_LANGUAGE \"hu-HU\"" include/stumpless/config.h - - name: Build - run: | - make all - - name: Test - run: | - make check - if grep "DEPRECATED" Testing/Temporary/LastTest.log; then exit 1; fi - linux-sq-al: - name: "linux, sq-al" - runs-on: "ubuntu-latest" - env: - LANG: "sq_AL.UTF-8" - steps: - - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - name: Configure - run: | - cmake . - - name: Check Language - run: | - grep -q "STUMPLESS_LANGUAGE \"sq-AL\"" include/stumpless/config.h - - name: Build - run: | - make all - - name: Test - run: | - make check - if grep "DEPRECATED" Testing/Temporary/LastTest.log; then exit 1; fi - linux-sv-se: - name: "linux, sv-se" - runs-on: "ubuntu-latest" - env: - LANG: "sv_SE.UTF-8" - steps: - - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - name: Configure - run: | - cmake . - - name: Check Language - run: | - grep -q "STUMPLESS_LANGUAGE \"sv-SE\"" include/stumpless/config.h - - name: Build - run: | - make all - - name: Test - run: | - make check - if grep "DEPRECATED" Testing/Temporary/LastTest.log; then exit 1; fi - linux-bg-bg: - name: "linux, bg-bg" - runs-on: "ubuntu-latest" - env: - LANG: "bg_BG.UTF-8" - steps: - - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - name: Configure - run: | - cmake . - - name: Check Language - run: | - grep -q "STUMPLESS_LANGUAGE \"bg-BG\"" include/stumpless/config.h - - name: Build - run: | - make all - - name: Test - run: | - make check - if grep "DEPRECATED" Testing/Temporary/LastTest.log; then exit 1; fi - linux-el-gr: - name: "linux, el-gr" - runs-on: "ubuntu-latest" - env: - LANG: "el_GR.UTF-8" - steps: - - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - name: Configure - run: | - cmake . - - name: Check Language - run: | - grep -q "STUMPLESS_LANGUAGE \"el-GR\"" include/stumpless/config.h - - name: Build - run: | - make all - - name: Test - run: | - make check - if grep "DEPRECATED" Testing/Temporary/LastTest.log; then exit 1; fi - linux-sw-ke: - name: "linux, sw-ke" - runs-on: "ubuntu-latest" - env: - LANG: "sw-KE.UTF-8" - steps: - - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - name: Configure - run: | - cmake . - - name: Check Language - run: | - grep -q "STUMPLESS_LANGUAGE \"sw-KE\"" include/stumpless/config.h - - name: Build - run: | - make all - - name: Test - run: | - make check - if grep "DEPRECATED" Testing/Temporary/LastTest.log; then exit 1; fi - linux-pt-br: - name: "linux, pt-br" - runs-on: "ubuntu-latest" - env: - LANG: "pt_BR.UTF-8" - steps: - - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - name: Configure - run: | - cmake . - - name: Check Language - run: | - grep -q "STUMPLESS_LANGUAGE \"pt-BR\"" include/stumpless/config.h - - name: Build - run: | - make all - - name: Test - run: | - make check - if grep "DEPRECATED" Testing/Temporary/LastTest.log; then exit 1; fi - linux-zh-cn: - name: "linux, zh-cn" - runs-on: "ubuntu-latest" - env: - LANG: "zh_CN.UTF-8" - steps: - - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - name: Configure - run: | - cmake . - - name: Check Language - run: | - grep -q "STUMPLESS_LANGUAGE \"zh-CN\"" include/stumpless/config.h - - name: Build - run: | - make all - - name: Test - run: | - make check - if grep "DEPRECATED" Testing/Temporary/LastTest.log; then exit 1; fi - - name: Docs - run: | - make docs - linux-hi-in: - name: "linux, hi-in" - runs-on: "ubuntu-latest" - env: - LANG: "hi_IN.UTF-8" - steps: - - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - name: Configure - run: | - cmake . - - name: Check Language - run: | - grep -q "STUMPLESS_LANGUAGE \"hi-IN\"" include/stumpless/config.h - - name: Build - run: | - make all - - name: Test - run: | - make check - if grep "DEPRECATED" Testing/Temporary/LastTest.log; then exit 1; fi - linux-bn-in: - name: "linux, bn-in" - runs-on: "ubuntu-latest" - env: - LANG: "bn_IN.UTF-8" - steps: - - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - name: Configure - run: | - cmake . - - name: Check Language - run: | - grep -q "STUMPLESS_LANGUAGE \"bn-IN\"" include/stumpless/config.h - - name: Build - run: | - make all - - name: Test - run: | - make check - if grep "DEPRECATED" Testing/Temporary/LastTest.log; then exit 1; fi - linux-te-in: - name: "linux, te-in" - runs-on: "ubuntu-latest" - env: - LANG: "te_IN.UTF-8" - steps: - - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - name: Configure - run: | - cmake . - - name: Check Language - run: | - grep -q "STUMPLESS_LANGUAGE \"te-IN\"" include/stumpless/config.h - - name: Build - run: | - make all - - name: Test - run: | - make check - if grep "DEPRECATED" Testing/Temporary/LastTest.log; then exit 1; fi - linux-da-dk: - name: "linux, da-dk" - runs-on: "ubuntu-latest" - env: - LANG: "da_DK.UTF-8" - steps: - - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - name: Configure - run: | - cmake . - - name: Check Language - run: | - grep -q "STUMPLESS_LANGUAGE \"da-DK\"" include/stumpless/config.h - - name: Build - run: | - make all - - name: Test - run: | - make check - if grep "DEPRECATED" Testing/Temporary/LastTest.log; then exit 1; fi - linux-he-il: - name: "linux, he-il" - runs-on: "ubuntu-latest" - env: - LANG: "he_IL.UTF-8" - steps: - - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - name: Configure - run: | - cmake . - - name: Check Language - run: | - grep -q "STUMPLESS_LANGUAGE \"he-IL\"" include/stumpless/config.h - - name: Build - run: | - make all - - name: Test - run: | - make check - if grep "DEPRECATED" Testing/Temporary/LastTest.log; then exit 1; fi - linux-si-lk: - name: "linux, si-lk" - runs-on: "ubuntu-latest" - env: - LANG: "si_LK.UTF-8" - steps: - - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - name: Configure - run: | - cmake . - - name: Check Language - run: | - grep -q "STUMPLESS_LANGUAGE \"si-LK\"" include/stumpless/config.h - - name: Build - run: | - make all - - name: Test - run: | - make check - if grep "DEPRECATED" Testing/Temporary/LastTest.log; then exit 1; fi - linux-ja-jp: - name: "linux, ja-jp" - runs-on: "ubuntu-latest" - env: - LANG: "ja_JP.UTF-8" - steps: - - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - name: Configure - run: | - cmake . - - name: Check Language - run: | - grep -q "STUMPLESS_LANGUAGE \"ja-JP\"" include/stumpless/config.h - - name: Build - run: | - make all - - name: Test - run: | - make check - if grep "DEPRECATED" Testing/Temporary/LastTest.log; then exit 1; fi \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index c485c5778..6db68a49e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1088,10 +1088,17 @@ add_custom_target(build-test DEPENDS ${STUMPLESS_FUNCTION_TESTS} ) -add_custom_target(check - COMMAND ${CMAKE_CTEST_COMMAND} -C ${CMAKE_BUILD_TYPE} - DEPENDS ${STUMPLESS_FUNCTION_TESTS} -) +if(CMAKE_CONFIGURATION_TYPES) + add_custom_target(check + COMMAND ${CMAKE_CTEST_COMMAND} -C $ + DEPENDS ${STUMPLESS_FUNCTION_TESTS} + ) +else() + add_custom_target(check + COMMAND ${CMAKE_CTEST_COMMAND} + DEPENDS ${STUMPLESS_FUNCTION_TESTS} + ) +endif() # examples diff --git a/docs/localization.md b/docs/localization.md index 6ada4d101..4f2cb5cb6 100644 --- a/docs/localization.md +++ b/docs/localization.md @@ -116,9 +116,8 @@ include the new header. The last step is to add new CI builds for the new locale to make sure that there are no immediate problems and catch any future ones that arise. This is done by updating the `.github/workflows/locale.yml` configuration file with a -build profile for the new language. This is relatively simple: just copy one of -the existing jobs (for example `linux-es-es`) and update it to use your new -locale. +build profile for the new language. This is relatively simple: just make a new +line in the build matrix with the new language. Finally, add a flag for the new locale to the project README (in the Key Features section) to show off your hard work to everyone else! diff --git a/tools/cmake/gtest.cmake b/tools/cmake/gtest.cmake index ab669c133..003670902 100644 --- a/tools/cmake/gtest.cmake +++ b/tools/cmake/gtest.cmake @@ -66,7 +66,7 @@ if(${gtest_lib} STREQUAL "gtest_lib-NOTFOUND" OR ${gtest_main_lib} STREQUAL "gte ) ExternalProject_Add(gtest - URL https://github.com/google/googletest/archive/44c03643cfbc649488a0f437cd18e05f11960d19.zip + URL https://github.com/google/googletest/archive/e39786088138f2749d64e9e90e0f9902daa77c40.zip PREFIX ${CMAKE_CURRENT_BINARY_DIR}/gtest CMAKE_ARGS -Dgtest_force_shared_crt=ON -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_SH=${CMAKE_SH} -DBUILD_SHARED_LIBS=ON -DCMAKE_CXX_FLAGS=${google_libs_cxx_flags} UPDATE_COMMAND ""