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,39 @@ 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 search '^liblua[0-9]+\.[0-9]+-dev$' | awk '{print $1}')"
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+ echo "lua_pkg=$BEST_PKG" >> "$GITHUB_OUTPUT"
67+ echo "Using $BEST_PKG"
68+
69+ - name : Install dependencies
70+ run : |
4971 sudo apt-get install -y \
5072 libyajl-dev \
5173 libcurl4-openssl-dev \
5274 liblmdb-dev \
53- liblua5.4-dev \
75+ ${{ steps.detect_lua.outputs.lua_pkg }} \
5476 libmaxminddb-dev \
5577 libpcre2-dev \
5678 libxml2-dev \
6385 python3 \
6486 python3-venv
6587
66-
6788 - name : Run build preparation script
6889 run : ./build.sh
6990
@@ -114,7 +135,7 @@ jobs:
114135 libtool \
115136 yajl \
116137 lmdb \
117- lua@${{ env.LUA_VERSION }} \
138+ lua \
118139 libmaxminddb \
119140 libxml2 \
120141 ssdeep \
@@ -212,7 +233,7 @@ jobs:
212233
213234 - name : Install cppcheck
214235 run : |
215- brew install autoconf automake libtool cppcheck libmaxminddb yajl lua@${{ env.LUA_VERSION }} lmdb ssdeep python3
236+ brew install autoconf automake libtool cppcheck libmaxminddb yajl lua lmdb ssdeep python3
216237
217238 - name : Configure project
218239 run : |
@@ -240,11 +261,35 @@ jobs:
240261 with :
241262 fetch-depth : 0
242263 submodules : recursive
264+
265+ - name : Detect latest Lua dev package
266+ id : detect_lua
267+ shell : bash
268+ run : |
269+ set -euo pipefail
270+
271+ apt-get update
243272
273+ CANDIDATES="$(apt-cache search '^liblua[0-9]+\.[0-9]+-dev$' | awk '{print $1}')"
274+
275+ if [ -z "$CANDIDATES" ]; then
276+ echo "No libluaX.Y-dev package found"
277+ exit 1
278+ fi
279+
280+ BEST_PKG="$(
281+ printf '%s\n' "$CANDIDATES" \
282+ | sed -E 's/^liblua([0-9]+\.[0-9]+)-dev$/\1 &/' \
283+ | sort -V \
284+ | tail -n1 \
285+ | awk '{print $2}'
286+ )"
287+
288+ echo "lua_pkg=$BEST_PKG" >> "$GITHUB_OUTPUT"
289+ echo "Using $BEST_PKG"
244290
245291 - name : Install dependencies (v2 style)
246292 run : |
247- apt-get update
248293 apt-get install -y \
249294 autoconf \
250295 automake \
@@ -255,7 +300,7 @@ jobs:
255300 libyajl-dev \
256301 libcurl4-openssl-dev \
257302 liblmdb-dev \
258- liblua ${{ env.LUA_VERSION }}-dev \
303+ ${{ steps.detect_lua.outputs.lua_pkg }} \
259304 libmaxminddb-dev \
260305 libpcre2-dev \
261306 libxml2-dev \
@@ -265,7 +310,7 @@ jobs:
265310 flex \
266311 python3 \
267312 python3-venv
268-
313+
269314 - name : Run build preparation script
270315 run : ./build.sh
271316
0 commit comments