Commit Graph

7 Commits

Author SHA1 Message Date
peptiderepo
6adf255dea fix(ci): P2-A injection, P2-B lint-js fallback, P2-C phpcs config detection
P2-A: move ${{ inputs.line_limit_paths }} from raw shell into env: block (PATHS)
      to eliminate template-injection surface on caller-controlled input.
P2-B: replace 'npm run lint --if-present' (always exits 0 on missing script,
      killing the node --check fallback) with explicit node -e detection;
      fallback now actually runs when no lint npm script is defined.
P2-C: both phpcbf and phpcs steps now detect which of phpcs.xml /
      phpcs.xml.dist / .phpcs.xml.dist is present and pass it to --standard;
      guard and command now agree for all three config filename variants.

Validators: actionlint 1.7.4 clean, yamllint 1.38.0 clean (both files).
Version: 1.6.1

Agent-Session: claude/reusable-ci-20260616-p2-fixes
2026-06-16 12:01:53 +00:00
peptiderepo
b5e54a4bdd feat: reusable ci.yml — estate CI standard (Phase 0, step 1)
Add .github/workflows/ci.yml as a reusable workflow_call entrypoint for
all 7 estate repos. Consistent job names (lint-php, phpcs, file-size,
phpunit, lint-js) so deploy-app.yml can needs: them uniformly.

Inputs: php_versions (JSON matrix), tests (stubs|wp-framework|brain-monkey|none),
enforce_300, line_limit_paths, has_js, phpcs_autofix.

phpcbf auto-commit: on pull_request, phpcbf runs and commits any auto-fixable
PHPCS violations back to the branch via GITHUB_TOKEN before strict phpcs.
On push events the commit step is skipped to prevent loops.

wp-framework PHPUnit path handles all three known WP CI gotchas:
(1) install svn (ubuntu-latest lacks it);
(2) skip-db-create=true (MySQL service pre-creates wp_tests via MYSQL_DATABASE);
(3) WP_CORE_DIR trailing slash (ABSPATH concatenation guard).

Also adds:
- .github/workflows/ci-self-test.yml: self-test caller (tests: none) so the
  reusable workflow is exercised on this PR.
- README.md: adoption snippet + full input reference for caller repos.
- CHANGELOG.md: v1.6.0 entry.

Agent-Session: claude/reusable-ci-20260616
2026-06-16 11:30:33 +00:00
peptiderepo
b9ffad1db3 test: board Generate-Now skip-if-absent smoke (M4 surface) (#18)
Skip-if-absent Playwright spec for the board New Article / Generate Now control; now live with prautoblogger v0.21.0. Gates future deploys.

Agent-Session: m4-generate-now-smoke-20260614
2026-06-15 01:53:49 +07:00
peptiderepo
65c5de61cb test: dossier edit+rerun smoke (M3, skip-if-absent) — v1.4.0 (#15)
QA: APPROVE (companion verdict in qa-reviews/prautoblogger/2026-06-12-6ed639d.md check 10). Skip-if-absent per M3 binding.

Agent-Session: cto-e2e-merge-20260612
2026-06-12 22:04:20 +07:00
peptiderepo
d590dc9dee fix(auth): survive ERR_ABORTED in login retry — recreate context, 5 attempts with backoff (#16)
QA: APPROVE (qa-reviews/peptide-e2e/). CEO program greenlight 2026-06-12.

Agent-Session: cto-e2e-merge-20260612
2026-06-12 22:02:51 +07:00
peptiderepo
a05d90405d Dossier admin smoke: gate deploys on prautoblogger-dossier rendering (#14)
Merged ahead of the v0.19.3 dossier fix so staging smoke gates it.
QA: APPROVE qa-reviews/peptide-e2e/2026-06-12-0c5c301.md (re-head after conflict resolution)

Agent-Session: cto-dossier-403-hotfix-20260612
2026-06-12 18:29:25 +07:00
peptiderepo
52a05f994c Board admin smoke: assert prautoblogger-board renders for admin (#13)
Guards the submenu-before-parent 404 class in the deploy gate.
QA: APPROVE-W-P2 qa-reviews/peptide-e2e/2026-06-12-113bb17.md

Agent-Session: cto-board-404-hotfix-merge-20260612
2026-06-12 16:05:30 +07:00