Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 3fb00c5

Browse files
Updated GH Unix build configurations
- Added support to build 32-bit versions of libModSecurity on Linux - Added support to build libModSecurity using clang on Linux (both 64-bit and 32-bit versions) - Fixed macOS dependencies to include yajl, not only because it is a required dependency, but because tests were not being run on macOS builds without it. - Added build without libxml to Linux & macOS configurations. - Added build without ssdeep to Linux configurations (already in macOS configuration) - Removed 'without yajl' build because it's a required 3rd party dependency. - Removed unused bison dependency on macOS builds..
1 parent 108c0d3 commit 3fb00c5

File tree

1 file changed

+68
-22
lines changed

1 file changed

+68
-22
lines changed

‎.github/workflows/ci.yml‎

Lines changed: 68 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -6,64 +6,108 @@ on:
66

77
jobs:
88
build-linux:
9+
name: Linux (${{ matrix.platform.label }}, ${{ matrix.compiler.label }}, ${{ matrix.configure.label }})
910
runs-on: ${{ matrix.os }}
1011
strategy:
1112
matrix:
1213
os: [ubuntu-22.04]
13-
platform: [x32, x64]
14-
compiler: [gcc, clang]
14+
platform:
15+
- {label: "x64", arch: "amd64", configure: ""}
16+
- {label: "x32", arch: "i386", configure: "PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig CFLAGS=-m32 CXXFLAGS=-m32 LDFLAGS=-m32"}
17+
compiler:
18+
- {label: "gcc", cc: "gcc", cxx: "g++"}
19+
- {label: "clang", cc: "clang", cxx: "clang++"}
1520
configure:
1621
- {label: "with parser generation", opt: "--enable-parser-generation" }
1722
- {label: "wo curl", opt: "--without-curl" }
18-
- {label: "wo yajl", opt: "--without-yajl" }
19-
- {label: "wo geoip", opt: "--without-geoip" }
2023
- {label: "wo lmdb", opt: "--without-lmdb" }
21-
- {label: "with pcre2", opt: "--with-pcre2" }
2224
- {label: "wo lua", opt: "--without-lua" }
23-
- {label: "without maxmind", opt: "--without-maxmind" }
25+
- {label: "wo maxmind", opt: "--without-maxmind" }
26+
- {label: "wo libxml", opt: "--without-libxml" }
27+
- {label: "wo geoip", opt: "--without-geoip" }
28+
- {label: "wo ssdeep", opt: "--without-ssdeep" }
29+
- {label: "with pcre2", opt: "--with-pcre2" }
30+
exclude:
31+
- platform: {label: "x32"}
32+
configure: {label: "wo geoip"}
33+
- platform: {label: "x32"}
34+
configure: {label: "wo ssdeep"}
2435
steps:
25-
- name: Setup Dependencies
36+
- name: Setup Dependencies (common)
2637
run: |
38+
sudo dpkg --add-architecture ${{ matrix.platform.arch }}
2739
sudo apt-get update -y -qq
28-
sudo apt-get install -y libfuzzy-dev libyajl-dev libgeoip-dev liblua5.2-dev liblmdb-dev libmaxminddb-dev libcurl4-openssl-dev libpcre2-dev pcre2-utils
40+
sudo apt-get install -y libyajl-dev:${{ matrix.platform.arch }} \
41+
libcurl4-openssl-dev:${{ matrix.platform.arch }} \
42+
liblmdb-dev:${{ matrix.platform.arch }} \
43+
liblua5.2-dev:${{ matrix.platform.arch }} \
44+
libmaxminddb-dev:${{ matrix.platform.arch }} \
45+
libpcre2-dev:${{ matrix.platform.arch }} \
46+
pcre2-utils:${{ matrix.platform.arch }}
47+
- name: Setup Dependencies (x32)
48+
if: ${{ matrix.platform.label == 'x32' }}
49+
run: |
50+
sudo apt-get install g++-multilib
51+
sudo apt-get install -y libxml2-dev:${{ matrix.platform.arch }} \
52+
libpcre3-dev:${{ matrix.platform.arch }}
53+
- name: Setup Dependencies (x64)
54+
if: ${{ matrix.platform.label == 'x64' }}
55+
run: |
56+
sudo apt-get install -y libgeoip-dev:${{ matrix.platform.arch }} \
57+
libfuzzy-dev:${{ matrix.platform.arch }}
2958
- uses: actions/checkout@v4
3059
with:
3160
submodules: true
3261
- name: build.sh
3362
run: ./build.sh
34-
- name: configure ${{ matrix.configure.label }}
35-
run: ./configure ${{ matrix.configure.opt }}
63+
- name: configure
64+
env:
65+
CC: ${{ matrix.compiler.cc }}
66+
CXX: ${{ matrix.compiler.cxx }}
67+
run: ./configure ${{ matrix.platform.configure }} ${{ matrix.configure.opt }}
3668
- uses: ammaraskar/gcc-problem-matcher@master
3769
- name: make
3870
run: make -j `nproc`
3971
- name: check
4072
run: make check
4173

