1
0
mirror of https://github.com/php/php-src.git synced 2026-03-24 00:02:20 +01:00
Commit Graph

500 Commits

Author SHA1 Message Date
Christoph M. Becker
bb3a3d025b [skip ci] Don't build bless_tests.patch (GH-16224)
The bless_tests.patch had been introduced via PR #7204, but is no
longer available due to PR #11566.  Since apparently the patch is not
that helpful, we remove the code which generates it.
2024-10-04 18:22:52 +02:00
Christoph M. Becker
3e9f2fa071 Avoid dl() in run-tests.php (GH-16126)
Prior to running the tests, the test runner checks for all generally
available extensions; it does this by scanning the `extension_dir` for
files matching the typical extension pattern, but verifies that the
file is actually a PHP extension by calling `dl()`.  However, `dl()`
has known issues[1].  On Windows CI we always get an ugly "zend_mm_heap
corrupted" message, and we even can't `dl()` ext/mysql when OPcache is
enabled[2].  So we better avoid the double-check with `dl()`, which is
unlikely to be necessary anyway.

[1] <https://github.com/php/php-src/issues/9196>
[2] <https://github.com/php/php-src/issues/8508>
2024-10-03 12:58:27 +02:00
Christoph M. Becker
fbfc89944d x86 builds on Windows are warning level 1 clean (GH-16170)
The only issue that was left was due to the old build of net-snmp 5.7.3; since updating to net-snmp 5.9.4, this is resolved.

The patch has originally been provided by @mvorisek.
2024-10-03 12:55:42 +02:00
Christoph M. Becker
62a1eb9d68 [skip ci] Re-enable nightly redis build (GH-16118)
* Re-enable nightly redis build (that should pass again)
* Disable Xdebug for now (it currently fails already during configure for PHP >= 8.5.0)
2024-10-01 16:37:39 +02:00
Christoph M. Becker
d54b7c7078 Merge branch 'PHP-8.4'
* PHP-8.4:
  Fix nightly builds regarding libavif
2024-09-30 18:51:56 +02:00
Christoph M. Becker
258088310a Fix nightly builds regarding libavif
Currently, we're running LINUX_X64 Asan builds on ubuntu-20.04, where
libavif-dev is not available, so apt-x64 fails.  This PR is a follow up
to PR #16049 to pass the respective parameter to apt-x64, and to fix
the conditional check in configure-x64.

It might be clearer to just have an `avif` parameter or to pass the
runner version to these actions, but this should do for now.

Closes GH-16130.
2024-09-30 18:51:30 +02:00
Ilija Tovilo
aff26e4d6e Merge branch 'PHP-8.4'
* PHP-8.4:
  Remove now unused llvm installation in asan build
2024-09-26 15:18:38 +02:00
Ilija Tovilo
6f7ec6a747 Remove now unused llvm installation in asan build 2024-09-26 15:18:01 +02:00
Ilija Tovilo
26ccfbe111 Merge branch 'PHP-8.4'
* PHP-8.4:
  Switch asan build to Ubuntu 24.04
2024-09-26 15:16:30 +02:00
Ilija Tovilo
b14d440a82 Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  Switch asan build to Ubuntu 24.04
2024-09-26 15:15:39 +02:00
Ilija Tovilo
91c06790de Switch asan build to Ubuntu 24.04
Closes GH-16065
2024-09-26 15:13:35 +02:00
Ilija Tovilo
553e18f679 Merge branch 'PHP-8.4'
* PHP-8.4:
  Fix missing libavif-dev in asan nightly
2024-09-26 15:09:53 +02:00
Ilija Tovilo
271b9e685e Fix missing libavif-dev in asan nightly
Asan still runs on Ubuntu 20.04, which doesn't contain the libavif-dev package.

