CI/CD Documentation
CloudPloy handles the deployment side: it deploys every push to your app's branch. Run your tests in your own CI, then let the push deploy.
GitHub Actions
Run tests in GitHub Actions, then push or merge to the branch CloudPloy deploys.
Learn more →GitLab CI/CD
Run your GitLab pipeline first; CloudPloy deploys when code lands on your branch.
Learn more →CI/CD Pipeline Overview
Code Commit
Developer pushes code to a GitHub, GitLab or Bitbucket repository.
Continuous Integration
Your CI service (GitHub Actions, GitLab CI or similar) runs tests and linting. CloudPloy does not run your test suite.
Continuous Deployment
When code reaches the app's branch, the webhook tells CloudPloy to build and deploy it. Use a separate CloudPloy app per branch if you want a staging copy.
Logs & Rollback
Check the deployment status and logs in CloudPloy, and roll back to a previous deployment if something is wrong.
Example CI Jobs
These jobs run in your CI service. Once they pass, merging to the deploy branch triggers the CloudPloy deployment.
Laravel CI/CD
# .gitlab-ci.yml (Laravel)
test:
image: php:8.3
script:
- composer install
- php artisan test Node.js/React CI/CD
# .gitlab-ci.yml (Node.js)
test:
image: node:22
script:
- npm ci
- npm test
- npm run build What CloudPloy Handles
CloudPloy is the deployment step. It builds and runs your app on your own server; testing stays in your CI.
✨ Deployments
- ✓ Auto-deploy on push via webhook
- ✓ Manual deploy and redeploy
- ✓ Rollback to a previous deployment
- ✓ Deployment history and logs
⚙️ Configuration
- ✓ Framework detection for Node.js, Next.js, Nuxt, Astro, Laravel, Symfony, Rails, WordPress, PHP, Python and static sites
- ✓ Environment variables
- ✓ Deploy from the branch you choose
- ✓ REST API and MCP server to trigger deploys
# Trigger a deploy from any CI job
curl -X POST https://app.cloudploy.com/api/v1/apps/APP_ID/deploy \
-H "Authorization: Bearer $CLOUDPLOY_TOKEN" CI/CD Best Practices
✅ Do's
- • Write comprehensive tests
- • Use feature branches
- • Automate security scans
- • Monitor deployment metrics
- • Implement gradual rollouts
- • Use environment parity
- • Cache dependencies
- • Set up proper alerting
❌ Don'ts
- • Skip testing stages
- • Deploy directly to production
- • Ignore failed tests
- • Hardcode secrets
- • Deploy without monitoring
- • Skip security scanning
- • Use long-lived branches
- • Ignore performance regression