Commit Graph

364 Commits

Author SHA1 Message Date
Ilija Tovilo
fa15ac542e
[skip ci] Merge branch 'PHP-8.4'
* PHP-8.4:
  [skip ci] Fix nightly workflow dispatch
2024-11-04 15:04:25 +01:00
Ilija Tovilo
ea39a89a74
[skip ci] Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  [skip ci] Fix nightly workflow dispatch
2024-11-04 15:04:14 +01:00
Ilija Tovilo
5852c89034
[skip ci] Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  [skip ci] Fix nightly workflow dispatch
2024-11-04 15:03:58 +01:00
Ilija Tovilo
2985de72db
[skip ci] Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  [skip ci] Fix nightly workflow dispatch
2024-11-04 15:03:47 +01:00
Ilija Tovilo
e72854e8bc
[skip ci] Fix nightly workflow dispatch
Closes GH-16662
2024-11-04 15:02:11 +01:00
Ilija Tovilo
ee19427a86
[skip ci] Merge branch 'PHP-8.4'
* PHP-8.4:
  [skip ci] Properly disable -Werror for libmysqlclient + mysqli
  [skip ci] Revert "Remove -Werror for libmysql test on 8.1 only"
2024-10-31 13:48:13 +01:00
Ilija Tovilo
c9a30c9cc3
[skip ci] Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  [skip ci] Properly disable -Werror for libmysqlclient + mysqli
  [skip ci] Revert "Remove -Werror for libmysql test on 8.1 only"
2024-10-31 13:47:55 +01:00
Ilija Tovilo
634eaa2c70
[skip ci] Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  [skip ci] Properly disable -Werror for libmysqlclient + mysqli
  [skip ci] Revert "Remove -Werror for libmysql test on 8.1 only"
2024-10-31 13:47:43 +01:00
Ilija Tovilo
e5d63eb4b9
[skip ci] Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  [skip ci] Properly disable -Werror for libmysqlclient + mysqli
  [skip ci] Revert "Remove -Werror for libmysql test on 8.1 only"
2024-10-31 13:47:23 +01:00
Ilija Tovilo
6c8a0d0163
[skip ci] Properly disable -Werror for libmysqlclient + mysqli 2024-10-31 13:43:39 +01:00
Ilija Tovilo
8a067cc221
[skip ci] Revert "Remove -Werror for libmysql test on 8.1 only"
This reverts commit 769947648e.

Nightly uses the file from master, so this change made no sense.
2024-10-31 13:40:26 +01:00
Ilija Tovilo
9577734278
[skip ci] Merge branch 'PHP-8.4'
* PHP-8.4:
  [skip ci] Fix nightly job name for 8.1
2024-10-31 13:38:58 +01:00
Ilija Tovilo
a15ba083f6
[skip ci] Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  [skip ci] Fix nightly job name for 8.1
2024-10-31 13:38:44 +01:00
Ilija Tovilo
98aac9eff6
[skip ci] Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  [skip ci] Fix nightly job name for 8.1
2024-10-31 13:38:32 +01:00
Ilija Tovilo
64fbd52cb4
[skip ci] Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  [skip ci] Fix nightly job name for 8.1
2024-10-31 13:38:06 +01:00
Ilija Tovilo
490acdf5e9
[skip ci] Fix nightly job name for 8.1 2024-10-31 13:37:23 +01:00
Ilija Tovilo
e00079daa1
Merge branch 'PHP-8.4'
* PHP-8.4:
  [skip ci] Move nightly to workflow_call
2024-10-30 16:54:39 +01:00
Ilija Tovilo
1b6320b0f5
Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  [skip ci] Move nightly to workflow_call
2024-10-30 16:54:27 +01:00
Ilija Tovilo
4685e3c309
Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  [skip ci] Move nightly to workflow_call
2024-10-30 16:54:20 +01:00
Ilija Tovilo
9e5024d988
Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  [skip ci] Move nightly to workflow_call
2024-10-30 16:54:11 +01:00
Ilija Tovilo
08bbd7d167
[skip ci] Move nightly to workflow_call
This PR removes most of the logic of nightly_matrix.php by converting
nightly.yml to a workflow_call, and invoking it multiple times for each branch
in a new root.yml workflow. The naming of the files is intentionally kept to
make the diff readable. They may still be renamed afterward.

Closes GH-16642
2024-10-30 16:53:55 +01:00
Ilija Tovilo
769947648e
Remove -Werror for libmysql test on 8.1 only 2024-10-30 14:47:15 +01:00
Ilija Tovilo
560a585117
[CI] Backport usage of db service for 8.1
Nightly already uses them. We're running into port clashes otherwise.

Closes GH-16647
2024-10-30 12:20:42 +01:00
Ilija Tovilo
ef56241483
Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  Backport nightly.yml and nightly_matrix.php to PHP-8.1
2024-10-29 15:34:18 +01:00
Ilija Tovilo
fe93cd4043
Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  Backport nightly.yml and nightly_matrix.php to PHP-8.1
2024-10-29 15:33:51 +01:00
Ilija Tovilo
9ad99bb56d
Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Backport nightly.yml and nightly_matrix.php to PHP-8.1
2024-10-29 15:33:27 +01:00
Ilija Tovilo
27e8860594
Backport nightly.yml and nightly_matrix.php to PHP-8.1
These files are usually only used on master, as the cron trigger runs on master.
However, workflow_dispatch does use the file from the triggered branch.
Furthermore, we're looking into migrating to a workflow_call trigger, which will
also run on the target branch. Backport these files now to make those changes
easier.
2024-10-29 15:30:34 +01:00
Ilija Tovilo
3aa672dd25
Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  Backport CI fixes to security branches
2024-10-28 15:59:10 +01:00
Ilija Tovilo
8538ac2667
Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Backport CI fixes to security branches
2024-10-28 15:58:58 +01:00
Ilija Tovilo
25c0993902
Backport CI fixes to security branches
Closes GH-16469

