@@ -136,244 +136,3 @@ jobs:
136
136
- name : Verify generated files are up to date
137
137
if : ${{ !matrix.asan }}
138
138
uses : ./.github/actions/verify-generated-files
139
- LINUX_X32 :
140
- if : github.repository == 'php/php-src' || github.event_name == 'pull_request'
141
- name : LINUX_X32_DEBUG_ZTS
142
- runs-on : ubuntu-latest
143
- timeout-minutes : 50
144
- container :
145
- image : ubuntu:24.04
146
- env :
147
- MYSQL_TEST_HOST : mysql
148
- PDO_MYSQL_TEST_DSN : mysql:host=mysql;dbname=test
149
- PDO_MYSQL_TEST_HOST : mysql
150
- PDO_FIREBIRD_TEST_DSN : firebird:dbname=firebird:test.fdb
151
- services :
152
- mysql :
153
- image : mysql:8.3
154
- ports :
155
- - 3306:3306
156
- env :
157
- MYSQL_DATABASE : test
158
- MYSQL_ROOT_PASSWORD : root
159
- firebird :
160
- image : jacobalberty/firebird
161
- ports :
162
- - 3050:3050
163
- env :
164
- ISC_PASSWORD : test
165
- FIREBIRD_DATABASE : test.fdb
166
- FIREBIRD_USER : test
167
- FIREBIRD_PASSWORD : test
168
- steps :
169
- - name : git checkout
170
- uses : actions/checkout@v4
171
- - name : apt
172
- uses : ./.github/actions/apt-x32
173
- - name : ccache
174
- uses :
hendrikmuhs/[email protected]
175
- with :
176
- key : " ${{github.job}}-${{hashFiles('main/php_version.h')}}"
177
- append-timestamp : false
178
- - name : ./configure
179
- uses : ./.github/actions/configure-x32
180
- with :
181
- configurationParameters : >-
182
- --enable-debug
183
- --enable-zts
184
- - name : make
185
- run : make -j$(/usr/bin/nproc) >/dev/null
186
- - name : make install
187
- uses : ./.github/actions/install-linux-x32
188
- - name : Test Tracing JIT
189
- uses : ./.github/actions/test-linux
190
- with :
191
- jitType : tracing
192
- runTestsParameters : >-
193
- -d zend_extension=opcache.so
194
- -d opcache.enable_cli=1
195
- MACOS_DEBUG_NTS :
196
- if : github.repository == 'php/php-src' || github.event_name == 'pull_request'
197
- strategy :
198
- fail-fast : false
199
- matrix :
200
- include :
201
- - os : 13
202
- arch : X64
203
- - os : 14
204
- arch : ARM64
205
- name : MACOS_${{ matrix.arch }}_DEBUG_NTS
206
- runs-on : macos-${{ matrix.os }}
207
- timeout-minutes : 50
208
- steps :
209
- - name : git checkout
210
- uses : actions/checkout@v4
211
- - name : brew
212
- uses : ./.github/actions/brew
213
- - name : ccache
214
- uses :
hendrikmuhs/[email protected]
215
- with :
216
- key : " ${{github.job}}-${{matrix.os}}-${{hashFiles('main/php_version.h')}}"
217
- append-timestamp : false
218
- save : ${{ github.event_name != 'pull_request' }}
219
- - name : ./configure
220
- uses : ./.github/actions/configure-macos
221
- with :
222
- configurationParameters : --enable-debug --disable-zts
223
- - name : make
224
- run : |-
225
- export PATH="$(brew --prefix)/opt/bison/bin:$PATH"
226
- make -j$(sysctl -n hw.logicalcpu) >/dev/null
227
- - name : make install
228
- run : sudo make install
229
- - name : Test Tracing JIT
230
- uses : ./.github/actions/test-macos
231
- with :
232
- jitType : tracing
233
- runTestsParameters : >-
234
- -d zend_extension=opcache.so
235
- -d opcache.enable_cli=1
236
- - name : Verify generated files are up to date
237
- uses : ./.github/actions/verify-generated-files
238
- WINDOWS :
239
- if : github.repository == 'php/php-src' || github.event_name == 'pull_request'
240
- name : WINDOWS_X64_ZTS
241
- runs-on : windows-2022
242
- timeout-minutes : 50
243
- env :
244
- PHP_BUILD_CACHE_BASE_DIR : C:\build-cache
245
- PHP_BUILD_OBJ_DIR : C:\obj
246
- PHP_BUILD_CACHE_SDK_DIR : C:\build-cache\sdk
247
- PHP_BUILD_SDK_BRANCH : php-sdk-2.3.0
248
- PHP_BUILD_CRT : vs17
249
- PLATFORM : x64
250
- THREAD_SAFE : " 1"
251
- INTRINSICS : AVX2
252
- PARALLEL : -j2
253
- OPCACHE : " 1"
254
- steps :
255
- - name : git config
256
- run : git config --global core.autocrlf false && git config --global core.eol lf
257
- - name : git checkout
258
- uses : actions/checkout@v4
259
- - name : Setup
260
- uses : ./.github/actions/setup-windows
261
- - name : Build
262
- run : .github/scripts/windows/build.bat
263
- - name : Test
264
- run : .github/scripts/windows/test.bat
265
- BENCHMARKING :
266
- name : BENCHMARKING
267
- if : github.repository == 'php/php-src' || github.event_name == 'pull_request'
268
- runs-on : ubuntu-24.04
269
- timeout-minutes : 50
270
- steps :
271
- - name : git checkout
272
- uses : actions/checkout@v4
273
- with :
274
- fetch-depth : 0
275
- # ASLR can cause a lot of noise due to missed sse opportunities for memcpy
276
- # and other operations, so we disable it during benchmarking.
277
- - name : Disable ASLR
278
- run : echo 0 | sudo tee /proc/sys/kernel/randomize_va_space
279
- - name : apt
280
- run : |
281
- set -x
282
- sudo apt-get update
283
- sudo apt-get install \
284
- bison \
285
- libgmp-dev \
286
- libonig-dev \
287
- libsqlite3-dev \
288
- openssl \
289
- re2c \
290
- valgrind
291
- - name : ccache
292
- uses :
hendrikmuhs/[email protected]
293
- with :
294
- key : " ${{github.job}}-${{hashFiles('main/php_version.h')}}"
295
- append-timestamp : false
296
- save : ${{ github.event_name != 'pull_request' }}
297
- - name : ./configure
298
- run : |
299
- set -x
300
- ./buildconf --force
301
- ./configure \
302
- --disable-debug \
303
- --enable-mbstring \
304
- --enable-opcache \
305
- --enable-option-checking=fatal \
306
- --enable-sockets \
307
- --enable-werror \
308
- --prefix=/usr \
309
- --with-config-file-scan-dir=/etc/php.d \
310
- --with-gmp \
311
- --with-mysqli=mysqlnd \
312
- --with-openssl \
313
- --with-pdo-sqlite \
314
- --with-valgrind
315
- - name : make
316
- run : make -j$(/usr/bin/nproc) >/dev/null
317
- - name : make install
318
- run : |
319
- set -x
320
- sudo make install
321
- sudo mkdir -p /etc/php.d
322
- sudo chmod 777 /etc/php.d
323
- echo mysqli.default_socket=/var/run/mysqld/mysqld.sock > /etc/php.d/mysqli.ini
324
- echo zend_extension=opcache.so >> /etc/php.d/opcache.ini
325
- echo opcache.enable=1 >> /etc/php.d/opcache.ini
326
- echo opcache.enable_cli=1 >> /etc/php.d/opcache.ini
327
- - name : Setup
328
- run : |
329
- git config --global user.name "Benchmark"
330
- git config --global user.email "[email protected] "
331
- sudo service mysql start
332
- mysql -uroot -proot -e "CREATE DATABASE IF NOT EXISTS wordpress"
333
- mysql -uroot -proot -e "CREATE USER 'wordpress'@'localhost' IDENTIFIED BY 'wordpress'; FLUSH PRIVILEGES;"
334
- mysql -uroot -proot -e "GRANT ALL PRIVILEGES ON *.* TO 'wordpress'@'localhost' WITH GRANT OPTION;"
335
- - name : git checkout benchmarking-data
336
- uses : actions/checkout@v4
337
- with :
338
- repository : php/benchmarking-data
339
- ssh-key : ${{ secrets.BENCHMARKING_DATA_DEPLOY_KEY }}
340
- path : benchmark/repos/data
341
- - name : Benchmark
342
- run : php benchmark/benchmark.php true
343
- - name : Store result
344
- if : github.event_name == 'push'
345
- run : |
346
- set -x
347
- cd benchmark/repos/data
348
- git pull --autostash
349
- if [ -e ".git/MERGE_HEAD" ]; then
350
- echo "Merging, can't proceed"
351
- exit 1
352
- fi
353
- git add .
354
- if git diff --cached --quiet; then
355
- exit 0
356
- fi
357
- git commit -m "Add result for ${{ github.repository }}@${{ github.sha }}"
358
- git push
359
- - name : Show diff
360
- if : github.event_name == 'pull_request'
361
- run : |-
362
- set -x
363
- php benchmark/generate_diff.php \
364
- ${{ github.sha }} \
365
- $(git merge-base ${{ github.event.pull_request.base.sha }} ${{ github.sha }}) \
366
- > $GITHUB_STEP_SUMMARY
367
- - uses : actions/upload-artifact@v4
368
- with :
369
- name : profiles
370
- path : ${{ github.workspace }}/benchmark/profiles
371
- retention-days : 30
372
- FREEBSD :
373
- name : FREEBSD
374
- runs-on : ubuntu-latest
375
- steps :
376
- - name : git checkout
377
- uses : actions/checkout@v4
378
- - name : FreeBSD
379
- uses : ./.github/actions/freebsd
0 commit comments