ZuploZuplo
LoginStart for Free
  • Documentation
  • API Reference
Introduction
Getting Started
    Develop using the Portal
      1 - Setup Your Gateway2 - Rate Limiting3 - API Key Auth4 - Deploy5 - Dynamic Rate LimitingMCP - Quick start
    Develop Locally
      1 - Setup Your Gateway2 - Rate Limiting3 - API Key Auth
Concepts
Development
Policies
Handlers
API Keys
MCP Server
MCP Gateway
AI Gateway
Developer Portal
Monetization
Deploying & Source Control
    Overview
    GitHub
    GitLab
    Bitbucket
    Azure DevOps
      SetupBasic DeploymentDeploy and TestPR Preview EnvironmentsLocal Testing in CITag-Based ReleasesMulti-Stage Deployment
    CircleCI
    Custom CI/CDMonorepo DeploymentRename/Move Project
Observability
Networking & Infrastructure
Account Management
Programming API
Build with AI
Zuplo CLI
Migration Guides
Platform LimitsSecuritySupportTrust & ComplianceChangelog
powered by Zudoku
Azure DevOps

Azure Pipelines: PR Preview Environments

Deploy preview environments for pull requests and clean up when they close.

azure-pipelines.yml
trigger: - main pr: - main pool: vmImage: ubuntu-latest steps: - task: NodeTool@0 inputs: versionSpec: "20.x" displayName: "Install Node.js" - script: npm install displayName: "Install dependencies" - script: | set -o pipefail npx zuplo deploy --api-key $(ZUPLO_API_KEY) 2>&1 | tee ./DEPLOYMENT_STDOUT displayName: "Deploy to Zuplo" - script: | DEPLOYMENT_URL=$(grep -oP 'Deployed to \K(https://[^ ]+)' ./DEPLOYMENT_STDOUT) echo "##vso[task.setvariable variable=DEPLOYMENT_URL]$DEPLOYMENT_URL" npx zuplo test --endpoint "$DEPLOYMENT_URL" displayName: "Run tests" - script: | npx zuplo delete --url $(DEPLOYMENT_URL) --api-key $(ZUPLO_API_KEY) --wait displayName: "Delete environment" condition: eq(variables['Build.Reason'], 'PullRequest')

The cleanup step only runs for pull requests, deleting the preview environment after tests pass.

Next Steps

  • Implement multi-stage deployment for production
Edit this page
Last modified on December 3, 2025
Deploy and TestLocal Testing in CI
On this page
  • Next Steps
YAML