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 d9255d8

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) - Added build 'with lmdb' to Linux & macOS configurations, replacing the existing one 'without lmdb' because by default LMDB is disabled if not explicitly turn on in configure. - Removed 'without yajl' build because it's a required 3rd party dependency. - Added bison & flex dependencies to enable parser generation.
1 parent d0108ef commit d9255d8

File tree

1 file changed

+72
-24
lines changed

1 file changed

+72
-24
lines changed

‎.github/workflows/ci.yml‎

Lines changed: 72 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -6,64 +6,110 @@ 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" }
20-
- {label: "wo lmdb", opt: "--without-lmdb" }
21-
- {label: "with pcre2", opt: "--with-pcre2" }
2223
- {label: "wo lua", opt: "--without-lua" }
23-
- {label: "without maxmind", opt: "--without-maxmind" }
24+
- {label: "wo maxmind", opt: "--without-maxmind" }
25+
- {label: "wo libxml", opt: "--without-libxml" }
26+
- {label: "wo geoip", opt: "--without-geoip" }
27+
- {label: "wo ssdeep", opt: "--without-ssdeep" }
28+
- {label: "with lmdb", opt: "--with-lmdb" }
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+
bison flex
48+
- name: Setup Dependencies (x32)
49+
if: ${{ matrix.platform.label == 'x32' }}
50+
run: |
51+
sudo apt-get install g++-multilib
52+
sudo apt-get install -y libxml2-dev:${{ matrix.platform.arch }} \
53+
libpcre3-dev:${{ matrix.platform.arch }}
54+
- name: Setup Dependencies (x64)
55+
if: ${{ matrix.platform.label == 'x64' }}
56+
run: |
57+
sudo apt-get install -y libgeoip-dev:${{ matrix.platform.arch }} \
58+
libfuzzy-dev:${{ matrix.platform.arch }}
2959
- uses: actions/checkout@v4
3060
with:
3161
submodules: true
3262
- name: build.sh
3363
run: ./build.sh
34-
- name: configure ${{ matrix.configure.label }}
35-
run: ./configure ${{ matrix.configure.opt }}
64+
- name: configure
65+
env:
66+
CC: ${{ matrix.compiler.cc }}
67+
CXX: ${{ matrix.compiler.cxx }}
68+
run: ./configure ${{ matrix.platform.configure }} ${{ matrix.configure.opt }}
3669
- uses: ammaraskar/gcc-problem-matcher@master
3770
- name: make
3871
run: make -j `nproc`
3972
- name: check
4073
run: make check
4174

4275
build-macos:
76+
name: macOS (${{ matrix.configure.label }})
4377
runs-on: ${{ matrix.os }}
4478
strategy:
4579
matrix:
4680
os: [macos-12]
47-
compiler: [clang]
4881
configure:
4982
- {label: "with parser generation", opt: "--enable-parser-generation" }
5083
- {label: "wo curl", opt: "--without-curl" }
51-
- {label: "wo yajl", opt: "--without-yajl" }
52-
- {label: "wo geoip", opt: "--without-geoip" }
53-
- {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 lmdb", opt: "--with-lmdb" }
90+
- {label: "with pcre2", opt: "--with-pcre2" }
5791
steps:
5892
- name: Setup Dependencies
93+
# autoconf, curl, pcre2 not installed because they're already
94+
# included in the image
5995
run: |
60-
brew install autoconf automake cppcheck lmdb libyaml lua ssdeep libmaxminddb bison
96+
brew install automake \
97+
yajl \
98+
lmdb \
99+
lua \
100+
libmaxminddb \
101+
libxml2 \
102+
geoip \
103+
ssdeep \
104+
pcre \
105+
bison \
106+
flex
61107
- uses: actions/checkout@v4
62108
with:
63109
submodules: true
64110
- name: build.sh
65111
run: ./build.sh
66-
- name: configure ${{ matrix.configure.label }}
112+
- name: configure
67113
run: ./configure ${{ matrix.configure.opt }}
68114
- uses: ammaraskar/gcc-problem-matcher@master
69115
- name: make
@@ -72,19 +118,21 @@ jobs:
72118
run: make check
73119

74120
build-windows:
121+
name: Windows (${{ matrix.platform.label }}, ${{ matrix.configure.label }})
75122
runs-on: ${{ matrix.os }}
76123
strategy:
77124
matrix:
78125
os: [windows-2022]
79-
platform: [x86_64]
126+
platform:
127+
- {label: "x64", arch: "x86_64"}
80128
configuration: [Release]
81129
configure:
82130
- {label: "full", opt: "" }
131+
- {label: "wo curl", opt: "-DWITHOUT_CURL=ON" }
83132
- {label: "wo lmdb", opt: "-DWITHOUT_LMDB=ON" }
84133
- {label: "wo lua", opt: "-DWITHOUT_LUA=ON" }
85-
- {label: "wo libxml2", opt: "-WITHOUT_LIBXML2=ON" }
86134
- {label: "wo maxmind", opt: "-DWITHOUT_MAXMIND=ON" }
87-
- {label: "wo curl", opt: "-DWITHOUT_CURL=ON" }
135+
- {label: "wo libxml", opt: "-WITHOUT_LIBXML2=ON" }
88136
steps:
89137
- uses: actions/checkout@v4
90138
with:
@@ -94,9 +142,9 @@ jobs:
94142
pip3 install conan --upgrade
95143
conan profile detect
96144
- uses: ammaraskar/msvc-problem-matcher@master
97-
- name: Build ${{ matrix.configuration }} ${{ matrix.platform }} ${{ matrix.configure.label }}
145+
- name: Build ${{ matrix.configuration }} ${{ matrix.platform.arch }} ${{ matrix.configure.label }}
98146
shell: cmd
99-
run: vcbuild.bat ${{ matrix.configuration }} ${{ matrix.platform }} NO_ASAN "${{ matrix.configure.opt }}"
147+
run: vcbuild.bat ${{ matrix.configuration }} ${{ matrix.platform.arch }} NO_ASAN "${{ matrix.configure.opt }}"
100148
- name: Set up test environment
101149
working-directory: build\win32\build\${{ matrix.configuration }}
102150
env:
@@ -140,4 +188,4 @@ jobs:
140188
./build.sh
141189
./configure
142190
- name: Run cppcheck on libModSecurity
143-
run: make check-static
191+
run: make check-static

0 commit comments

Comments
(0)

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