Open a pull request on a connected application and Ankra deploys that PR’s build to your organisation’s staging cluster, then posts a status comment with a public preview link. Push again and it redeploys. Close or merge and it is torn down. No pipeline YAML, no ingress wiring, no cleanup.
What you get
Minutes after opening a PR, a comment like this appears and keeps itself up to date:The preview runs in its own isolated namespace on the staging cluster, PodSecurity-hardened and quota-bounded, exactly like a manually launched preview demo. When the Ankra GitHub App has the optional Deployments permission, the PR also gets a GitHub deployment entry, so the preview shows up in the PR’s environments box.🚀 Ankra Preview
⏳ Expires Aug 9, 22:26 UTC · 🔁 Redeploys on every push
Prerequisites
1
Connect the repository as an application
The repository must be a connected application (GitHub only for now). Application setup opens a PR that adds the canonical build-and-publish workflow - this is what builds your PR’s container image and pushes it with a
pr-<number> tag. Automatic previews key on that tag.2
Configure a staging cluster
An admin sets the organisation’s staging cluster under AI → Settings → Workspaces. Without it, pull requests deploy nothing - this is the switch that turns the feature on.
3
Optional: bring a demo base domain for HTTPS
By default previews are served under the staging cluster’s own Ankra DNS zone (
*.ankra.cc, or the Ankra domain your organisation selected) over plain HTTP. For HTTPS (or your own hostnames), configure a demo base domain with an ingress class and TLS secret in the same settings screen.The status comment
One marker-tagged comment per PR, updated in place - never a stream of new comments.
Lifecycle:
- On open: the preview deploys as soon as the PR’s image build publishes.
- On every push: the preview redeploys with the new head; the comment’s Commit and Updated cells refresh.
- On close or merge: the namespace is torn down immediately and the comment flips to ⚪ Stopped.
- On expiry: previews are time-limited (24 hours by default) and reaped automatically; pushing again deploys a fresh one.
Configuration and data
Automatic previews inherit the application’s demo environment defaults - env vars, secret slots, and the optional throwaway Postgres - configured behind the gear on the application’s Demos tab. See environment variables and a throwaway database. If your app needs configuration to boot, set the defaults once and every PR preview gets them.Troubleshooting
Related
- Branch demos - the manual launch dialog, its environment variables, throwaway database, and teardown timer
- Preview demos - launch a demo manually from the portal, CLI, or the
deploy_pr_demoMCP tool - The preview URL - how the public hostname is resolved
- GitHub Actions CI/CD pipeline - the delivery flow the preview build rides on