44 push :
55 pull_request :
66
7- env :
8- LUA_VERSION : " 5.5"
9-
107jobs :
118 build-linux :
129 name : Linux (${{ matrix.platform.label }}, ${{ matrix.compiler.label }}, ${{ matrix.configure.label }})
@@ -43,14 +40,45 @@ jobs:
4340 fetch-depth : 0
4441 submodules : recursive
4542
46- - name : Install dependencies
43+ - name : Detect latest Lua dev package
44+ id : detect_lua
45+ shell : bash
4746 run : |
47+ set -euo pipefail
48+
4849 sudo apt-get update -y -qq
50+
51+ CANDIDATES="$(apt-cache pkgnames | grep -E '^liblua[0-9]+\.[0-9]+-dev$' || true)"
52+
53+ if [ -z "$CANDIDATES" ]; then
54+ echo "No libluaX.Y-dev package found"
55+ exit 1
56+ fi
57+
58+ BEST_PKG="$(
59+ printf '%s\n' "$CANDIDATES" \
60+ | sed -E 's/^liblua([0-9]+\.[0-9]+)-dev$/\1 &/' \
61+ | sort -V \
62+ | tail -n1 \
63+ | awk '{print $2}'
64+ )"
65+
66+ if [ -z "$BEST_PKG" ]; then
67+ echo "Failed to determine Lua package"
68+ exit 1
69+ fi
70+
71+ echo "lua_pkg=$BEST_PKG" >> "$GITHUB_OUTPUT"
72+ echo "Using $BEST_PKG"
73+
74+
75+ - name : Install dependencies
76+ run : |
4977 sudo apt-get install -y \
5078 libyajl-dev \
5179 libcurl4-openssl-dev \
5280 liblmdb-dev \
53- liblua ${{ env.LUA_VERSION }}-dev \
81+ ${{ steps.detect_lua.outputs.lua_pkg }} \
5482 libmaxminddb-dev \
5583 libpcre2-dev \
5684 libxml2-dev \
6391 python3 \
6492 python3-venv
6593
94+ - name : Show Lua installation
95+ run : |
96+ which lua || true
97+ lua -v || true
98+ dpkg -l | grep lua || true
6699
67100 - name : Run build preparation script
68101 run : ./build.sh
@@ -83,11 +116,12 @@ jobs:
83116
84117 build-macos :
85118 name : macOS (${{ matrix.configure.label }})
86- runs-on : macos-15
119+ runs-on : ${{ matrix.os }}
87120
88121 strategy :
89122 fail-fast : false
90123 matrix :
124+ os : [macos-15, macos-26]
91125 configure :
92126 - { label: "with parser generation", opt: "--enable-parser-generation" }
93127 - { label: "without curl", opt: "--without-curl" }
@@ -114,14 +148,13 @@ jobs:
114148 libtool \
115149 yajl \
116150 lmdb \
117- lua@${{ env.LUA_VERSION }} \
151+ lua \
118152 libmaxminddb \
119153 libxml2 \
120154 ssdeep \
121155 pcre \
122156 bison \
123- flex \
124- python3
157+ flex
125158
126159 - name : Run build preparation script
127160 run : ./build.sh
@@ -202,7 +235,7 @@ jobs:
202235
203236 cppcheck :
204237 name : Static analysis (cppcheck)
205- runs-on : macos-15
238+ runs-on : macos-26
206239
207240 steps :
208241 - uses : actions/checkout@v6
@@ -212,7 +245,7 @@ jobs:
212245
213246 - name : Install cppcheck
214247 run : |
215- brew install autoconf automake libtool cppcheck libmaxminddb yajl lua@${{ env.LUA_VERSION }} lmdb ssdeep python3
248+ brew install autoconf automake libtool cppcheck libmaxminddb yajl lua lmdb ssdeep
216249
217250 - name : Configure project
218251 run : |
@@ -240,11 +273,47 @@ jobs:
240273 with :
241274 fetch-depth : 0
242275 submodules : recursive
276+
277+ - name : Detect latest Lua packages
278+ id : detect_lua
279+ shell : bash
280+ run : |
281+ set -euo pipefail
282+
283+ apt-get update
284+
285+ CANDIDATES="$(apt-cache pkgnames | grep -E '^liblua[0-9]+\.[0-9]+-dev$' || true)"
286+
287+ if [ -z "$CANDIDATES" ]; then
288+ echo "No libluaX.Y-dev package found"
289+ exit 1
290+ fi
291+
292+ BEST_PKG="$(
293+ printf '%s\n' "$CANDIDATES" \
294+ | sed -E 's/^liblua([0-9]+\.[0-9]+)-dev$/\1 &/' \
295+ | sort -V \
296+ | tail -n1 \
297+ | awk '{print $2}'
298+ )"
243299
300+ if [ -z "$BEST_PKG" ]; then
301+ echo "Failed to determine Lua dev package"
302+ printf '%s\n' "$CANDIDATES"
303+ exit 1
304+ fi
305+
306+ BEST_VER="$(printf '%s\n' "$BEST_PKG" | sed -E 's/^liblua([0-9]+\.[0-9]+)-dev$/\1/')"
307+ LUA_PKG="lua$BEST_VER"
308+
309+ echo "lua_dev_pkg=$BEST_PKG" >> "$GITHUB_OUTPUT"
310+ echo "lua_pkg=$LUA_PKG" >> "$GITHUB_OUTPUT"
311+
312+ echo "Using dev package: $BEST_PKG"
313+ echo "Using interpreter: $LUA_PKG"
244314
245315 - name : Install dependencies (v2 style)
246316 run : |
247- apt-get update
248317 apt-get install -y \
249318 autoconf \
250319 automake \
@@ -255,7 +324,8 @@ jobs:
255324 libyajl-dev \
256325 libcurl4-openssl-dev \
257326 liblmdb-dev \
258- liblua${{ env.LUA_VERSION }}-dev \
327+ ${{ steps.detect_lua.outputs.lua_dev_pkg }} \
328+ ${{ steps.detect_lua.outputs.lua_pkg }} \
259329 libmaxminddb-dev \
260330 libpcre2-dev \
261331 libxml2-dev \
@@ -265,7 +335,13 @@ jobs:
265335 flex \
266336 python3 \
267337 python3-venv
268-
338+
339+ - name : Show Lua installation
340+ run : |
341+ which lua || true
342+ lua -v || true
343+ dpkg -l | grep lua || true
344+
269345 - name : Run build preparation script
270346 run : ./build.sh
271347
0 commit comments