Prerequisites
Before setting up your GitHub Actions workflow, ensure you have:- A Pipecat Cloud account with an API token
- 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 GitHub repository settings (Settings → Secrets and variables → Actions):- DOCKERHUB_USERNAME: Your Docker Hub username
- DOCKERHUB_TOKEN: Your Docker Hub access token
- PCC_API_KEY: Your Pipecat Cloud private API token
For Docker Hub access tokens, create a personal access token from your Docker
Hub account settings rather than using your password.
Basic Workflow Configuration
Create a file at.github/workflows/deploy.yml in your repository:
- Trigger on every push to the mainbranch
- Build your Docker image for linux/arm64platform
- Push the image with both latestand date-based tags
- Deploy the new image to Pipecat Cloud
Image Tagging Strategy
The example workflow creates two tags for each build:- latest: Always points to the most recent build
- Date-based (e.g., 2025-10-30): Specific version tied to the build date
Avoid pushing multiple builds to the same image tag. Pipecat Cloud instances
may cache older versions of an image tag, which can cause running agents to
use outdated code even after redeployment. Use unique tags (like date-based or
commit SHA tags) for each build.
${{ github.sha }} as the tag.
Monorepo Configuration
If your agent code lives in a subdirectory (e.g.,/server, like code generated from the Pipecat CLI), modify the workflow to set the working directory and build context:
paths filter ensures the workflow only runs when files in the server/ directory change, preventing unnecessary builds.
Platform Considerations
Pipecat Cloud requires images built for thelinux/arm64 platform. The workflow uses QEMU to enable ARM64 builds on GitHub’s x64 runners.
As of October 2025, GitHub still does not provide ARM runners for private
repositories. The workflow uses QEMU emulation, which can significantly
increase build times. If you have a public repository or when GitHub makes ARM
runners available, you can remove the QEMU setup step and use native ARM
runners for faster builds.
Customizing Deployment Configuration
The deployment step in the workflow configures your agent using the Pipecat Cloud REST API. You can customize the following parameters:- image: The Docker image tag to deploy
- imagePullSecretSet: Reference to your image pull credentials (replace- my-image-pull-secretwith your actual secret name)
- secretSet: Reference to your environment secrets (replace- my-secret-setwith your actual secret set name)
- enableKrisp: Enable or disable Krisp noise suppression
- autoScaling.minAgents: Minimum number of agent instances to maintain
- autoScaling.maxAgents: Maximum number of agent instances allowed
Adjust the 
minAgents and maxAgents values based on your expected traffic
patterns. See our Capacity Planning guide for guidance
on optimizing these settings.