8
8
jobs :
9
9
10
10
canary :
11
- name : gcc
11
+ # Tests with: Debug & assertions; link-size=4
12
+ name : GCC -O0
12
13
runs-on : ubuntu-latest
13
14
steps :
14
15
- name : Checkout
38
39
run : ./pcre2posix_test -v
39
40
40
41
dragon :
41
- name : clang
42
+ # Tests with: clang AB/UB; link-size=3
43
+ name : Clang
42
44
runs-on : ubuntu-latest
43
45
steps :
44
46
- name : Checkout
67
69
- name : Test (pcre2posix program)
68
70
run : ./pcre2posix_test -v
69
71
72
+ greatawk :
73
+ # Tests with: GCC, -O3, oldest supported Ubuntu (in non-extended support)
74
+ name : GCC -O3
75
+ runs-on : ubuntu-20.04
76
+ steps :
77
+ - name : Checkout
78
+ uses : actions/checkout@v4
79
+ with :
80
+ submodules : true
81
+
82
+ - name : Configure
83
+ run : cmake -DPCRE2_SUPPORT_JIT=ON -DPCRE2_BUILD_PCRE2_16=ON -DPCRE2_BUILD_PCRE2_32=ON -DPCRE2_DEBUG=ON -DCMAKE_COMPILE_WARNING_AS_ERROR=ON -DCMAKE_BUILD_TYPE=Release -B build
84
+
85
+ - name : Build
86
+ run : cd build && make -j3
87
+
88
+ - name : Test
89
+ run : cd build && make test
90
+
70
91
wasp :
71
- name : No JIT
72
- runs-on : ubuntu-24.04
92
+ # Tests with: French locale; oldest supported CMake; no JIT; -Os
93
+ name : GCC -Os, CMake+ninja, no JIT
94
+ runs-on : ubuntu-latest
95
+ env :
96
+ CMAKE_VER : " 3.15.7"
73
97
steps :
74
98
- name : Checkout
75
99
uses : actions/checkout@v4
@@ -79,25 +103,33 @@ jobs:
79
103
- name : Prepare
80
104
run : |
81
105
sudo apt-get -qq update
82
- sudo apt-get -qq install language-pack-fr
83
- ./autogen.sh
106
+ sudo apt-get -qq install language-pack-fr ninja-build
84
107
85
- - name : Configure
86
- run : ./configure CC='clang -fsanitize=undefined,address,integer -fno-sanitize-recover=undefined,integer -fno-sanitize=unsigned-shift-base,function' --enable-pcre2-16 --enable-pcre2-32 --enable-debug
108
+ - name : Cache CMake
109
+ uses : actions/cache@v4
110
+ with :
111
+ key : cmake-${{ env.CMAKE_VER }}-Linux-x86_64
112
+ path : cmake-${{ env.CMAKE_VER }}-Linux-x86_64.tar.gz
87
113
88
- - name : Build
89
- run : make CPPFLAGS='-pedantic -Wall -Wextra -Wpedantic -Wdeclaration-after-statement -Wshadow -Wno-overlength-strings -Werror -Wno-error=incompatible-pointer-types-discards-qualifiers' -j3
114
+ - name : Install CMake
115
+ run : |
116
+ [ -f cmake-${CMAKE_VER}-Linux-x86_64.tar.gz ] || curl -L -S -O "https://github.com/Kitware/CMake/releases/download/v${CMAKE_VER}/cmake-${CMAKE_VER}-Linux-x86_64.tar.gz"
117
+ tar -xz -f cmake-${CMAKE_VER}-Linux-x86_64.tar.gz
118
+ realpath "cmake-${CMAKE_VER}-Linux-x86_64/bin" >> "$GITHUB_PATH"
90
119
91
- - name : Test (main test script)
92
- run : ./RunTest
120
+ - name : Configure
121
+ run : |
122
+ cmake --version | grep "version ${CMAKE_VER}" || (echo "CMake version mismatch" && exit 1)
123
+ CC='clang' CFLAGS='-fsanitize=undefined,address,integer -fno-sanitize-recover=undefined,integer -fno-sanitize=unsigned-shift-base,function -pedantic -Wall -Wextra -Wpedantic -Wdeclaration-after-statement -Wshadow -Wno-overlength-strings -Werror -Wno-error=incompatible-pointer-types-discards-qualifiers' cmake -G Ninja -DPCRE2_BUILD_PCRE2_16=ON -DPCRE2_BUILD_PCRE2_32=ON -DPCRE2_DEBUG=ON -DCMAKE_BUILD_TYPE=MinSizeRel -B build
93
124
94
- - name : Test (pcre2grep test script)
95
- run : ./RunGrepTest
125
+ - name : Build
126
+ run : ninja -C build
96
127
97
- - name : Test (pcre2posix program)
98
- run : ./pcre2posix_test -v
128
+ - name : Test
129
+ run : ninja -C build test
99
130
100
131
bat :
132
+ # Tests with: MSVC 32-bit, and a variety of CMake options
101
133
name : 32bit MSVC
102
134
runs-on : windows-latest
103
135
steps :
@@ -110,17 +142,17 @@ jobs:
110
142
run : cmake -DPCRE2_SUPPORT_JIT=ON -DPCRE2_BUILD_PCRE2_16=ON -DPCRE2_BUILD_PCRE2_32=ON -DPCRE2GREP_SUPPORT_CALLOUT_FORK=OFF -DPCRE2_DEBUG=ON -DPCRE2_NEWLINE=ANYCRLF -DPCRE2_STATIC_PIC=ON -DPCRE2_STATIC_RUNTIME=ON -DPCRE2_SUPPORT_BSR_ANYCRLF=ON -DCMAKE_COMPILE_WARNING_AS_ERROR=ON -DCMAKE_VERBOSE_MAKEFILE=ON -B build -A Win32
111
143
112
144
- name : Build
113
- run : cmake --build build
145
+ run : cmake --build build --config RelWithDebInfo
114
146
115
147
- name : Test
116
148
shell : cmd
117
149
run : |
118
150
cd build
119
- ctest -C Debug .
120
- type Testing\Temporary\LastTest.log
151
+ ctest -C RelWithDebInfo .
121
152
122
153
pterodactyl :
123
- name : MSVC
154
+ # Tests with: MSVC 64-bit, Debug, shared libraries
155
+ name : 64bit MSVC
124
156
runs-on : windows-latest
125
157
steps :
126
158
- name : Checkout
@@ -129,19 +161,19 @@ jobs:
129
161
submodules : true
130
162
131
163
- name : Configure
132
- run : cmake -DPCRE2_BUILD_PCRE2_16=ON -DPCRE2_BUILD_PCRE2_32=ON -DPCRE2_DEBUG=ON -DPCRE2_BUILD_PCRE2GREP=OFF -DPCRE2_BUILD_TESTS=OFF -DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=OFF -DCMAKE_COMPILE_WARNING_AS_ERROR=ON -B build
164
+ run : cmake -DPCRE2_BUILD_PCRE2_16=ON -DPCRE2_BUILD_PCRE2_32=ON -DPCRE2_DEBUG=ON -DPCRE2_BUILD_PCRE2GREP=OFF -DPCRE2_BUILD_TESTS=OFF -DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=OFF -DCMAKE_COMPILE_WARNING_AS_ERROR=ON -B build -A x64
133
165
134
166
- name : Build
135
- run : cmake --build build
167
+ run : cmake --build build --config Debug
136
168
137
169
- name : Test
138
170
shell : cmd
139
171
run : |
140
172
cd build
141
173
ctest -C Debug .
142
- type Testing\Temporary\LastTest.log
143
174
144
175
bigbird :
176
+ # Job to execute ManyConfigTests
145
177
name : manyconfig
146
178
runs-on : ubuntu-latest
147
179
steps :
@@ -161,6 +193,7 @@ jobs:
161
193
./maint/ManyConfigTests
162
194
163
195
camel :
196
+ # Job to execute RunPerlTest
164
197
name : perl
165
198
runs-on : ubuntu-latest
166
199
container : perl:devel
@@ -176,7 +209,7 @@ jobs:
176
209
apt-get -qq install cmake ninja-build
177
210
178
211
- name : Configure
179
- run : cmake -G Ninja -B build -DPCRE2_BUILD_PCRE2_8=OFF -DPCRE2_BUILD_PCRE2_32=ON -DPCRE2_NEVER_BACKSLASH_C=ON
212
+ run : cmake -G Ninja -B build -DPCRE2_BUILD_PCRE2_8=OFF -DPCRE2_BUILD_PCRE2_32=ON -DPCRE2_NEVER_BACKSLASH_C=ON -DPCRE2_DEBUG=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo
180
213
181
214
- name : Build
182
215
run : cmake --build build
0 commit comments