Working towards GH-16286

commit e0db221143b808d97bc3a44e9f0968c6308794b4
Author: Ilija Tovilo <ilija.tovilo@me.com>
Date:   Fri Oct 25 22:48:20 2024 +0200

    Move CFLAGS into ./configure command for consistency

commit 8ad67768250d181cd7fef30e0c866625bbd8ac94
Author: Ilija Tovilo <ilija.tovilo@me.com>
Date:   Fri Oct 25 22:47:03 2024 +0200

    Also upgrade nightly to macOS 13

commit 58a88ccb9f
Author: Ilija Tovilo <ilija.tovilo@me.com>
Date:   Wed Oct 23 19:07:59 2024 +0200

    Fix call to dc[n]gettext in tests with 0 $category

    This causes a segfault on PHP-8.1

commit 611af05c50
Author: Ilija Tovilo <ilija.tovilo@me.com>
Date:   Fri Dec 8 13:36:52 2023 +0100

    [skip ci] Skip intermittently failing curl test on macOS

    The test fails with "CURL ERROR: 56". I will create an issue for it shortly.

commit ec745178bb
Author: Ilija Tovilo <ilija.tovilo@me.com>
Date:   Wed Oct 23 19:05:32 2024 +0200

    Backport parts of 9999a0c for gettext

    See 9999a0cb75

commit 5ce703496f
Author: Niels Dossche <7771979+nielsdos@users.noreply.github.com>
Date:   Sun Jul 28 14:34:26 2024 +0200

    Fix CI failure on macOS after Curl update

commit 714a3e7071
Author: Niels Dossche <7771979+nielsdos@users.noreply.github.com>
Date:   Sat Jul 27 16:09:50 2024 +0200

    Fix CI failure after Curl update (#15124)

commit 4f2eb921b9
Author: Niels Dossche <7771979+nielsdos@users.noreply.github.com>
Date:   Thu May 23 22:20:37 2024 +0200

    Fix GH-14307: Test curl_basic_024 fails with curl 8.8.0

    Curl changed the behaviour, from the changelog:
      - lib: make protocol handlers store scheme name lowercase curl/curl@c294f9c

    From the docs: "The returned scheme might be upper or lowercase. Do
    comparisons case insensitively."

    Closes GH-14312.

commit 251195b41b
Author: Ayesh Karunaratne <ayesh@aye.sh>
Date:   Thu Feb 1 02:03:55 2024 +0700

    ext/curl: Fix failing tests due to string changes in libcurl 8.6.0

    Upstream libcurl 8.6.0 contains a change[^1] that caused a test failure.
    This fixes it by updating the test's `EXPECTF` to use a regex to account for both string patterns.

    [^1]: https://github.com/curl/curl/commit/45cf4755e71f#diff-a8a54563608f8155973318f4ddb61d7328dab512b8ff2b5cc48cc76979d4204cL1683

    Closes GH-13293.

commit fc5d83f2b1
Author: Christoph M. Becker <cmbecker69@gmx.de>
Date:   Wed Oct 16 22:46:20 2024 +0200

    Prepare for necessary move to macOS 13

    GH will remove macOS 12 runner images as of December 3rd, so we prepare
    for that.

    Besides the obvious need to change the runner, we also suppress a
    couple of warnings, because otherwise the build would fail due to
    `-Werror`.
2024-10-28 15:57:16 +01:00
Christoph M. Becker
df8f298d8d
Merge branch 'PHP-8.4'
* PHP-8.4:
  [skip ci] Allow to run push workflows manually
2024-10-10 02:14:20 +02:00
Christoph M. Becker
279e952159
Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  [skip ci] Allow to run push workflows manually
2024-10-10 02:13:57 +02:00
Christoph M. Becker
80477b15cf
Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  [skip ci] Allow to run push workflows manually
2024-10-10 02:13:19 +02:00
Christoph M. Becker
509fec8ee6
Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  [skip ci] Allow to run push workflows manually
2024-10-10 02:12:26 +02:00
Christoph M. Becker
0b5167cff5
[skip ci] Allow to run push workflows manually
As is, we're running the push workflow for all pushes and pull request,
plus we run more comprehensive nightly workflow for all branches which
had commits during the day.  That means that security branches may not
run CI for weeks or even months.  In the meantime, dependencies might
be updated, which can cause later workflow runs to fail.  For instance,
a few openssl tests fail due to security fixes in OpenSSL[1], an update
of Oracle Instant Client causes a couple of oci8 and pdo_oci tests to
fail[2], and the macOS builds do no longer even built (investigation
pending).

Therefore, we allow to run the pull workflow manually, so it is
possible to check the CI condition of temporary inactive branches from
time to time.

[1] <https://github.com/php/php-src/pull/16097>
[2] <https://github.com/php/php-src/pull/16107>

Closes GH-16148.
2024-10-10 02:11:59 +02:00
Christoph M. Becker
d9d82377cc
Update Windows CI to use php-sdk-2.3.0
php-sdk-2.2.0 still fetches dependencies from the no longer up to date
<https://windows.php.net/downloads/php-sdk/deps/>, and as such won't be
tested with any security updates we provide for Windows.  Given that
PHP 8.1 is going to receive security updates for further 15 months, we
should should not ignore these dependency updates.

Closes GH-16097.
2024-10-07 01:05:47 +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
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
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