Skip to content

Commit b8ecc77

Browse files
Easton97-Jensjens
authored andcommitted
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 1c84a69 commit b8ecc77

1 file changed

Lines changed: 56 additions & 11 deletions

File tree

.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)