The old Xcode sticks around, so make sure we sort in reverse to pick the newer
version. Technically we should use something like sort -Vr, but -V doesn't exist
on macOS. But that won't be a problem until Xcode 100, which my great great
grand children can worry about.
This resolves a crash in release builds. This may be dropped again in the
future once the bugfix lands.
Co-authored by Alexandre Daubois <alex.daubois@gmail.com>
Co-authored by Arnaud Le Blanc <arnaud.lb@gmail.com>
Co-authored by Jakub Zelenka <bukka@php.net>
Closes GH-20669
Symfony 8.1 and 8.0 now require PHP 8.4. Use 7.4 for PHP 8.3 and 8.2 builds. PHP
8.1 continues to be skipped. Sadly, this will need to be updated sporadically.
Closes GH-20512
jobs_url is a link to the api, rather than the website.
Also tweak wording, as we now only send one notification per workflow, rather
than per failed job.
The nightly matrix with an empty cache takes several hours to complete due to
the amount of jobs. This will effectively block the entire CI for the php
organization since there is an organization-wide limit of 20 jobs. Move the
cache buster job to Sunday to make it less likely for folks to fight with the
Nightly build for resources.
Keep this up to date in all non-security-only branches, because the node.js
runtime for older versions might get deprecated in the future and fixing this
for all branches at once is easier.
see 45e60e585e
Unfortunately, these jobs routinely fail to boot correctly. In this case,
they'll stall and block CI for 6 hours until they finally fail. Add a limit to
make them fail earlier.
Unconditionally execute assignment of EXIT_CODE. Otherwise, the variable bleeds
into the next iteration. Also add newline before ::endgroup::. ASAN does not add
a trailing newline.
We are adding extra (non-phpt) test suites in [1] and [2]. In order to
avoid touching CI files too often (which are maintained in 8.1 and merged in
upper branches), we add a single entry point to call the extra tests. The entry
point can be updated in branches without synchronizing all the way from 8.1.
CI files still need to be touched to install dependencies of these tests,
but this should be manageable as these do not change often and are the same
in every branch.
Closes GH-19242.
[1] https://github.com/php/php-src/pull/16987
[2] https://github.com/php/php-src/pull/18939
--ignore-platform-reqs may accidentally install versions of dependencies
that no longer support the given PHP version. --ignore-platform-req=php+
will only suppress errors for new PHP version but not change behavior
for older versions. Thanks to Tim for the hint.
Also skip the Laravel build for PHP 8.1, which is no longer supported on
Laravel's default branch.
Recent hosted GH Windows runners already have MySQL preinstalled, so
there is no particular need to install it again via Chocolatey or other
means.
If we ever need to address more specific needs, we may want to have a
look at <https://github.com/ankane/setup-mysql>.
Closes GH-17561.
Closes GH-17570.
There are two issues: The latest Symfony branches don't support 8.1
anymore. This could ber mitigated by switching to LTS for security
builds. However, there are also some JIT bugs that are hard to backport.
We'll skip these builds on 8.1 instead.
Based on the discussion in GH-16286, drop the intl build from macOS + PHP 8.1,
since we cannot build with supported intl versions without too many changes.
Closes GH-17092
See GH-16286
The `vmactions/freebsd-vm` GitHub action rsyncs the work dir to to the
VM. This adds a lot of log output due to `rsync -v` usage.
Once the tests are compelte, the action copies the files _back_ by
running `rsync` in reverse. However, we do not need these files back
because we do not run any other steps that need access to the post-test
files.
Setting `copyback: false` disables this, and cuts the log size by about
5,000 lines.
Closes Closes GH-16916.
PHP-8.1 is not ready for ICU >= 75.1 which requires C++17 support.
Thus we force the usage of icu4c@74, what is scheduled for removal in
May 2025, though.
Closes GH-16789.
This is only defined as of PHP-8.4; alternatively we could also inline
the `brew --prefix` call, but that makes it harder for upward merges.
Closes GH-16785.
cURL 8.11.0 added a couple of packages to `Requires.private`, but these
packages are irrelevant when building against a shared libcurl. For
some reason, these private requirements are checked when we're doing
`pkg-config --cflags` (that happens with the preinstalled pkg-config
0.29.2, as well as with pkgconf 2.3.0). To avoid further messing with
these packages, we just drop the `Requires.private` line from
libcurl.pc.
See GH-16741 for more details.
Closes GH-16783.