Custom CI/CD
GitHub Actions: Multi-Stage Deployment
- Applies to
- Gatewayruntime for API, AI, and MCP gateways
- Hosting
- Managed EdgeManaged DedicatedSelf-HostedDiffers
1 difference by hosting option
Self-Hosted
Add --self-hosted-endpoint with your management API hostname to each zuplo deploy command so it targets your cluster. See zuplo deploy.
Deploy to staging first, run tests, then promote to production with manual approval. This pattern ensures changes are validated before reaching production.
.github/workflows/multi-stage.yaml
This workflow:
- Deploy to staging — Every push to main deploys to staging
- Test staging — Run your full test suite against staging
- Wait for approval — The production job waits for manual approval
- Deploy to production — After approval, deploy to production
Setting Up Manual Approval
Create a GitHub environment with required reviewers:
- Go to Settings > Environments > New environment
- Name it
production - Check Required reviewers and add approvers
- Save the environment
When the workflow reaches the production job, it pauses until an approver clicks Review deployments in the Actions UI.
Adding More Stages
Add additional environments like QA or UAT:
Code
Next Steps
- Combine with tag-based releases for version control
- Add local testing before any deployment
Last modified on