CI: Disable Xdebug, use Rust release builds, consolidate unit-test matrix#425
Open
JanJakes wants to merge 2 commits into
Open
CI: Disable Xdebug, use Rust release builds, consolidate unit-test matrix#425JanJakes wants to merge 2 commits into
JanJakes wants to merge 2 commits into
Conversation
Merge the "PHPUnit Tests" (pure-PHP) and "MySQL Parser Extension Tests" workflows into a single "PHPUnit Tests" matrix that runs the mysql-on-sqlite suite with and without the native Rust parser extension: pure on PHP 7.2-8.5, plus the extension on PHP 8.0+ (its minimum). Job names read "PHP 8.2 / SQLite 3.45.1" and "PHP 8.2 + ext-wp-mysql-parser / SQLite 3.45.1". This drops the redundant pure-on-extension jobs (the old extension workflow re-ran the plain suite on 7.2-7.4, duplicating "PHPUnit Tests") and removes the reusable phpunit-tests-run.yml. The native jobs build the extension in release mode (cargo build --release) so the suite exercises it at realistic speed rather than the slow debug build. All setup-php steps now pass `coverage: none`. setup-php enables Xdebug by default, and the old pure-suite path left it on, instrumenting every call and running the suite ~4x slower (PHP 7.3: ~59s -> ~14s) while no coverage report was ever produced or consumed. Also set `coverage: none` on the MySQL Proxy and release-publish PHP setups. The merged workflow is path-filtered to the parser/driver/extension packages (plus root composer) like the extension workflow was, and triggers on push to trunk (the old phpunit-tests trigger referenced a non-existent "main" branch).
The native matrix jobs compile the extension with `cargo build --release`, which rebuilds the whole dependency tree from scratch each run. Add Swatinem/rust-cache for the parser-extension workspace so the cargo registry and target dir are cached across runs, cutting the release-compile time on warm runs without affecting the (now realistic) test-step timings.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Extracts the CI-only improvements from the parser/lexer performance work (#378) into a standalone, low-risk PR that can land on its own. No source changes — only
.github/workflows/.The main goal is to run PHP without Xdebug and to use Rust release builds for test exection.
What's included:
coverage: nonefixes that.Swatinem/rust-cache@v2), keyed by PHP version. This is nice-to-have for better CI job times end-to-end.mysql-parser-extension-tests.ymlandphpunit-tests-run.ymlinto a singlephpunit-tests.ymlmatrix, adding a with/without PHP extension dimension.