Documentation menu
Triggering & managing builds
Push to build, or trigger by hand — either way, every run is logged.
Automatic builds on push
Every push to a project's configured branch starts a build for each platform you've enabled. A new push to the same branch cancels the in-flight run for it, so you never end up waiting behind a commit you've already superseded.
Manual builds
Trigger a build from the project dashboard at any time, without needing a new commit — useful for re-running a build after fixing a secret, or building an older commit again.
Staging vs. production
Staging compiles an unsigned Android debug build and an Ad Hoc-signed iOS build, installable over the air — see installing staging builds. It's available on every plan, without limit.
Production produces a signed release build. It's gated server-side by plan: on the Free plan, a production build request is rejected before it ever reaches GitHub, with a clear message explaining why. Starter and above can build production. See plans & limits.
Build history & logs
Every run keeps its status, duration, commit, branch, and full logs, so you can always tell whether last night's release actually shipped — and why, if it didn't.