Practical implementation guidance for Playwright JavaScript/TypeScript teams.
Overview
How it works
How projects, templates, triggers, manual runs, and result ingestion fit together.
How it works
ReleaseReady organizes execution around a few core objects:
- **Project**: the repository and runtime settings you want ReleaseReady to manage.
- **Checklist template**: the validation items and tags you want attached to a run.
- **Checklist run**: the execution record created by a webhook, manual run, or runner sync.
- **Integration**: currently used for GitHub repository and webhook metadata.
End-to-end flow
- Create a project and save the GitHub repository URL.
- Add a checklist template for the project.
- Configure GitHub to send pull request events to the project webhook URL.
- Trigger a run either manually or through a qualifying webhook event.
- ReleaseReady either delegates execution to the external runner service or executes directly in the app runtime, depending on environment configuration.
- ReleaseReady stores the run, status, and summarized output.
- The dashboard and APIs expose the run for review.
Execution modes
Delegated runner mode
When RUNNER_URL is configured, project run requests are sent to the runner /run endpoint. ReleaseReady stores the delegated job metadata and later accepts updates through POST /api/runner/results.
Direct execution mode
When no external runner is configured, ReleaseReady clones or downloads the repository in the app runtime, resolves a test command, and stores the output against the checklist run.
ReleaseReady preserves both execution modes. The product documentation in this repo intentionally reflects those current behaviors instead of describing a future multi-runner model that does not exist yet.