Raise minimum PHP to 8.3 and migrate QA tooling to phpdb-qa-tools (Mago, Infection, Codecov) #29
Workflow file for this run
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
| name: "Continuous Integration" | |
| # Branch protection blocks direct pushes to release branches, and pull_request | |
| # already re-triggers on every commit pushed to a PR branch (synchronize), so | |
| # there's no push:branches trigger here — only PRs (targeting numbered | |
| # release branches) and pushed version tags. | |
| on: | |
| pull_request: | |
| branches: | |
| - "[0-9]+.[0-9]+.x" | |
| push: | |
| tags: | |
| - "[0-9]+.[0-9]+.[0-9]+" | |
| jobs: | |
| qa: | |
| uses: php-db/phpdb-qa-tools/.github/workflows/continuous-integration.yml@0.1.x | |
| # CODECOV_TOKEN (org-wide) and INFECTION_DASHBOARD_API_KEY (per-repo) both | |
| # come through here, whichever scope actually defines each one. | |
| secrets: inherit | |
| with: | |
| php-versions: '["8.3", "8.4", "8.5"]' | |
| run-integration: true | |
| # Postgres container for the integration suite; the schema itself is | |
| # seeded by the ListenerExtension PHPUnit bootstrap, not this workflow. | |
| db-image: "postgres:17-alpine" | |
| db-port: "5432" | |
| db-env-json: '{"POSTGRES_DB":"phpdb_test","POSTGRES_USER":"postgres","POSTGRES_PASSWORD":"password"}' | |
| db-health-cmd: "pg_isready -U postgres -d phpdb_test" | |
| # The test/mutation-test jobs run directly on the runner VM (no | |
| # container:), so the DB is only reachable via 127.0.0.1 + the mapped | |
| # port, not the container name. phpunit.xml.dist defaults this to | |
| # "postgres" for local Docker Compose dev (container-to-container); this | |
| # overrides it for CI without touching that file. | |
| test-env-json: '{"TESTS_PHPDB_PGSQL_HOSTNAME":"127.0.0.1"}' | |
| enable-codecov: true | |
| enable-infection: true | |
| # Canonical leg for coverage + mutation testing (highest supported PHP). | |
| coverage-php-version: "8.5" |