Deploy preview environments for merge requests and clean up when they close.
image: node:20
stages:
- deploy
- test
- cleanup
deploy:
stage: deploy
script:
- npm install
- npx zuplo deploy --api-key "$ZUPLO_API_KEY" 2>&1 | tee ./DEPLOYMENT_STDOUT
- echo "DEPLOYMENT_URL=$(grep -oP 'Deployed to \K(https://[^ ]+)'
./DEPLOYMENT_STDOUT)" >> deploy.env
artifacts:
reports:
dotenv: deploy.env
test:
stage: test
needs:
- deploy
script:
- npm install
- npx zuplo test --endpoint "$DEPLOYMENT_URL"
cleanup:
stage: cleanup
needs:
- test
script:
- npm install
- npx zuplo delete --url "$DEPLOYMENT_URL" --api-key "$ZUPLO_API_KEY" --wait
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
The cleanup job only runs for merge request pipelines, deleting the preview
environment after tests pass.
Next Steps
Last modified on