GuidesAuto-deploy from GitHub
Which services a push deploys
A push deploys each service that tracks the repository and the branch, with auto-deploy on.
A push to main comes in. Three services use this repository.
1 / 3
The four conditions
A push deploys each service that obeys all of these:
- Its git repository has a URL that matches the repository of the push.
- It tracks the branch of the push (
refs/heads/<branch>). - Auto-deploy is on.
- You did not suspend it.
One push can match more than one service, for example the services of a monorepo with different root directories. The answer of Ferry lists the deploys in the queue.
Turn auto-deploy off or on
ferry update api --no-auto-deploy # off
ferry update api --auto-deploy # on again--no-auto-deploy also works on ferry create.
What Ferry ignores
- A push of a tag or of a ref that is not a branch, and a push that deletes a branch.
- A delivery that Ferry processed before: the same body, or the same
X-GitHub-Deliveryid. Ferry remembers the last 256 of each. - Each event that is not
pushorping. Ferry answers200with{"ignored":true}.
If you send an old event again from GitHub, Ferry does not deploy it again.
Ferry compares normalized URLs: the host, the owner and the name, in lower case, with no scheme, credentials, port or .git. These three URLs match:
https://github.com/you/apigit@github.com:you/api.githttps://user:token@github.com/You/API