← Back to projects
WordPress plugin case study

Deploy & Test

Safer WordPress release workflows

A WordPress plugin that lets trusted users trigger configured GitHub Actions deploy and test workflows, follow their status, review test summaries, and inspect an audit trail without direct GitHub access or personal access tokens.

I am the sole creator of the project and took it from product definition through design, development, testing, documentation, packaging, and release.

Deploy & Test WordPress admin interface showing deploy controls, successful workflow states, and a test summary
RoleProduct development, WordPress engineering and Quality Engineering
UsersWordPress developers, small teams and trusted site managers
StackWordPress, PHP, GitHub App and GitHub Actions
QualityRisk-based QA, PHPUnit, Playwright and release gates
StatusActively maintained public reference project
ReleaseLatest public release · GPL-2.0-or-later
01

The problem

WordPress teams may manage content and site operations inside the CMS while their deployment and automated testing workflows live in GitHub. A trusted site manager may need to run an approved action, but should not need repository access, workflow configuration permissions, or personal access tokens.

Putting a button in WordPress is only the visible part of the problem. A release-related interface must also control who can configure and operate it, validate the exact target, prevent duplicate workflows, explain current state, handle failures safely, and preserve a useful trace afterwards.

02

The workflow I built

An Administrator configures the permitted repositories, refs, workflow files, environments, and actions. Sensitive GitHub App values remain in server configuration rather than database-backed plugin settings.

An authorized Administrator or Editor can then run a preview, production, or test action. WordPress creates a short-lived installation token, dispatches the configured workflow, polls for status, renders test-summary artifacts, and records the operation in the audit log.

Deploy & Test Connection screen showing configured GitHub App status, sandbox repositories, test environments, and permitted test actions
Administrators define and validate the permitted repositories and workflows; operational users can run approved actions without changing this boundary.
03

Designing around release risk

I treated failure modes as product requirements, not as implementation details to consider after the interface was complete.

01

Separate configuration from operation

Administrators manage connections and cleanup settings. Editors can run approved actions without changing the integration, while Subscribers cannot access the plugin.

02

Validate before dispatch

Repository, ref, workflow, environment, and action values are validated before they can reach the GitHub integration boundary.

03

Prevent competing actions

Immediate UI feedback and server-side locks block rapid duplicates and cross-action concurrency while a workflow is active.

04

Make outcomes traceable

Status panels connect an action to its GitHub run, while the audit log records the actor, action, status, time, and safe details.

04

Deploy, test, and review

The normal workflow runs a controlled deployment, starts automated tests, restores the available actions after completion, and brings the resulting test evidence back into WordPress.

A controlled deployment is followed by an intentionally mixed test suite, making both workflow protection and readable failure evidence visible.
05

A layered QA strategy

The test strategy assigns each risk to the smallest reliable layer instead of forcing every check through one slow end-to-end path.

01

Local WordPress

Activation, configuration, roles, audit retention, and uninstall data handling.

02

Mocked GitHub API

Dispatch contracts, controlled errors, timeouts, malformed responses, locks, and artifact boundaries.

03

PHPUnit

Permissions, nonces, validation, authentication, escaping, credential leakage, status, audit, and cleanup.

04

Playwright

Seven Administrator, Editor, and Subscriber journeys, including restoration and a stored-content XSS boundary.

05

QA sandbox

Real GitHub App authentication, workflow dispatch, polling, concurrency, and artifact downloads away from production.

The documented manual suite contains 24 critical scenarios, including successful and intentionally failing workflows, malformed configuration and artifacts, controlled API errors, duplicate submission, cross-session locking, and both cleanup and data-preservation uninstall modes.

06

When testing changed the product

Foundation testing found that test actions remained unavailable after completion until the user manually refreshed the page. Refreshing also returned the interface to Deploy status instead of preserving Test status.

I preserved the original behaviour in the QA report, tracked the improvement in issue #1, implemented the change through pull request #2, and added regression coverage. The fix first shipped in v1.0.3 and remains part of the current release.

Deploy & Test interface with deploy and test actions locked while an intentionally mixed test workflow is running
Role checks and server-side locks prevent competing actions while the active workflow is running.
Deploy & Test audit log showing successful, blocked, and failed operations with actor and details
Successful, blocked, and failed operations remain attributable without exposing credential material.
07

Release confidence

The downloadable ZIP is tested as a release artifact. Publishing depends on the complete verification workflow rather than assuming source-level checks are enough.

  • Composer dependency audit
  • WordPress Coding Standards
  • WordPress and PHP compatibility matrix
  • WordPress Plugin Check
  • Packaged ZIP installation and activation
  • PHPUnit and seven Playwright journeys

An early compatibility-gate run exposed failures, the gate was corrected, and later verification and release runs completed successfully. The current release was published through this gated process.

View public workflow evidence
08

Outcome

Deploy & Test is a working public plugin with a downloadable release and an inspectable quality process. It gives trusted WordPress users a clearer way to operate approved GitHub Actions workflows while keeping configuration, credentials, concurrency controls, status, test evidence, and audit history within explicit boundaries.

The project reflects how I approach Quality Engineering alongside implementation: identify the highest-risk behaviours, choose the appropriate test layer, preserve evidence, turn findings into product improvements, and make release confidence repeatable.

Explore the project

Inspect the implementation and evidence

The repository includes the plugin, testing strategy, manual scenarios, automated suites, release workflows, and packaged releases.