Oore CI

Check that your Mac is ready

Confirm the Mac can run Oore and has the Flutter and platform tools your first build needs.

On this page you check the Mac that will run Oore and install the tools your app’s builds need. In Local Only, this one Mac runs the control plane, the web UI, and the runner, so it also does the building.

What you need

  • A Mac with an arm64 (Apple silicon) or x86_64 (Intel) processor.
  • A normal macOS account with administrator access. Oore asks for administrator access once, to install its services.
  • Internet access over HTTPS to oore.build, releases.oore.build, and GitHub Releases.
  • A Flutter app in a Git repository on this Mac.

1. Check the host

Run these commands in Terminal:

uname -s
uname -m
command -v curl tar ssh-keygen git
ls /usr/bin/stat /usr/bin/lockf /usr/bin/shasum

The first command prints Darwin. The second prints arm64 or x86_64. The other two commands print a path for every tool. If git is missing, run xcode-select --install to install the Xcode Command Line Tools.

The installer calls stat, lockf, and shasum by their /usr/bin paths, so Homebrew GNU coreutils earlier in your PATH do not affect it.

2. Install Flutter where the runner can find it

The Oore runner runs as the macOS account that installs Oore. Its PATH is /opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin, so a Flutter that only your shell’s PATH finds is not enough. Link flutter and dart into one of those folders.

Install the Flutter version your app uses. If the repository has an .fvmrc file, use the version in it. Replace 3.47.7 with your version:

git clone --branch 3.47.7 --depth 1 https://github.com/flutter/flutter.git ~/flutter-3.47.7
ln -sf ~/flutter-3.47.7/bin/flutter /opt/homebrew/bin/flutter
ln -sf ~/flutter-3.47.7/bin/dart /opt/homebrew/bin/dart

On an Intel Mac, use /usr/local/bin instead of /opt/homebrew/bin.

Before each build, the runner compares the installed Flutter with the version the build asks for: the one in .fvmrc, then the pipeline’s Flutter version, then stable. If a release such as 3.47.7 differs from the installed one, the build fails before its first step. A channel such as stable is not checked.

3. Install the platform tools

Install the tools for the platform you ship first. You can add the other one later.

  • Android. Install Android Studio in /Applications and let it install the default Android SDK in ~/Library/Android/sdk. Then accept the SDK licenses with flutter doctor --android-licenses.
  • iOS. Install Xcode from the App Store, open it once to finish its setup, and run sudo xcodebuild -license accept.

Then download the Flutter engine files for those platforms:

flutter precache --android --ios

Check the result

flutter --version
flutter doctor

flutter --version prints the version you installed. flutter doctor shows a check mark for Android toolchain, Xcode, or both, depending on what you installed. After you install Oore, oore doctor --platform android or oore doctor --platform ios runs the same checks the runner needs.

Troubleshooting

flutter --version prints a different version

An older flutter comes earlier on the PATH. Run which -a flutter to find it, then remove it or fix the link in /opt/homebrew/bin.

ln fails because /opt/homebrew/bin does not exist

That folder exists only when Homebrew is installed. Link into /usr/local/bin instead. If that folder is missing too, create it with sudo mkdir -p /usr/local/bin.

The app needs two Flutter versions

A Mac has one Flutter for host builds. To build apps pinned to different versions on one Mac, use VM isolation, which picks a VM image by Flutter version.

You want builds to run on a different Mac

Finish this path on one Mac first. Then add a Direct macOS runner on the other Mac, or read Which setup do I need?.

Next step

Install Oore.