Prerequisites
Before setting up your workflow, ensure you have:- A Pipecat Cloud account with a Private API key
- A Docker Hub account (or another container registry)
- An image pull secret configured in Pipecat Cloud
- A secret set configured for your agent
Configure GitHub Secrets
Add the following secrets to your repository (Settings → Secrets and variables → Actions):DOCKERHUB_USERNAME: Your Docker Hub usernameDOCKERHUB_TOKEN: Your Docker Hub access tokenPCC_API_KEY: Your Pipecat Cloud Private API key
For Docker Hub, use a personal access
token rather than your
password.
Basic Workflow Configuration
Create.github/workflows/deploy.yml in your repository:
- Trigger on every push to the
mainbranch - Build your Docker image for
linux/arm64(the action sets this automatically) - Push the image to Docker Hub with a tag defaulting to the commit SHA
- Deploy the new image to Pipecat Cloud and wait for readiness
Image Tagging
By default the action tags the image with the git commit SHA. To use a custom tag:Monorepo Configuration
If your agent lives in a subdirectory (e.g.server/, as with Pipecat CLI–generated code), set the build context and optionally restrict the workflow to that path:
paths filter ensures the workflow runs only when files under server/ change.
Platform and Build Behavior
Pipecat Cloud requires images built forlinux/arm64. When build is enabled, the action automatically passes --platform linux/arm64 to Docker and sets up QEMU emulation on x64 runners, so no extra steps are needed.
Customizing Deployment
Configure the deployment via the action inputs:- image-credentials: Name of the image pull secret set in Pipecat Cloud (for private registries)
- secret-set: Name of the secret set used for runtime environment variables
- region: Deployment region (uses your organization default if omitted)
- min-agents: Minimum agents to keep warm (0–50)
- max-agents: Maximum concurrent agents (1–50)
- agent-profile: Agent profile name, if used
- wait-for-ready: Whether to poll until the deployment is ready (default: true)
- wait-timeout: Max seconds to wait for readiness (default: 90)
Deploying a Pre-built Image
If you build the image in another job or CI system, deploy by settingbuild: false and passing a fully tagged image:
Next Steps
Secrets Management
Learn how to securely manage image pull secrets and environment variables.
Scaling Configuration
Configure auto-scaling to handle varying traffic loads.