Skip to content

.oore.yaml Reference

The .oore.yaml file (or .oore.yml) defines pipeline execution configuration for an Oore CI project. Place it in the root of your repository.

For a guide on writing this file, see Write a Pipeline Config.

Schema

yaml
version: 1                          # Required. Must be 1.

flutter_version: "3.24.0"           # Optional. Overridden by .fvmrc if present.

platforms:                           # Required. At least one platform.
  - android                          # Options: android, ios, macos
  - ios

commands:                            # Required. Build command stages.
  pre_build:                         # Optional. Runs before build.
    - flutter pub get
    - dart run build_runner build
  build:                             # Required. Main build commands.
    - flutter build apk --release
  post_build:                        # Optional. Runs after successful build.
    - echo "Build complete"

platform_build_args:                 # Optional. Per-platform build arguments.
  android:
    extra_args: "--split-per-abi"
  ios:
    export_method: "ad-hoc"          # Options: ad-hoc, app-store, development, enterprise

platform_commands:                   # Optional. Override commands per platform.
  android:
    build:
      - flutter build apk --release --split-per-abi
  ios:
    build:
      - flutter build ipa --release --export-method ad-hoc

env:                                 # Optional. Environment variables for builds.
  - key: JAVA_HOME
    value: /usr/local/opt/openjdk@17

artifacts:                           # Optional. Artifact collection patterns.
  patterns:
    - "**/*.apk"
    - "**/*.ipa"

triggers:                            # Optional. Webhook trigger configuration.
  events:
    - push                           # Options: push, pull_request
    - pull_request
  branches:
    - main
    - "release/*"                    # Supports glob patterns

concurrency:                         # Optional. Concurrency controls.
  max_concurrent: 1                  # Max simultaneous builds for this pipeline.
  cancel_in_progress: true           # Cancel older builds when a new one starts.

Field reference

Top level

FieldTypeRequiredDefaultDescription
versionintegerYesSchema version. Must be 1.
flutter_versionstringNoFlutter SDK version. Overridden by .fvmrc in repo root.
platformsstring[]YesTarget platforms: android, ios, macos.
commandsobjectYesBuild command stages.
platform_build_argsobjectNoPer-platform build arguments.
platform_commandsobjectNoPer-platform command overrides.
envobject[]No[]Environment variables.
artifactsobjectNoArtifact collection config.
triggersobjectNoWebhook trigger rules.
concurrencyobjectNoConcurrency controls.

commands

FieldTypeRequiredDescription
pre_buildstring[]NoCommands run before the main build
buildstring[]YesMain build commands
post_buildstring[]NoCommands run after a successful build

Commands are executed sequentially. If any command returns a non-zero exit code, the build fails and subsequent commands are skipped.

platform_build_args

PlatformFieldTypeDescription
androidextra_argsstringExtra arguments passed to the Android build command
iosexport_methodstringIPA export method: ad-hoc, app-store, development, enterprise

env

FieldTypeRequiredDescription
keystringYesEnvironment variable name
valuestringYesEnvironment variable value

artifacts.patterns

An array of glob patterns matched against the build workspace. Matched files are collected as build artifacts.

triggers

FieldTypeRequiredDescription
eventsstring[]NoTrigger events: push, pull_request
branchesstring[]NoBranch filters (supports glob patterns)

concurrency

FieldTypeRequiredDefaultDescription
max_concurrentintegerNo1Maximum simultaneous builds
cancel_in_progressbooleanNofalseCancel running builds when a new one is triggered

Config resolution order

  1. .oore.yaml (or .oore.yml) in repo root — highest priority
  2. Pipeline execution config set via UI — fallback

Flutter version resolution

  1. .fvmrc in repo root — highest priority
  2. flutter_version in .oore.yaml — fallback
  3. Pipeline Flutter version setting in UI — final fallback

Self-hosted mobile CI, built for Flutter.