feat: reusable ci.yml — estate CI standard (Phase 0, step 1) #19
Reference in New Issue
Block a user
Delete Branch "claude/reusable-ci-20260616"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What changed
Adds
.github/workflows/ci.ymlas a reusableworkflow_callentrypoint that every estate repo will adopt as a thin caller (Phase 0, step 1 of ADR2026-06-16-standardized-cicd-and-testing.md).No repo adoption in this PR — that is the rollout step.
Inputs
php_versions["8.1","8.2","8.3"]testsstubsstubs/wp-framework/brain-monkey/noneenforce_300trueline_limit_pathsincludeshas_jsfalsephpcs_autofixtrueJobs (fixed names — deploy gates on these)
lint-php/phpcs/file-size/phpunit/lint-jsKey design decisions
phpcbf auto-commit (prautoblogger gold standard): on
pull_requestevents, phpcbf runs first and commits auto-fixable violations back to the branch viaGITHUB_TOKEN. GITHUB_TOKEN commits do not trigger a new CI run. Strict PHPCS then fails only on non-auto-fixable violations. Onpushevents the commit step is skipped.wp-framework PHPUnit path handles all three known WP CI gotchas:
svn(ubuntu-latest no longer ships it)skip-db-create=true(6th arg) — MySQL service pre-createswp_tests; re-creating failsWP_CORE_DIRtrailing slash — bootstrap concatenates verbatim into ABSPATHAlso included
.github/workflows/ci-self-test.yml: thin caller withtests: noneso the reusable workflow runs on this PRREADME.md: adoption snippet + full input referenceCHANGELOG.md: v1.6.0 entryRisk flags
Low: pure YAML addition; no existing workflow modified.
Test plan
python3 -m yamllint(relaxed config, no structural errors)