CI Setup
ScreenCI can generate a GitHub Actions workflow during init, and that workflow is meant to be a usable default, not a placeholder. It records the same way you do locally, but with repository secrets and a deterministic CI environment.
You will learn
- what the generated workflow does
- which secret is required
- when to record on push and when to use manual dispatch
- how to keep CI recordings predictable
Generated workflow
When you opt into CI during init, ScreenCI writes:
.github/workflows/screenci.yamlThe generated workflow:
- runs on pushes to
main - also supports
workflow_dispatch - checks that
SCREENCI_SECRETexists - checks out the repository
- installs Node.js 24 and caches dependencies for your package manager
- installs Chromium if the Playwright cache is cold
- runs
screenci record
That is intentionally close to Playwright’s own CI model. If you need deeper background on Playwright runners and browser installation, see Playwright CI.
Required secret
Add SCREENCI_SECRET as a repository secret in GitHub Actions. You can get it
from app.screenci.com/secrets.
The generated workflow fails early if the secret is missing so you do not spend time waiting for a recording job that cannot upload anything.
Push vs manual dispatch
Start simple:
- keep
pushtomainwhen you want docs and product videos to stay current automatically - use
workflow_dispatchwhen you want a manual review or approval step before recording
You can narrow the trigger later, but the generated default is intentionally easy to adopt.
Keep recordings deterministic
CI recordings work best when:
- the target environment is stable
- feature flags are fixed
- seeded demo data is predictable
- authentication is handled before visible recording starts
- visible waits are tied to UI state instead of luck
If a flow only works when everything is timed perfectly, fix the script locally before pushing CI responsibility onto it.
Relation to accepted and latest renders
CI uses the same ScreenCI upload and render pipeline as local recording. The main difference is that it becomes repeatable and repository-driven, which is useful when published videos should follow the shipped app.
What’s next
- Public URLs and Embeds for delivery.