Skip to content

Consistent phpunit runners for local and CI#3

Closed
kasparsd wants to merge 65 commits into
mainfrom
add-phpstan-fresh
Closed

Consistent phpunit runners for local and CI#3
kasparsd wants to merge 65 commits into
mainfrom
add-phpstan-fresh

Conversation

@kasparsd

@kasparsd kasparsd commented May 14, 2026

Copy link
Copy Markdown
Owner

Development workflow consistency:

  • Standardizes local development and CI around wp-env so both paths use the same environment bootstrapping and runtime logic.
  • Adds a small npm command layer for common tasks like CLI access, linting, formatting, PHPUnit, and coverage, so developers and CI invoke the same commands.
  • Updates the coding standards workflow to run through the wp-env-based toolchain instead of relying on a separate runner-level PHP setup.

Local setup and onboarding:

  • Commits a Node version via .nvmrc and upgrades @wordpress/env, reducing local setup drift and keeping machines closer to CI.
  • Expands the contributing docs to make wp-env the default local workflow, covering start/log/stop commands, PHPUnit usage, coverage, and version overrides.
  • Supports both .wp-env.override.json and WP_ENV_PHP_VERSION / WP_ENV_CORE env vars, making local environment customization straightforward without changing repo defaults.

Local PHPUnit execution:

  • Moves PHPUnit execution into the wp-env tests container, removing the old split between custom local setup and CI-only test installation.
  • Adds a dedicated tests:cli path and install flow for test dependencies, so local test runs are easier to reason about and reuse.
  • Aligns the single-site and multisite PHPUnit config files with this workflow, including cleaner cache and coverage paths.

WordPress and PHP version matrix support:

  • Makes it possible to run PHPUnit locally against different WordPress core and PHP combinations by driving wp-env from override files or environment variables.
  • Broadens Composer dev tooling to support multiple PHPUnit versions and include the WP-CLI bundle needed for this workflow.
  • Replaces the hardcoded GitHub Actions exclusion list with a generated PHP/WordPress compatibility matrix, centralizing supported combinations in one script.

CI parity with local testing:

  • Uses the generated matrix in GitHub Actions so each job boots the requested WordPress and PHP combination the same way it can be done locally.
  • Refreshes Composer dependencies per matrix job so the right PHPUnit version is installed for that exact WordPress/PHP pairing.
  • Extends the same wp-env-based approach to coverage runs, improving parity between local verification and CI.

@github-actions

Copy link
Copy Markdown

kasparsd added 27 commits May 15, 2026 16:55
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
During CI we require in versions as needed

Signed-off-by: Kaspars Dambis <hi@kaspars.net>
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
kasparsd added 23 commits May 15, 2026 16:55
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
@kasparsd kasparsd force-pushed the add-phpstan-fresh branch from 051ece5 to 7ec0085 Compare May 15, 2026 13:55
kasparsd added 4 commits May 15, 2026 17:05
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
Signed-off-by: Kaspars Dambis <hi@kaspars.net>
@kasparsd

kasparsd commented Jun 9, 2026

Copy link
Copy Markdown
Owner Author

The remaining parts of this are now included in fairpm#493

@kasparsd kasparsd closed this Jun 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant