ZuploZuplo
LoginStart for Free
  • Documentation
  • API Reference
Getting Started
    Develop in the 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
API Management
AI Gateway
MCP Gateway
MCP Server
Developer Portal
Development
Deploying & Source Control
    Overview
    GitHub
    GitLab
      SetupBasic DeploymentDeploy and TestMR Preview EnvironmentsLocal testing in CITag-Based ReleasesMulti-Stage Deployment
    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 LimitsVersion Support PolicySecuritySupportTrust & ComplianceChangelog
powered by Zudoku
GitLab

GitLab CI/CD: Local testing in CI

Test against a local Zuplo server before deploying anywhere.

Code
image: node:24 stages: - test - deploy local-test: stage: test script: - npm install - npx zuplo dev & # Poll until the server answers, with a hard deadline — never a fixed sleep - | deadline=$((SECONDS + 60)) until curl --fail --silent --output /dev/null http://localhost:9000/health; do if (( SECONDS >= deadline )); then echo "Local server did not start within 60s" >&2 exit 1 fi sleep 1 done - npx zuplo test --endpoint http://localhost:9000 - kill %1 deploy: stage: deploy needs: - local-test script: - npm install - npx zuplo deploy --api-key "$ZUPLO_API_KEY" only: - main

Local tests run first. Only if they pass does deployment proceed.

The readiness poll replaces a fixed sleep. A sleep is a guess about startup time that is wrong in both directions, and it is the most common reason a gateway test suite "needs" a retry. The example polls /health — add an unauthenticated health route if your gateway does not have one. See health checks.

Next steps

  • Add multi-stage deployment with staging
Edit this page
Last modified on August 21, 2026
MR Preview EnvironmentsTag-Based Releases
On this page
  • Next steps
YAML