Deploy preview environments for pull requests and clean up when they close.
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
Last modified on