Alpha — APIs, configuration formats, and CLI flags can change before the stable release.
Overview
Oore CI builds Flutter apps on Macs you control and ships them to testers, Google Play, and the App Store. Builds, signing keys, and artifacts stay on your own hardware. It runs Android, iOS, and macOS builds on a macOS host.
Oore has three parts:
- A daemon (
oored) that serves the API and schedules builds.
- A runner (
oore-runner) that runs builds directly on the Mac or in a fresh macOS VM.
- An operator CLI (
oore) for install, setup, upgrades, and runner management, and a web UI for everything else.
What you can do
- Start the day from Home. See what needs attention, what is running, and what finished, next to live releases and their rollout. Build, project, and store health sit below, with problems sorted first. Tour the demo.
- Keep pipelines in the repository. A
.oore.yaml file names one or more workflows. Oore finds the files in the repository, shows what will run, and lets you pick the workflow when you start a build. Pushes and pull requests fan out to every workflow they trigger. Files, pipelines, and workflows.
- Sign once per project. Store Android keystores and iOS certificates in the project's signing library, and let each workflow sign by name. The runner injects the keystore into Gradle, so apps need no committed keys. Use the project signing library.
- Follow a build in plain words. The build page shows each step with a readable name and timing, the full log with search, analyzer warnings, artifacts, store releases, and a timeline. Pull request checks report app size against the base branch and can fail on a size budget. See builds on pull requests.
- Ship through environments. Promote a build from internal testing to beta and production, with approvers per environment. Set staged rollouts to an exact percentage, and see store refusals and Apple's review status on the release. Promote builds between environments.
- Hand builds to testers. QA Viewers sign in on their phone, install the latest build from any iPhone browser or on Android, and send feedback that lands on the build. A share link sends one file without an account. Share builds with testers.
- Scale out on your own Macs. Run several builds at once on one Mac, add runners on other Macs, and isolate builds in VMs that start from a warm image per project. Run builds in VMs.
- Let the team in. Turn on External Access with OIDC, invite people, and give many of them project roles at once. Let the team sign in.
Screenshots
| Home | Builds |
|---|
| |
| Build | Environments |
| |
Prerequisites
- A Mac on
arm64 (Apple silicon) or x86_64 (Intel) with administrator access
curl, tar, ssh-keygen, and the macOS system /usr/bin/stat, /usr/bin/lockf, and /usr/bin/shasum
- Flutter and the platform tools your app builds with. See Check that your Mac is ready.
For source development, also install Rust and Bun.
This is the beginning of the README. Read the rest at the original. Read the full README ↗