Skip to content

Commit e68f6b1

Browse files
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.
1 parent 814e88f commit e68f6b1

File tree

1 file changed

+56
-11
lines changed

1 file changed

+56
-11
lines changed

.github/workflows/ci_new.yml

Lines changed: 56 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,6 @@ on:
44
push:
55
pull_request:
66

7-
env:
8-
LUA_VERSION: "5.5"
9-
107
jobs:
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 \
@@ -63,7 +85,6 @@ jobs:
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

Comments
 (0)