Closes GH-16049
2024-09-26 15:09:32 +02:00
Saki Takamachi
ae505db0c9 CI: prepare for PHP-8.4 (#16036) 2024-09-25 22:57:59 +09:00
Máté Kocsis
2448a01a55 Add real-time benchmark to CI as a nightly job (#15696)
This PR integrates https://github.com/kocsismate/php-version-benchmarks/ into the CI as a nightly job running every day at 12:30 AM UTC. Roughly, the following happens: the benchmark suite spins up an AWS EC2 instance via Terraform, runs the tests according to the configuration, and then the results are committed to the https://github.com/kocsismate/php-version-benchmark-results repository.

In order to have as stable results as possible, the CPU, kernel and other settings of the AWS instance are fine-tuned:

- Hyper-threading is disabled
- Turbo boost is disabled
- C states of the CPU are limited: https://docs.aws.amazon.com/linux/al2/ug/processor_state_control.html#baseline-perf
- The workload is dedicated to a single core by using taskset according to Intel's recommendations (https://web.archive.org/web/20210614053522/https://01.org/node/3774)
- An io2 SSD volume is attached to the instance which has a provisioned IOPS (https://docs.aws.amazon.com/ebs/latest/userguide/provisioned-iops.html#io2-block-express) so that IO performance is nearly constant
- The instance is dedicated so that the noisy neighbor effect is eliminated: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-instance.html
- ASLR is disabled (Disable ASLR for benchmark #13769)

Customizing the CPU is only supported by metal instances among recent instance types according to https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/processor_state_control.html, so at last, a c7i.metal-24xl instance is used in the eu-west-1 region.

The benchmark suite compares the performance of the latest commit of the master branch in the time when the benchmark runs with the last commit of master from the day before yesterday. I.e. if the benchmark runs tomorrow morning at 2 AM, then the performance of the latest commit will be benchmarked against the last commit pushed yesterday. This makes it possible to spot outstanding regressions (or progressions) in time. Actually, the end goal is to send notifications in case of any significant changes for further analyzation. The reason why the benchmark is run for previous commits as well (while they may have already been measured the day before) is to make the results less sensitive for changes in the environment or the benchmark suite itself. I.e.: if AWS upgrades the OS, or if the code under test is modified, then the numbers will likely be affected, and the previous results will be invalidated).
2024-09-25 15:55:24 +02:00
Saki Takamachi
e0a7ec22ee Merge branch 'PHP-8.4'
* PHP-8.4:
  Added PHP-8.4 to push workflow (#16045)
2024-09-25 20:26:21 +09:00
Saki Takamachi
6946bbca38 Added PHP-8.4 to push workflow (#16045) 2024-09-25 20:25:40 +09:00
Ilija Tovilo
5c5b1626f7 [skip ci] Add PHP 8.4 to nightly matrix 2024-09-25 13:07:16 +02:00
Ayesh Karunaratne
3566421e14 CI: Add 50-minute timeouts to GitHub Actions and Cirrus CI (GH-15589)
Currently, there are no explicit timeouts set for CI jobs, which means
the CI jobs will keep running until they are terminated by the task
runner. The current defaults of each provider are:

 - GitHub Actions: 360 minutes[^1]
 - Cirrus CI: 60 minutes[^2]
 - Travis CI: 50 minutes[^3]

On Travis, the timeout is not configurable, and given that our test suite
usually completes within 20 minutes, this commit explicitly sets
timeouts for Cirrus CI and GitHub Actions to 50 minutes as well.

[^1]: [GitHub Actions Workflow Syntax](https://docs.github.com/en/actions/writing-workflows/workflow-syntax-for-github-actions#jobsjob_idtimeout-minutes)
[^2]: [Cirrus CI FAQ](https://cirrus-ci.org/faq/#instance-timed-out)
[^3]: [Travis docs - customizing the build](https://docs.travis-ci.com/user/customizing-the-build#build-timeouts)
2024-09-25 12:58:17 +02:00
Christoph M. Becker
051c886bc3 Merge branch 'PHP-8.3'
* PHP-8.3:
  Fix MySQL and MSSQL CI failures
2024-09-24 13:04:52 +02:00
武田 憲太郎
af721c9c36 Fix MySQL and MSSQL CI failures
* use mysql service container for nightly tests
* remove unnecessary mysql startup
* update mssql container to newer version

Closes GH-16011.
2024-09-24 13:03:26 +02:00
Christoph M. Becker
2e5f7483db Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  Adapt labeler.yml to v4 syntax
2024-09-23 14:09:46 +02:00
Christoph M. Becker
89b5cc3668 Adapt labeler.yml to v4 syntax 2024-09-23 14:08:26 +02:00
Ilija Tovilo
00f0b80189 Merge branch 'PHP-8.3' 2024-09-21 20:04:52 +02:00
Ilija Tovilo
915d1f675b Merge branch 'PHP-8.2' into PHP-8.3 2024-09-21 20:03:35 +02:00
Ilija Tovilo
18ab97b9c2 [skip ci] Remove myself as CODEOWNER
I'm subscribed to the pulls list, so I'm just receiving each notification three
times (GitHub sends to e-mails for each PR, for some reason).
2024-09-21 20:02:19 +02:00
Christoph M. Becker
580435354e Support bug64159.phpt on Windows CI (GH-15895)
This test queries `extOutput` for the first line of output of the
command which was executed when snmpd started (`HexTest` in snmpd.conf).
Since there is no `/bin/sh` on Windows, no command would be run, and as
such we received an empty string.  We fix that by dynamically adjusting
snmpd.conf to run a JScript which has the same output as bigtest.

We also make the test diff more helpful in case of failures, where so
far we only would have known that the output had a different message
digest.
2024-09-21 16:03:25 +02:00
Christoph M. Becker
64d959e266 Merge branch 'PHP-8.3'
* PHP-8.3:
  [ci skip] Add labels to PRs with potential ABI breaks
2024-09-21 00:13:29 +02:00
Christoph M. Becker
dc20cabd82 Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  [ci skip] Add labels to PRs with potential ABI breaks
2024-09-21 00:11:04 +02:00
Christoph M. Becker
170230f29b [ci skip] Add labels to PRs with potential ABI breaks
ABI breaks are not supposed to happen after feature freeze, i.e. when
the PHP API numbers have been bumped.  To make it easier to notice
inadvertent ABI breaks, we automatically add an "ABI break" label to
all PRs which modify public (aka. installed) header files.  Some of
these modifications do not constitute an ABI break (e.g. adding a
comment to a header file), but we rely on natural intelligence to sort
that out.  That means these labels should be removed manually, if they
are not appropriate, but if they are, the PR should not be merged into
any stable branch.  For the master branch, where ABI breaks are
permissible, the labels should still be removed if irrelevant, but kept
when the PR is merged.

Since tests are futile[1], we leave that to further (test) PRs.

[1] <https://github.com/php/php-src/pull/15682#issuecomment-2323060586>

Closes GH-15682.
2024-09-21 00:09:30 +02:00
Peter Kokot
43dc2eb6d8 Remove redundant *spell* libraries on Alpine (#15890)
These were needed mostly for the PHP <= 8.3 pspell extension. The
nchant2-hunspell gets installed automatically as a dependency with
enchant2-dev if needed.
2024-09-17 18:14:44 +02:00
Peter Kokot
2324e32c7d Remove redundant Kerberos library installation (#15889)
This was once needed for the --with-kerberos configure options by
openssl or imap extensions.
2024-09-17 18:13:54 +02:00
Ilija Tovilo
1be989bbf0 [skip ci] Move brew install libsodium to reinstall
Gets rid of the "already installed" warning on master.
2024-09-17 12:35:07 +02:00
Ayesh Karunaratne
5fa082316b CI: Update actions/cache in nightly run to v4 (#15933) 2024-09-17 08:51:57 +02:00
Christoph M. Becker
b438e2b1ed Merge branch 'PHP-8.3'
* PHP-8.3:
  Run snmp tests in Windows CI, again
2024-09-15 23:15:09 +02:00
Christoph M. Becker
ad11cbc491 Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  Run snmp tests in Windows CI, again
2024-09-15 23:14:15 +02:00
Christoph M. Becker
b26e610777 Run snmp tests in Windows CI, again
That was broken when CI was moved to GH, since `APPVEYOR_BUILD_FOLDER`
is no longer set; instead we use `GITHUB_WORKSPACE` which has the same
meaning.

Closes GH-15896.
2024-09-15 23:13:54 +02:00
Ayesh Karunaratne
d5b3ffa762 ext/gd: enable avif tests on GH-Actions (#15850)
When the avif support was first added (GH-7026), php-src did not
use GitHub Actions. When we moved to GitHub Actions for CI, the
`--with-avif` option nor the `libavif-dev` dependencies were not
added.

Cirrus CI still runs the tests, and now that we no longer use
Travis CI, this brings parity to test avif on x64 tests on
GitHub Actions as well.

`libavif-dev` package's x86 builds seem to be missing[^1][^2] on older
Ubuntu versions, so this commit only adds it for x64 builds.

[^1]: https://packages.ubuntu.com/jammy/libavif-dev
[^2]: https://packages.ubuntu.com/noble/libavif-dev
2024-09-15 14:57:47 +02:00
Ilija Tovilo
f6a232cce2 Fix missing deps in macos arm build (GH-15881) 2024-09-14 00:53:24 +02:00
Ilija Tovilo
99bee73325 Merge branch 'PHP-8.3'
* PHP-8.3:
  Fix GA macOS brew warnings
2024-09-13 23:14:55 +02:00
Ilija Tovilo
a08d326941 Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  Fix GA macOS brew warnings
2024-09-13 23:10:19 +02:00
Ilija Tovilo
664e039069 Fix GA macOS brew warnings
These pollute the job overview.

Closes GH-15877
2024-09-13 23:10:08 +02:00
Peter Kokot
13f041163c Remove Travis artefacts (#15714)
Travis was suspended https://github.com/php/php-src/pull/15314

This removes 404 errored Travis image in README, travis configuration
directory and YAML file and usages in tests.

[skip ci]

Co-authored-by: Gina Peter Banyard <girgias@php.net>
2024-09-04 01:15:10 +02:00
Ilija Tovilo
64bd828394 [skip ci] Update mysql versions for libmysql build 2024-09-02 12:31:56 +02:00
Ilija Tovilo
d7febabd23 Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  [skip ci] Backport libmysql build fix (d9a9696)
2024-09-02 12:09:36 +02:00
Ilija Tovilo
57f9041165 [skip ci] Backport libmysql build fix (d9a9696) 2024-09-02 12:08:55 +02:00
Arnaud Le Blanc
5b482b706e Alpine/Musl nightly job (#13925)
Co-authored-by: Michael Voříšek <mvorisek@mvorisek.cz>
2024-08-28 17:28:07 +02:00
Ilija Tovilo
37c22c4c7e Merge branch 'PHP-8.3'
* PHP-8.3:
  Fix git check in verify generated files (GH-15363)
2024-08-12 16:21:35 +02:00
Ilija Tovilo
cbe73a158f Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  Fix git check in verify generated files (GH-15363)
2024-08-12 16:20:24 +02:00
Ilija Tovilo
9be52dcd62 Fix git check in verify generated files (GH-15363)
Git 2.46.0 accidentally broke git diff --exit-code for files flagged with -diff.
Add the -a flag to restore the previous behavior. This issue is already fixed in
gits next branch.
2024-08-12 16:19:54 +02:00