44 Commits

Author SHA1 Message Date
michael-grunder f14ce6007b fix: Use the git sha instead of branch name for Windows CI
The `/` gets turned into a path separator breaking CI on Windows. This
commit attempts to send the commit sha instead which will never have
slashes.
2026-06-14 10:11:20 -07:00
michael-grunder 60eb01c4dc CI: Add a timeout when waiting for Redis instances
Rarely CI hangs forever (or until it hits the maximum workflow execution
time) when Redis doesn't come up properly.

This just adds a configurable timeout so we can rerun the workflow when
it hangs.
2026-03-26 14:28:53 -07:00
Pavlo Yatsukhnenko 8f8272dbf1 Migrate to php/php-windows-builder for Windows builds 2026-01-09 08:35:44 -08:00
Emre Çalışkan a6313d1bda fixed "tee: /opt/homebrew/etc/php/8.5/conf.d/90-redis.ini: No such file or directory" 2025-12-01 09:01:00 -08:00
Emre Çalışkan ac54591d1e Added 8.5 to Mac and Windows CI 2025-12-01 09:01:00 -08:00
michael-grunder 1d07c3a07e Add a .github/copilot-instructions.md file
Additionally remove `.github` from our root-level `.gitignore` file. I
assume it was erroneously added some time ago since we have files in
this repo.

