Case study · LookSuite
Client project · AugmentProject period2025 – Present
Pull-request quality gate
Built automated pull-request quality and performance validation, including API load testing, application tests, and video-pipeline telemetry comparison against the main branch.
01
Why
main is protected, so every change reaches it through a pull request. That pull request has to be solid enough to catch problems first. The gate is a precaution so nothing breaks the system. It also saves developer time and improves productivity, because problems surface on the pull request instead of after the merge.
02
Decision
Every pull request starts GitHub Actions, which runs grouped checks in parallel. File-based filtering picks the checks that fit the files changed, and caching keeps repeat runs fast. A merge gate allows the merge only if the required checks pass.
- Builds (4): frontend, web app, backend and the QR shortener.
- Tests: Vitest for the frontend, Supertest for the Node.js backend, Playwright for end-to-end, and a Storybook regression test.
- Static analysis (6): frontend, backend, web, end-to-end tests, repo root and the QR shortener.
- Security: a secret scan on the changes.
- Guards (4): Breaking Change, Documentation, Deployment Workflow and Public Web.
- Performance: a k6 API load test, plus the video pipeline run with the pull request's changes. Its telemetry is compared with
main's and summarized as "perf vs main".
How it fits
Hover or focus a box for the story behind it.
Every pull request starts GitHub Actions, which runs the checks in parallel: builds, tests, static analysis for each part of the repo, secret detection, guard checks and the performance checks. If the required checks pass, the pull request can merge.
03
Alternatives considered
Husky pre-commit hooks run the checks locally and cost no runner time. Each folder has its own script, and a single Husky setup in the repo root can reach all of them, so the hook runs the same scripts the pipeline does. The catch is that a developer can skip a hook. So Husky stays as a free early check, and the pull request remains the check nobody can bypass.
04
What I built
Designed and maintained automated pull-request validation workflows using GitHub Actions to detect code-quality, application-performance, and video-processing regressions before changes are merged.
The PR validation process includes checks such as:
- Linting and formatting validation
- Documentation validation
- API load/performance testing
- Automated application tests
- Video-pipeline telemetry validation
Implemented video-pipeline telemetry comparison between the main branch and pull-request builds, surfacing performance differences to identify potential improvements or regressions introduced by a change.
05
Trade-offs
- Runner cost can be high, because many checks run on every pull request.
- To reduce it, only the checks that fit the changed files run, caching is on, and some test cases move into the Husky hooks.
- Moving checks into Husky saves runner time, but Husky can be overridden. The pull-request checks stay required before merge for that reason.
06
Outcome
From GitHub Actions usage metrics over the last 30 days:
- Average job runtime: 1 minute 47 seconds.
- Average queue time: 2 seconds.
- Job failure rate: 2%.
- Failed-job usage: under 100 minutes.