4274
build-macos:
75+
name: macOS (${{ matrix.configure.label }})
4376
runs-on: ${{ matrix.os }}
4477
strategy:
4578
matrix:
4679
os: [macos-12]
47-
compiler: [clang]
4880
configure:
4981
- {label: "with parser generation", opt: "--enable-parser-generation" }
5082
- {label: "wo curl", opt: "--without-curl" }
51-
- {label: "wo yajl", opt: "--without-yajl" }
52-
- {label: "wo geoip", opt: "--without-geoip" }
5383
- {label: "wo lmdb", opt: "--without-lmdb" }
54-
- {label: "wo ssdeep", opt: "--without-ssdeep" }
5584
- {label: "wo lua", opt: "--without-lua" }
5685
- {label: "wo maxmind", opt: "--without-maxmind" }
86+
- {label: "wo libxml", opt: "--without-libxml" }
87+
- {label: "wo geoip", opt: "--without-geoip" }
88+
- {label: "wo ssdeep", opt: "--without-ssdeep" }
89+
- {label: "with pcre2", opt: "--with-pcre2" }
5790
steps:
5891
- name: Setup Dependencies
5992
run: |
60-
brew install autoconf automake cppcheck lmdb libyaml lua ssdeep libmaxminddb bison
93+
brew install autoconf \
94+
automake \
95+
yajl \
96+
curl \
97+
lmdb \
98+
lua \
99+
libmaxminddb \
100+
libxml2 \
101+
geoip \
102+
ssdeep \
103+
pcre \
104+
pcre2
61105
- uses: actions/checkout@v4
62106
with:
63107
submodules: true
64108
- name: build.sh
65109
run: ./build.sh
66-
- name: configure ${{ matrix.configure.label }}
110+
- name: configure
67111
run: ./configure ${{ matrix.configure.opt }}
68112
- uses: ammaraskar/gcc-problem-matcher@master
69113
- name: make
@@ -72,19 +116,21 @@ jobs:
72116
run: make check
73117

74118
build-windows:
119+
name: Windows (${{ matrix.platform.label }}, ${{ matrix.configure.label }})
75120
runs-on: ${{ matrix.os }}
76121
strategy:
77122
matrix:
78123
os: [windows-2022]
79-
platform: [x86_64]
124+
platform:
125+
- {label: "x64", arch: "x86_64"}
80126
configuration: [Release]
81127
configure:
82128
- {label: "full", opt: "" }
129+
- {label: "wo curl", opt: "-DWITHOUT_CURL=ON" }
83130
- {label: "wo lmdb", opt: "-DWITHOUT_LMDB=ON" }
84131
- {label: "wo lua", opt: "-DWITHOUT_LUA=ON" }
85-
- {label: "wo libxml2", opt: "-WITHOUT_LIBXML2=ON" }
86132
- {label: "wo maxmind", opt: "-DWITHOUT_MAXMIND=ON" }
87-
- {label: "wo curl", opt: "-DWITHOUT_CURL=ON" }
133+
- {label: "wo libxml", opt: "-WITHOUT_LIBXML2=ON" }
88134
steps:
89135
- uses: actions/checkout@v4
90136
with:
@@ -94,9 +140,9 @@ jobs:
94140
pip3 install conan --upgrade
95141
conan profile detect
96142
- uses: ammaraskar/msvc-problem-matcher@master
97-
- name: Build ${{ matrix.configuration }} ${{ matrix.platform }} ${{ matrix.configure.label }}
143+
- name: Build ${{ matrix.configuration }} ${{ matrix.platform.arch }} ${{ matrix.configure.label }}
98144
shell: cmd
99-
run: vcbuild.bat ${{ matrix.configuration }} ${{ matrix.platform }} NO_ASAN "${{ matrix.configure.opt }}"
145+
run: vcbuild.bat ${{ matrix.configuration }} ${{ matrix.platform.arch }} NO_ASAN "${{ matrix.configure.opt }}"
100146
- name: Set up test environment
101147
working-directory: build\win32\build\${{ matrix.configuration }}
102148
env:
@@ -140,4 +186,4 @@ jobs:
140186
./build.sh
141187
./configure
142188
- name: Run cppcheck on libModSecurity
143-
run: make check-static
189+
run: make check-static

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /