ZuploZuplo
LoginStart for Free
  • Documentation
  • API Reference
Introduction
Getting Started
    Develop on the web portal
      1 - Setup Your Gateway2 - Rate Limiting3 - API Key Auth4 - Deploy5 - Dynamic Rate LimitingDynamic MCP Server - Quickstart
    Develop locally with the CLI
      1 - Setup Your Gateway2 - Rate Limiting3 - API Key Auth4 - Deploy5 - Dynamic Rate LimitingDynamic MCP Server - Quickstart
Concepts
Development
Policies
Handlers
API Keys
Rate Limiting
MCP Server
MCP Gateway
AI Gateway
Developer Portal
Monetization
Deploying & Source Control
    Overview
    GitHub
      SetupTesting Deployments
      Custom CI/CD
        Basic DeploymentDeploy and TestPR Preview EnvironmentsLocal Testing in CITag-Based ReleasesMulti-Stage DeploymentAutomatic Cleanup
    GitLab
    Bitbucket
    Azure DevOps
    CircleCI
    Custom CI/CDMonorepo DeploymentTroubleshooting DeploymentsRename/Move Project
Analytics
Observability
Networking & Infrastructure
Account Management
Programming API
Build with AI
Zuplo CLI
Migration Guides
Platform LimitsSecuritySupportTrust & ComplianceChangelog
powered by Zudoku
Custom CI/CD

GitHub Actions: Basic Deployment

The simplest workflow deploys your API to Zuplo on every push to main.

.github/workflows/deploy.yaml
name: Deploy to Zuplo on: push: branches: - main jobs: deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 20 - name: Install dependencies run: npm install - name: Deploy to Zuplo run: npx zuplo deploy --api-key "$ZUPLO_API_KEY" --environment "${{ github.ref_name }}" env: ZUPLO_API_KEY: ${{ secrets.ZUPLO_API_KEY }}

This workflow:

  1. Triggers on pushes to the main branch
  2. Checks out your code
  3. Installs dependencies (including the Zuplo CLI)
  4. Deploys to Zuplo using the branch name as the environment name

Since this deploys from main, it updates your production environment.

Passing --environment is technically optional here — without it, the CLI infers the environment name from the checked-out git ref — but inference can pick the wrong name in CI (detached HEAD checkouts, commits that exist on more than one branch, or pull_request merge refs). Passing the branch name explicitly makes every workflow deploy a predictable environment. See the deploy command reference for details.

Next Steps

  • Add testing after deployment
  • Set up PR preview environments
  • Implement tag-based releases for more control
Edit this page
Last modified on June 11, 2026
Custom CI/CDDeploy and Test
On this page
  • Next Steps
YAML