From 8b082fb20b28209522edf7f54b2468610c5dcea3 Mon Sep 17 00:00:00 2001 From: Easton97-Jens <66330090+Easton97-Jens@users.noreply.github.com> Date: Sun, 29 Mar 2026 11:59:38 +0200 Subject: [PATCH 01/11] Update ci_new.yml --- .github/workflows/ci_new.yml | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci_new.yml b/.github/workflows/ci_new.yml index 27020ae6a..e5149fd46 100644 --- a/.github/workflows/ci_new.yml +++ b/.github/workflows/ci_new.yml @@ -4,6 +4,9 @@ on: push: pull_request: +env: + LUA_VERSION: "5.5" + jobs: build-linux: name: Linux (${{ matrix.platform.label }}, ${{ matrix.compiler.label }}, ${{ matrix.configure.label }}) @@ -47,7 +50,7 @@ jobs: libyajl-dev \ libcurl4-openssl-dev \ liblmdb-dev \ - liblua5.2-dev \ + liblua${{ env.LUA_VERSION }}-dev \ libmaxminddb-dev \ libpcre2-dev \ libxml2-dev \ @@ -56,7 +59,9 @@ jobs: libpcre3-dev \ bison \ flex \ - pkg-config + pkg-config \ + python3 \ + python3-venv - name: Run build preparation script @@ -109,13 +114,14 @@ jobs: libtool \ yajl \ lmdb \ - lua \ + lua@${{ env.LUA_VERSION }} \ libmaxminddb \ libxml2 \ ssdeep \ pcre \ bison \ - flex + flex \ + python3 - name: Run build preparation script run: ./build.sh @@ -206,7 +212,7 @@ jobs: - name: Install cppcheck run: | - brew install autoconf automake libtool cppcheck libmaxminddb yajl lua lmdb ssdeep + brew install autoconf automake libtool cppcheck libmaxminddb yajl lua@${{ env.LUA_VERSION }} lmdb ssdeep python3 - name: Configure project run: | @@ -249,14 +255,16 @@ jobs: libyajl-dev \ libcurl4-openssl-dev \ liblmdb-dev \ - liblua5.2-dev \ + liblua${{ env.LUA_VERSION }}-dev \ libmaxminddb-dev \ libpcre2-dev \ libxml2-dev \ libfuzzy-dev \ pcre2-utils \ bison \ - flex + flex \ + python3 \ + python3-venv - name: Run build preparation script run: ./build.sh From 8214a3460f518aee7c739c87284ff66943402a09 Mon Sep 17 00:00:00 2001 From: Easton97-Jens <66330090+Easton97-Jens@users.noreply.github.com> Date: Sun, 29 Mar 2026 12:03:59 +0200 Subject: [PATCH 02/11] Update ci.yml --- .github/workflows/ci.yml | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d6895b825..218fc6a6d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -3,12 +3,16 @@ name: Quality Assurance on: push: pull_request: + +env: + LUA_VERSION: "5.5" jobs: build-linux: name: Linux (${{ matrix.platform.label }}, ${{ matrix.compiler.label }}, ${{ matrix.configure.label }}) runs-on: ${{ matrix.os }} strategy: + fail-fast: false matrix: os: [ubuntu-22.04] platform: @@ -40,7 +44,7 @@ jobs: sudo apt-get install -y libyajl-dev:${{ matrix.platform.arch }} \ libcurl4-openssl-dev:${{ matrix.platform.arch }} \ liblmdb-dev:${{ matrix.platform.arch }} \ - liblua5.2-dev:${{ matrix.platform.arch }} \ + liblua${{ env.LUA_VERSION }}-dev:${{ matrix.platform.arch }} \ libmaxminddb-dev:${{ matrix.platform.arch }} \ libpcre2-dev:${{ matrix.platform.arch }} \ pcre2-utils:${{ matrix.platform.arch }} \ @@ -56,9 +60,9 @@ jobs: run: | sudo apt-get install -y libgeoip-dev:${{ matrix.platform.arch }} \ libfuzzy-dev:${{ matrix.platform.arch }} - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: - submodules: true + submodules: recursive fetch-depth: 0 - name: build.sh run: ./build.sh @@ -77,6 +81,7 @@ jobs: name: macOS (${{ matrix.configure.label }}) runs-on: ${{ matrix.os }} strategy: + fail-fast: false matrix: os: [macos-14] configure: @@ -99,16 +104,16 @@ jobs: libtool \ yajl \ lmdb \ - lua \ + lua@${{ env.LUA_VERSION }} \ libmaxminddb \ libxml2 \ ssdeep \ pcre \ bison \ flex - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: - submodules: true + submodules: recursive fetch-depth: 0 - name: Build GeoIP run: | @@ -134,6 +139,7 @@ jobs: name: Windows (${{ matrix.platform.label }}, ${{ matrix.configure.label }}) runs-on: ${{ matrix.os }} strategy: + fail-fast: false matrix: os: [windows-2022] platform: @@ -147,9 +153,9 @@ jobs: - {label: "wo libxml", opt: "-DWITH_LIBXML2=OFF" } - {label: "with lmdb", opt: "-DWITH_LMDB=ON" } steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: - submodules: true + submodules: recursive fetch-depth: 0 - name: Install Conan run: | @@ -197,7 +203,7 @@ jobs: cppcheck - uses: actions/checkout@v4 with: - submodules: true + submodules: recursive fetch-depth: 0 - name: configure run: | From a65df3f75ee195c5de6840d26705a3d2c0636f42 Mon Sep 17 00:00:00 2001 From: Easton97-Jens <66330090+Easton97-Jens@users.noreply.github.com> Date: Sun, 29 Mar 2026 12:06:11 +0200 Subject: [PATCH 03/11] Update ci.yml --- .github/workflows/ci.yml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 218fc6a6d..108ac5d0f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -48,7 +48,7 @@ jobs: libmaxminddb-dev:${{ matrix.platform.arch }} \ libpcre2-dev:${{ matrix.platform.arch }} \ pcre2-utils:${{ matrix.platform.arch }} \ - bison flex + bison flex python3 python3-venv - name: Setup Dependencies (x32) if: ${{ matrix.platform.label == 'x32' }} run: | @@ -110,7 +110,8 @@ jobs: ssdeep \ pcre \ bison \ - flex + flex \ + python3 - uses: actions/checkout@v6 with: submodules: recursive @@ -200,8 +201,9 @@ jobs: brew install autoconf \ automake \ libtool \ - cppcheck - - uses: actions/checkout@v4 + cppcheck \ + python3 + - uses: actions/checkout@v6 with: submodules: recursive fetch-depth: 0 From 8b9659c326f8c2fb0630103221cc911613c4eda3 Mon Sep 17 00:00:00 2001 From: Easton97-Jens <66330090+Easton97-Jens@users.noreply.github.com> Date: Sun, 29 Mar 2026 14:55:52 +0200 Subject: [PATCH 04/11] Update ci.yml --- .github/workflows/ci.yml | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 108ac5d0f..c96071bd0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -5,7 +5,7 @@ on: pull_request: env: - LUA_VERSION: "5.5" + LUA_VERSION: "5.4" jobs: build-linux: @@ -58,8 +58,8 @@ jobs: - name: Setup Dependencies (x64) if: ${{ matrix.platform.label == 'x64' }} run: | - sudo apt-get install -y libgeoip-dev:${{ matrix.platform.arch }} \ - libfuzzy-dev:${{ matrix.platform.arch }} + sudo apt-get install -y libfuzzy-dev:${{ matrix.platform.arch }} + - uses: actions/checkout@v6 with: submodules: recursive @@ -116,16 +116,6 @@ jobs: with: submodules: recursive fetch-depth: 0 - - name: Build GeoIP - run: | - git clone --depth 1 --no-checkout https://github.com/maxmind/geoip-api-c.git - cd geoip-api-c - git fetch --tags - # Check out the last release, v1.6.12 - git checkout 4b526e7331ca1d692b74a0509ddcc725622ed31a - autoreconf --install - ./configure --disable-dependency-tracking --disable-silent-rules --prefix=/opt/homebrew - make install - name: build.sh run: ./build.sh - name: configure From 9d9986e74f99aae7370d1b4f107d7e9a8dd028b5 Mon Sep 17 00:00:00 2001 From: Easton97-Jens <66330090+Easton97-Jens@users.noreply.github.com> Date: Sun, 29 Mar 2026 15:12:21 +0200 Subject: [PATCH 05/11] Update ci_new.yml --- .github/workflows/ci_new.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci_new.yml b/.github/workflows/ci_new.yml index e5149fd46..e7ba0b028 100644 --- a/.github/workflows/ci_new.yml +++ b/.github/workflows/ci_new.yml @@ -50,7 +50,7 @@ jobs: libyajl-dev \ libcurl4-openssl-dev \ liblmdb-dev \ - liblua${{ env.LUA_VERSION }}-dev \ + liblua5.4-dev \ libmaxminddb-dev \ libpcre2-dev \ libxml2-dev \ From 814e88fc37bc0f89ec912b13d4281e479a23728d Mon Sep 17 00:00:00 2001 From: Easton97-Jens <66330090+Easton97-Jens@users.noreply.github.com> Date: Sun, 29 Mar 2026 18:07:08 +0200 Subject: [PATCH 06/11] Update ci.yml lua dynamisch --- .github/workflows/ci.yml | 46 +++++++++++++++++++++++++++++++++++----- 1 file changed, 41 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c96071bd0..45d4b1ea2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -4,9 +4,6 @@ on: push: pull_request: -env: - LUA_VERSION: "5.4" - jobs: build-linux: name: Linux (${{ matrix.platform.label }}, ${{ matrix.compiler.label }}, ${{ matrix.configure.label }}) @@ -37,6 +34,45 @@ jobs: - platform: {label: "x32"} configure: {label: "wo ssdeep"} steps: + - name: Detect latest Lua dev package + id: detect_lua + shell: bash + run: | + set -euo pipefail + + sudo dpkg --add-architecture ${{ matrix.platform.arch }} + sudo apt-get update -y -qq + + CANDIDATES="$(apt-cache search '^liblua[0-9]+\.[0-9]+-dev$' | awk '{print $1}')" + + if [ -z "$CANDIDATES" ]; then + echo "No libluaX.Y-dev package found" + exit 1 + fi + + VALID_PACKAGES="" + for pkg in $CANDIDATES; do + if apt-cache show "${pkg}:${{ matrix.platform.arch }}" >/dev/null 2>&1; then + VALID_PACKAGES="${VALID_PACKAGES}${pkg}"$'\n' + fi + done + + if [ -z "$VALID_PACKAGES" ]; then + echo "No Lua package available for architecture ${{ matrix.platform.arch }}" + exit 1 + fi + + BEST_PKG="$( + printf '%s\n' "$VALID_PACKAGES" \ + | sed -E 's/^liblua([0-9]+\.[0-9]+)-dev$/\1 &/' \ + | sort -V \ + | tail -n1 \ + | awk '{print $2}' + )" + + echo "lua_pkg=$BEST_PKG" >> "$GITHUB_OUTPUT" + echo "Using $BEST_PKG for ${{ matrix.platform.arch }}" + - name: Setup Dependencies (common) run: | sudo dpkg --add-architecture ${{ matrix.platform.arch }} @@ -44,7 +80,7 @@ jobs: sudo apt-get install -y libyajl-dev:${{ matrix.platform.arch }} \ libcurl4-openssl-dev:${{ matrix.platform.arch }} \ liblmdb-dev:${{ matrix.platform.arch }} \ - liblua${{ env.LUA_VERSION }}-dev:${{ matrix.platform.arch }} \ + ${{ steps.detect_lua.outputs.lua_pkg }}:${{ matrix.platform.arch }} \ libmaxminddb-dev:${{ matrix.platform.arch }} \ libpcre2-dev:${{ matrix.platform.arch }} \ pcre2-utils:${{ matrix.platform.arch }} \ @@ -104,7 +140,7 @@ jobs: libtool \ yajl \ lmdb \ - lua@${{ env.LUA_VERSION }} \ + lua \ libmaxminddb \ libxml2 \ ssdeep \ From e68f6b1a9b5ab81f7f916b5b9874749dd8920415 Mon Sep 17 00:00:00 2001 From: Easton97-Jens <66330090+Easton97-Jens@users.noreply.github.com> Date: Sun, 29 Mar 2026 18:12:04 +0200 Subject: [PATCH 07/11] Enhance CI to detect latest Lua dev package Updated CI workflow to dynamically detect and install the latest Lua development package instead of using a fixed version. --- .github/workflows/ci_new.yml | 67 ++++++++++++++++++++++++++++++------ 1 file changed, 56 insertions(+), 11 deletions(-) diff --git a/.github/workflows/ci_new.yml b/.github/workflows/ci_new.yml index e7ba0b028..560ffcab8 100644 --- a/.github/workflows/ci_new.yml +++ b/.github/workflows/ci_new.yml @@ -4,9 +4,6 @@ on: push: pull_request: -env: - LUA_VERSION: "5.5" - jobs: build-linux: name: Linux (${{ matrix.platform.label }}, ${{ matrix.compiler.label }}, ${{ matrix.configure.label }}) @@ -43,14 +40,39 @@ jobs: fetch-depth: 0 submodules: recursive - - name: Install dependencies + - name: Detect latest Lua dev package + id: detect_lua + shell: bash run: | + set -euo pipefail + sudo apt-get update -y -qq + + CANDIDATES="$(apt-cache search '^liblua[0-9]+\.[0-9]+-dev$' | awk '{print $1}')" + + if [ -z "$CANDIDATES" ]; then + echo "No libluaX.Y-dev package found" + exit 1 + fi + + BEST_PKG="$( + printf '%s\n' "$CANDIDATES" \ + | sed -E 's/^liblua([0-9]+\.[0-9]+)-dev$/\1 &/' \ + | sort -V \ + | tail -n1 \ + | awk '{print $2}' + )" + + echo "lua_pkg=$BEST_PKG" >> "$GITHUB_OUTPUT" + echo "Using $BEST_PKG" + + - name: Install dependencies + run: | sudo apt-get install -y \ libyajl-dev \ libcurl4-openssl-dev \ liblmdb-dev \ - liblua5.4-dev \ + ${{ steps.detect_lua.outputs.lua_pkg }} \ libmaxminddb-dev \ libpcre2-dev \ libxml2-dev \ @@ -63,7 +85,6 @@ jobs: python3 \ python3-venv - - name: Run build preparation script run: ./build.sh @@ -114,7 +135,7 @@ jobs: libtool \ yajl \ lmdb \ - lua@${{ env.LUA_VERSION }} \ + lua \ libmaxminddb \ libxml2 \ ssdeep \ @@ -212,7 +233,7 @@ jobs: - name: Install cppcheck run: | - brew install autoconf automake libtool cppcheck libmaxminddb yajl lua@${{ env.LUA_VERSION }} lmdb ssdeep python3 + brew install autoconf automake libtool cppcheck libmaxminddb yajl lua lmdb ssdeep python3 - name: Configure project run: | @@ -240,11 +261,35 @@ jobs: with: fetch-depth: 0 submodules: recursive + + - name: Detect latest Lua dev package + id: detect_lua + shell: bash + run: | + set -euo pipefail + + apt-get update + CANDIDATES="$(apt-cache search '^liblua[0-9]+\.[0-9]+-dev$' | awk '{print $1}')" + + if [ -z "$CANDIDATES" ]; then + echo "No libluaX.Y-dev package found" + exit 1 + fi + + BEST_PKG="$( + printf '%s\n' "$CANDIDATES" \ + | sed -E 's/^liblua([0-9]+\.[0-9]+)-dev$/\1 &/' \ + | sort -V \ + | tail -n1 \ + | awk '{print $2}' + )" + + echo "lua_pkg=$BEST_PKG" >> "$GITHUB_OUTPUT" + echo "Using $BEST_PKG" - name: Install dependencies (v2 style) run: | - apt-get update apt-get install -y \ autoconf \ automake \ @@ -255,7 +300,7 @@ jobs: libyajl-dev \ libcurl4-openssl-dev \ liblmdb-dev \ - liblua${{ env.LUA_VERSION }}-dev \ + ${{ steps.detect_lua.outputs.lua_pkg }} \ libmaxminddb-dev \ libpcre2-dev \ libxml2-dev \ @@ -265,7 +310,7 @@ jobs: flex \ python3 \ python3-venv - + - name: Run build preparation script run: ./build.sh From b50a48d175c4bf20876d71d4b13dba2fa6a573ca Mon Sep 17 00:00:00 2001 From: Easton97-Jens <66330090+Easton97-Jens@users.noreply.github.com> Date: Sun, 29 Mar 2026 18:15:29 +0200 Subject: [PATCH 08/11] Update ci.yml --- .github/workflows/ci.yml | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 45d4b1ea2..4dd022320 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -40,38 +40,30 @@ jobs: run: | set -euo pipefail - sudo dpkg --add-architecture ${{ matrix.platform.arch }} sudo apt-get update -y -qq - CANDIDATES="$(apt-cache search '^liblua[0-9]+\.[0-9]+-dev$' | awk '{print $1}')" + CANDIDATES="$(apt-cache pkgnames | grep -E '^liblua[0-9]+\.[0-9]+-dev$' || true)" if [ -z "$CANDIDATES" ]; then echo "No libluaX.Y-dev package found" exit 1 fi - VALID_PACKAGES="" - for pkg in $CANDIDATES; do - if apt-cache show "${pkg}:${{ matrix.platform.arch }}" >/dev/null 2>&1; then - VALID_PACKAGES="${VALID_PACKAGES}${pkg}"$'\n' - fi - done - - if [ -z "$VALID_PACKAGES" ]; then - echo "No Lua package available for architecture ${{ matrix.platform.arch }}" - exit 1 - fi - BEST_PKG="$( - printf '%s\n' "$VALID_PACKAGES" \ + printf '%s\n' "$CANDIDATES" \ | sed -E 's/^liblua([0-9]+\.[0-9]+)-dev$/\1 &/' \ | sort -V \ | tail -n1 \ | awk '{print $2}' )" + if [ -z "$BEST_PKG" ]; then + echo "Failed to determine Lua package" + exit 1 + fi + echo "lua_pkg=$BEST_PKG" >> "$GITHUB_OUTPUT" - echo "Using $BEST_PKG for ${{ matrix.platform.arch }}" + echo "Using $BEST_PKG" - name: Setup Dependencies (common) run: | From 6708f71a084e35ded3496dd069838043cf2c9cc9 Mon Sep 17 00:00:00 2001 From: Easton97-Jens <66330090+Easton97-Jens@users.noreply.github.com> Date: Sun, 29 Mar 2026 18:35:35 +0200 Subject: [PATCH 09/11] Update Lua package detection in CI workflow --- .github/workflows/ci_new.yml | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci_new.yml b/.github/workflows/ci_new.yml index 560ffcab8..fd48381bc 100644 --- a/.github/workflows/ci_new.yml +++ b/.github/workflows/ci_new.yml @@ -262,7 +262,7 @@ jobs: fetch-depth: 0 submodules: recursive - - name: Detect latest Lua dev package + - name: Detect latest Lua packages id: detect_lua shell: bash run: | @@ -270,7 +270,7 @@ jobs: apt-get update - CANDIDATES="$(apt-cache search '^liblua[0-9]+\.[0-9]+-dev$' | awk '{print $1}')" + CANDIDATES="$(apt-cache pkgnames | grep -E '^liblua[0-9]+\.[0-9]+-dev$' || true)" if [ -z "$CANDIDATES" ]; then echo "No libluaX.Y-dev package found" @@ -285,8 +285,20 @@ jobs: | awk '{print $2}' )" - echo "lua_pkg=$BEST_PKG" >> "$GITHUB_OUTPUT" - echo "Using $BEST_PKG" + if [ -z "$BEST_PKG" ]; then + echo "Failed to determine Lua dev package" + printf '%s\n' "$CANDIDATES" + exit 1 + fi + + BEST_VER="$(printf '%s\n' "$BEST_PKG" | sed -E 's/^liblua([0-9]+\.[0-9]+)-dev$/\1/')" + LUA_PKG="lua$BEST_VER" + + echo "lua_dev_pkg=$BEST_PKG" >> "$GITHUB_OUTPUT" + echo "lua_pkg=$LUA_PKG" >> "$GITHUB_OUTPUT" + + echo "Using dev package: $BEST_PKG" + echo "Using interpreter: $LUA_PKG" - name: Install dependencies (v2 style) run: | @@ -300,6 +312,7 @@ jobs: libyajl-dev \ libcurl4-openssl-dev \ liblmdb-dev \ + ${{ steps.detect_lua.outputs.lua_dev_pkg }} \ ${{ steps.detect_lua.outputs.lua_pkg }} \ libmaxminddb-dev \ libpcre2-dev \ @@ -311,6 +324,12 @@ jobs: python3 \ python3-venv + - name: Show Lua installation + run: | + which lua || true + lua -v || true + dpkg -l | grep lua || true + - name: Run build preparation script run: ./build.sh From 9823d8e9bf587c215196e82967a31752d7e21a43 Mon Sep 17 00:00:00 2001 From: Easton97-Jens <66330090+Easton97-Jens@users.noreply.github.com> Date: Mon, 30 Mar 2026 10:13:26 +0200 Subject: [PATCH 10/11] Remove python3 from CI workflow installation Removed python3 from the installation steps in the CI workflow. --- .github/workflows/ci_new.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci_new.yml b/.github/workflows/ci_new.yml index fd48381bc..9eeb5d8d0 100644 --- a/.github/workflows/ci_new.yml +++ b/.github/workflows/ci_new.yml @@ -141,8 +141,7 @@ jobs: ssdeep \ pcre \ bison \ - flex \ - python3 + flex - name: Run build preparation script run: ./build.sh @@ -233,7 +232,7 @@ jobs: - name: Install cppcheck run: | - brew install autoconf automake libtool cppcheck libmaxminddb yajl lua lmdb ssdeep python3 + brew install autoconf automake libtool cppcheck libmaxminddb yajl lua lmdb ssdeep - name: Configure project run: | From e68ad1c8259590bcdb9c74cd956456e72e7ed828 Mon Sep 17 00:00:00 2001 From: Easton97-Jens <66330090+Easton97-Jens@users.noreply.github.com> Date: Mon, 30 Mar 2026 10:13:57 +0200 Subject: [PATCH 11/11] Update CI workflow to remove python3 installation Removed python3 from the installation list in CI workflow. --- .github/workflows/ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4dd022320..9add866e4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -138,8 +138,8 @@ jobs: ssdeep \ pcre \ bison \ - flex \ - python3 + flex + - uses: actions/checkout@v6 with: submodules: recursive @@ -219,8 +219,8 @@ jobs: brew install autoconf \ automake \ libtool \ - cppcheck \ - python3 + cppcheck + - uses: actions/checkout@v6 with: submodules: recursive