Fixes #2705
2025-09-10 16:54:46 -07:00
Michael Grunder b83981aaeb Rework HEXPIRE test inclusion + bump Valkey (#2684)
* Rework `HEXPIRE` test inclusion + bump Valkey

* Add a little `haveCommand` helper which uses `COMMAND INFO` to check
  if a given server has a specific command. This way when we bump valkey
  to an official release that supports the commands we will start
  testing.
* Bump Valkey from 7.2.5 to 8.1.3 which is much newer.

* Rework `haveCommand` to explicitly check for the command name

COMMAND INFO will return the command name as one of the first bits of
data so we can check for it that way.

* Fix incorrect logic
2025-08-06 10:08:49 -07:00
Pavlo Yatsukhnenko 334937cb98 Add PHP 8.5 to CI 2025-08-04 07:39:25 -07:00
michael-grunder 8014000369 Attempt to fix flaky GitHub CI tests.
We often have to rerun the test suite on GitHub actions because of a
hard to reproduce "Read error on connection" exception when getting a
new `RedisCluster` instance.

No one has ever reported this failure outside of GitHub CI and it's not
clear exactly what might be going on.

This commit does two main things:

1. Allows for one failure to construct a new `RedisCluster` instance but
   only if we detect we're running in GitHub CI.

2. Adds much more diagnostic information if we still have a fatal error
   (e.g. we can't connect in two tries, or some other fatal error
   happens). The new info includes the whole callstack before aborting
   as well as an attempt to manually ping the seeds with `redis-cli`.
2025-05-08 09:19:12 -07:00
Pavlo Yatsukhnenko a10bca35bb Update codeql to v3 2025-01-31 22:07:21 +02:00
Pavlo Yatsukhnenko 6097e7ba50 Add PHP 8.4 to CI 2024-11-25 08:31:33 -08:00
michael-grunder eb66fc9e2f Pin ubuntu version for KeyDB 2024-10-15 10:40:15 -07:00
michael-grunder 985b0313fb KeyDB doesn't have a noble release yet. 2024-10-14 14:00:21 -07:00
Christoph M. Becker f89d4d8f6e Windows CI: update setup-php-sdk to v0.10 and enable caching 2024-09-30 15:39:25 +02:00
michael-grunder 9d38050093 Upload artifact v2 is deprecated 2024-09-19 14:51:09 -07:00
michael-grunder d68c30f87d Remove Windows PHP 7.x jobs 2024-05-16 11:44:52 -07:00
michael-grunder f350dc342c Test aginst the first stable version of valkey.
Now that valkey has an official release we can test against that and
remove the "continue-on-error" flag in CI.
2024-04-16 11:50:07 -07:00
Michael Grunder dc39bd55a0 Remove 7.2 and 7.3 from CI. (#2478)
< 8.1 is EOL but no one upgrades when they should so it's probably
prudent to make sure we still compile against 7.4.
2024-04-08 14:53:27 -07:00
michael-grunder 59965971bb Add a CI step that waits for server instances before running tests
Every so often our tests will fail because we attempt to interact with
one of the daemonized server instances before it has enough time to
actually start.

Usually this happens when we try to use the cli tool to execute
`--cluster-create`, but it can occur elsewhere as well.

This commit adds a step that waits for every instance that we started to
actually be up before trying to create the cluster and run subsequent
unit tests.

Additionally it switches from `$(seq a b)` to the `{a..b}` brace
expansion.
2024-04-08 10:38:13 -07:00
michael-grunder a819a44b83 Test against valkey
Add Valkey to our server matrix in addition to making the jobs a bit
more efficient by only installing the specific server we're testing on
each run.

For now we allow tests to fail against Valkey as they don't yet have an
official release.  Once there is an official release we'll remove the
`continue-on-error` setting for Valkey.
2024-04-07 13:35:07 -07:00
michael-grunder 54d62c7240 Add KeyDB to CI
See: #2466
2024-03-22 19:08:45 -07:00
Michael Grunder ece3f7bebc Fix config.m4 when using custom dep paths (#2453)
* We need both PHP_ADD_LIBRARY_WITH_PATH and PHP_ADD_INCLUDE

Fixes #2452

* Add an initial test block for ./configure correctness.
2024-03-04 21:03:01 -08:00
Róbert Kelčák 78d15140fa Add PHP 8.3 to CI
Also Windows setup-php-sdk action was moved to the official repo where is maintained again.
2023-12-02 12:36:44 +01:00
Pavlo Yatsukhnenko f4c2ac2647 Use actions/checkout@v4 2023-09-23 14:46:25 +03:00
Michele Locati 35a7cc094c Test PECL package creation 2023-05-09 13:24:56 -07:00
Pavlo Yatsukhnenko 82265c4d54 Fix install dependencies on Ubuntu 2023-04-02 13:52:00 +03:00
michael-grunder ae3bc505a2 Fix shellcheck warnings 2022-12-11 15:42:54 -08:00
michael-grunder 856b3509f5 PHP 8.2 is now released. 2022-12-10 16:22:17 -08:00
michael-grunder 59de183bd4 Use Get-ChildItem instead of a hardcoded path for php_relay.dll 2022-12-10 15:08:31 -08:00
Michael Grunder ac057145fc Build windows artifacts as part of CI (#2295)
Build windows artifacts as part of CI

See: #2291
2022-12-10 13:08:50 -08:00
michael-grunder 2a6dee5d4d Use PHP's new class constant mechanism.
Let gen_stub.php define the constants for us, including deriving their
actual values from C defines.

As a side-effect we have to drop support for PHP < 7.2 as it does not
have interned strings.
2022-11-24 09:26:44 -08:00
Till Krüss 7930a78875 Move issue template (#2247)
* move issue template
* ignore /.github; + cleanup
2022-11-08 14:12:38 -08:00
michael-grunder 46e64277af Suppress a valgrind false positive 2022-10-09 16:15:02 -07:00
Pavlo Yatsukhnenko 9d61504e75 GitHub Actions
Test builds on macos and windows
2022-06-30 20:55:14 +03:00
Pavlo Yatsukhnenko 9ff5c33a17 Install redis from official repository 2022-06-29 20:03:40 +03:00
Pavlo Yatsukhnenko a5c41ceb0f Fix tests on Redis 7.0 2022-05-26 16:32:21 +03:00
Pavlo Yatsukhnenko bfe05a6936 CodeQL 2022-04-13 18:06:25 +03:00
Pavlo Yatsukhnenko 56633e1b6b Fix tests 2022-01-21 21:23:52 +02:00
Michael Grunder 04fd44be8b Relax TTL test and run a smaller cluster in GitHub Actions (#2040)
* Fix expire check in testttl

The previous logic was timing related and also kind of testing Redis'
expiration logic itself.

* Use a smaller cluster in GitHub CI
2021-12-02 12:14:01 -08:00
Ruud Kamphuis b8d3427ce9 Add experimental support for PHP 8.2 2021-11-17 09:13:16 +01:00
Ruud Kamphuis a809d764a5 Remove experimental for PHP 8.1 on CI 2021-11-17 09:13:09 +01:00
Pavlo Yatsukhnenko 7c0ae874d4 Fix PHP 8.1 tests 2021-07-19 15:10:03 +03:00
Pavlo Yatsukhnenko 43b3821b36 GitHub Actions 2021-07-16 21:03:27 +03:00
Pavlo Yatsukhnenko 6f3f378274 Create FUNDING.yml 2019-11-06 08:49:44 +02:00