main publish them to Deepline.
These instructions work for a human or coding agent.
For GitHub.com, use Git deploys unless your
organization cannot install the Deepline GitHub App. This Actions workflow is
the fallback for restricted organizations and GitHub Enterprise Server.
Deploy a directory of Plays
deepline plays deploy takes a directory, works out which Plays it contains,
and deploys them as one unit: every changed Play is validated and registered,
then promoted together, so either all of them go live or none do. Unchanged
Plays are skipped.
It does not use git. Check the code out however you like first — in GitHub
Actions that is actions/checkout:
deepline.json selects the Plays (default **/*.play.ts).
Pass a path to deploy one part of a monorepo (deepline plays deploy ./growth)
and --manifest <file> for a different manifest. Any CI works the same way:
the command only needs the files on disk and DEEPLINE_API_KEY.
Record where the code came from with --repo, --ref, and --commit. They
are provenance on the deployment receipt, nothing more:
A Play a linked repository owns
Deploying a directory that contains a Play a linked repository deploys is allowed: the version goes live and the Play is marked drifted from that repository, because the next push from it will replace what you just deployed.- Still using the repository? Push the same change from it. That deploy wins and clears the drift.
- Done with the repository? Unlink it. An unlinked repository owns nothing, so its Plays are released: they keep their live version and stop showing the repository as their source or being marked drifted from it.
1. Add Play source to the repository
Commit each Deepline Play as a*.play.ts file. Each file must contain one
default-exported definePlay and a top-level description. Do not put multiple
deployable Plays in one file. The files can live anywhere in the repository.
Keep code and non-secret configuration in GitHub. Store provider credentials in
Deepline. Do not commit customer data, credentials, or live provider responses.
2. Pin the Deepline CLI
Choose a tested version:DEEPLINE_CLI_VERSION as a GitHub Actions repository variable. Pinning the
CLI prevents an unreviewed release from changing deployment behavior.
3. Configure Deepline credentials
Add these GitHub Actions secrets:
Restrict the production environment to
main. Add required reviewers if
publication needs a separate approval.
Each key must identify one Deepline workspace. Do not use a production key for
pull-request validation or choose the target workspace from pull-request input.
Configure each workspace with the provider credentials its Plays use and active
Play secrets for every name those Plays declare. Use non-production credentials
in the validation workspace and production credentials in the production
workspace.
This workflow supports pull requests whose branches live in the same repository.
GitHub withholds repository secrets from forked pull requests. To validate a fork,
move the reviewed commit to a maintainer-controlled branch; do not expose secrets
with pull_request_target.
4. Add the workflow
Create.github/workflows/deepline.yml:
*.play.ts file. After a merge or manual run,
it republishes every tracked Play so changes to imported helpers and configuration
are included. --expected-artifact prevents publication if a file differs from
the artifact that was just checked.
5. Test and operate the workflow
Open a pull request that changes a Play and confirm Validate Plays passes. Merge it, then confirm Publish Plays succeeds in GitHub Actions. SetPLAY_NAME to the saved Play you just published, then verify the live
revision:
plays versions,
then promote it:
Play SDK quickstart
Create, check, and run a custom Play.
Production integration
Integrate published Plays into a production application.