# GitHub Actions triggers EAS builds when EXPO_TOKEN and non-interactive flags are set

## Local builds must succeed before CI can be honest

GitHub Actions cannot invent EAS credentials, bundle identifiers, or build profiles for you. Expo's own CI guide starts with a blunt prerequisite: run a successful `eas build` from your machine for every platform you want CI to support, so the CLI can finish interactive setup once. That local run creates the EAS `projectId`, writes `eas.json` profiles, fills critical app config fields such as the Android package and iOS bundle identifier, and creates the Android keystore plus iOS distribution certs and provisioning profiles that later non-interactive jobs expect to find.

If you skip that step and paste a workflow into `.github/workflows/eas-build.yml` first, CI fails in ways that look like Actions problems.

---

*This is an excerpt. Read the full post at [otf-kit.dev/blog/github-actions-eas-build-ci](https://otf-kit.dev/blog/github-actions-eas-build-ci) — full-stack kits your AI coding agent can actually ship to production. [Browse the kits →](https://otf-kit.dev)*
