Skip to content

arkinsta.yaml

An arkinsta.yaml in a repo’s root defines actions that show up on the workspace’s Actions page like any other, versioned with your code. Edit them in the file; Relay reads it again when it changes.

actions:
ship-testflight:
name: Ship to TestFlight
ask_first: true
schedule: weekdays 18:00
options:
FLAVOR: [dev, production]
RELEASE_NOTES: text
steps:
- run: flutter build ipa --release --flavor $FLAVOR -t $FLUTTER_TARGET --build-number $BUILD_NUMBER
timeout: 45
- app_store: build/ios/ipa/*.ipa
credentials: Acme
test:
name: Run tests
steps:
- npm test

Each key under actions is the action’s id.

Field Type
name string Shown in the app and matched against requests. Defaults to the key.
ask_first boolean Always wait for approval before running. Default false.
schedule string When to run on its own. See Schedules.
options map Values chosen at run time. See below.
steps list Required. At least one step.

Option names must be CAPITALS_AND_UNDERSCORES. Each reaches commands as an environment variable.

options:
FLAVOR: [dev, production] # choices; the first is the default
RELEASE_NOTES: text # free text
TRACK: # full form
label: Play track
choices: [internal, beta]
default: internal

A step is one of run, app_store or play_store. A plain string is shorthand for run.

Every step accepts dir: a folder relative to the repo root to run in. It must stay inside the repo.

- run: npm run build
dir: apps/web
timeout: 10 # minutes; default 30
- app_store: build/ios/ipa/*.ipa # newest matching file
credentials: Acme # a name from Settings → Credentials; the default if left out
- play_store: build/app/outputs/bundle/${FLAVOR}Release/*.aab
package: com.acme.app # optional; read from the Gradle file if left out
track: internal # internal | alpha | beta | production
release: draft # draft | completed
rollout: 20 # percent, for a completed release; default 100
credentials: Acme Play

Patterns can use option variables, like ${FLAVOR}.

Problems in the file are listed on the Actions page with the action and step they’re in, for example actions.test step 2: use run:, app_store: or play_store:. Actions with errors are left out; the rest still load.

Any action made in the app can be copied as YAML from its menu, ready to paste into arkinsta.yaml. Credential ids are written as names, so the file is safe to share.