ci: get the pipeline & docker workflows running green (5 pre-existing breakages)#95
Merged
Merged
Conversation
The repo's Actions policy is "Allow select actions" with only actions/*, shivammathur/setup-php@*, and dorny/paths-filter@* permitted. Six workflows used other marketplace actions, so GitHub rejected them at startup (startup_failure, zero jobs) — Pipeline Tests, Security Audit, commitlint, Init Wizard, Lighthouse CI, and visual-regression never actually ran. Swap the disallowed actions for GitHub-owned / already-vendored equivalents: - pnpm/action-setup@v4 → Corepack (`corepack enable`; pnpm version comes from the root package.json `packageManager` field) in pipeline-tests, security-audit, init-wizard, visual-regression, lighthouse-ci. - wagoid/commitlint-github-action@v6 → the repo's own @commitlint/cli (`pnpm exec commitlint --from <base> --to <head>`). - treosh/lighthouse-ci-action@v12 → the already-vendored @lhci/cli (`pnpm exec lhci autorun --upload.target=temporary-public-storage`). This unblocks the InDesign pipeline tests + fixture test so they actually execute in CI (epic #61's "exercised in CI" criterion). release-please.yml still uses googleapis/release-please-action@v4 — left as-is rather than hand-rewriting release automation; allowlist that one official action in repo Settings → Actions, or convert it in a dedicated change. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Now that the workflows actually start, the test step ran for the first time and failed: `node --test "<glob>"` needs Node 21+ (test-runner glob support), but pipeline CI runs Node 20, so zero tests executed. - packages/pipeline test script → `node --test` (no-args auto-discovery), which works on Node 20 and 24 alike and keeps the Node-20 floor meaningful (the directory form is broken on Node 24; only no-args/explicit work on both). - init-wizard CI → Node 22 (its test:init script keeps the node-glob form, which needs ≥21; the init wizard has no Node-20 pin, unlike the pipeline). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The floating wordpress:php8.3-apache base moved to Debian 13 (trixie), where
the libzip soname bumped to .so.5, so `apt-get install libzip4` in the
production stage failed ("Unable to locate package libzip4") and the whole
image build — and thus every docker-booting workflow (lighthouse-ci,
visual-regression) and local `wordpress-local.sh build` — broke.
Verified against the trixie base: libzip's runtime package is now libzip5
(libzip-dev depends on it); the other runtime libs (libpng16-16,
libjpeg62-turbo, libfreetype6, libwebp7) kept their names. Full multi-stage
`docker build --target production` now completes locally.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The lighthouse-ci and visual-regression workflows booted the WordPress stack
and waited for an HTTP 200, then ran the WooCommerce installer — which bailed
with "WordPress is not installed yet". A fresh container answers 200 with the
*install wizard*, so "responding" ≠ "installed", and the compose stack has no
core-install step (locally that's `wordpress-local.sh install`).
Add an idempotent "Install WordPress core" step (the same `wp core install`
the host script runs, guarded by `wp core is-installed ||`) before the
WooCommerce step in both workflows. Verified locally end-to-end: build → boot →
wp core install → WooCommerce installer now proceeds ("Installed 1 of 1
plugins", pages created) instead of erroring.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
`lhci autorun` failed every run with: `"timing-budget" is not a known audit` (and the same for performance-budget). Lighthouse 12 — the version bundled with @lhci/cli 0.14 — doesn't emit the performance-budget/timing-budget meta-audits, so asserting on them fails unconditionally on `auditRan`. This was never caught because the workflow had never actually run (it was in startup_failure). Remove those two assertions. The real perf gates remain and were already passing in CI: categories:performance (≥0.70), categories:accessibility (≥0.90), and cumulative-layout-shift (≤0.1). budgets.json stays — Lighthouse still consumes it for the report — and a comment notes how to re-add budget assertions in a LH12-compatible way. With this, the lhci assert step passes (only the non-failing best-practices/seo warnings remain), so lighthouse-ci is green end to end. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.
Takes the repo from "no pipeline/docker workflow can even start" to a fully green CI suite. Five independent, pre-existing breakages — none introduced by the InDesign epic; all surfaced while confirming the InDesign fixture test actually runs in CI (#61). Each fix is validated (CI for the test/lint jobs; CI + local Docker for the heavy workflows).
startup_failure— repo Actions policy whitelists onlyactions/*,shivammathur/setup-php@*,dorny/paths-filter@*pnpm/action-setup→Corepack,wagoid/commitlint-github-action→@commitlint/cli,treosh/lighthouse-ci-action→vendored@lhci/clinode --test "<glob>"needs Node 21+test→ no-argsnode --test; init-wizard→Node 22libzip4renamedlibzip4→libzip5(verified vs trixie base; full build runs locally)wp core installstep before the WooCommerce step in both docker workflowslhcifails every run:"timing-budget" is not a known audit— LH12 doesn't emit budget meta-auditsResult — every check green
test-indesign-pkg(Pipeline Tests): runs the InDesign fixture test (.idml+ PDF) on Node 20 ✅ — satisfies epic Add InDesign-to-WordPress conversion pipeline #61's "exercised in CI" criterionNot changed
release-please.ymlstill usesgoogleapis/release-please-action@v4(disallowed; it only runs on push to main so it's not a PR check). Allowlist that one official action in Settings → Actions → General, or convert it to therelease-pleaseCLI in a follow-up.🤖 Generated with Claude Code