Deploying automatically from GitHub
A project can deploy itself when you push, instead of you clicking Deploy.
Setting it up#
- Open the project and add a webhook. CloudPilot gives you a URL and a secret.
- In your GitHub repository, go to Settings → Webhooks → Add webhook.
- Paste the URL, paste the secret, and choose the push event.
- Push something and watch the deploy start.
The secret matters#
The webhook URL alone would let anyone who learns it trigger deploys. The secret is what proves a request really came from GitHub: GitHub signs each delivery with it, and CloudPilot rejects deliveries whose signature does not match.
Treat it like a password. If it leaks, rotate it.
Which branch#
Pushes to the configured branch deploy. Pushes to other branches are ignored, so feature branches do not each fire a deploy at production.
On a protected project#
If the project is protected, a push does not deploy. It creates a change request, and someone approves it.
That is usually what you want for production: the convenience of automatic deploys, without a push being able to replace what is live on its own.
When a push does not deploy#
Check, in order:
- Did GitHub deliver it? The webhook's Recent Deliveries tab in GitHub
shows each attempt and the response. A
401there means the secret does not match; a timeout means the request never arrived. - Was it the right branch?
- Is the project protected? Then it is waiting for approval, not broken.
- Did the deploy start and fail? Read the deploy log — that is a build problem, not a webhook problem.
Turning it off#
Remove the webhook from GitHub, from CloudPilot, or both. Deleting the project removes its webhook from GitHub on a best-effort basis, but check GitHub afterwards if it mattered.
Raise a ticket and someone will pick it up. Sign in with the same account you use for the panel.
Raise a ticket