Loading...
Loading...
Define, validate, and run repo-local multi-step automations with `asc workflow` and `.asc/workflow.json`. Use when migrating from lane tools, wiring CI pipelines, or orchestrating repeatable `asc` + shell release flows with hooks, conditionals, and sub-workflows.
npx skill4agent add rudrankriyam/asc-skills asc-workflowasc workflow runasc workflow validateasc workflow list--helpasc workflow --helpasc workflow run --helpasc workflow validate --helpasc workflow list --help.asc/workflow.jsonasc workflow validateasc workflow listasc workflow list --allasc workflow run --dry-run betaasc workflow run beta BUILD_ID:123456789 GROUP_ID:abcdef.asc/workflow.jsonasc workflow run --file ./path/to/workflow.json <name>///* ... */stdoutstatusstepsstderrasc workflow validateasc workflow validate | jq -e '.valid == true'
asc workflow run beta BUILD_ID:123 GROUP_ID:xyz | jq -e '.status == "ok"'envbefore_allafter_allerrorworkflowsdescriptionprivateenvsteps"echo hello"runworkflownameifwithKEY:VALUEKEY=VALUEasc workflow run <name> [KEY:VALUE ...]VERSION:2.1.0VERSION=2.1.0$VAR.asc/workflow.jsonasc workflow run--dry-run--pretty--fileasc workflow run beta --dry-runasc workflow run beta --file .asc/workflow.json BUILD_ID:123before_allafter_allerrordefinition.envworkflow.env"workflow": "...", "with": {...}envwith"workflow": "<name>""private": trueasc workflow list--allif"if": "VAR_NAME"VAR_NAME1trueyesyonifos.Getenv(VAR_NAME)asc workflow run --dry-run <name>stderrbash -o pipefail -csh -c--confirmasc{
"env": {
"APP_ID": "123456789",
"VERSION": "1.0.0"
},
"before_all": "asc auth status",
"after_all": "echo workflow_done",
"error": "echo workflow_failed",
"workflows": {
"beta": {
"description": "Distribute a build to a TestFlight group and notify",
"env": {
"GROUP_ID": ""
},
"steps": [
{
"name": "list_builds",
"run": "asc builds list --app $APP_ID --sort -uploadedDate --limit 5"
},
{
"name": "list_groups",
"run": "asc testflight beta-groups list --app $APP_ID --limit 20"
},
{
"name": "add_build_to_group",
"if": "BUILD_ID",
"run": "asc builds add-groups --build $BUILD_ID --group $GROUP_ID"
},
{
"name": "notify",
"if": "SLACK_WEBHOOK",
"run": "echo sent_release_notice"
}
]
},
"release": {
"description": "Submit a version for App Store review",
"steps": [
{
"workflow": "sync-metadata",
"with": {
"METADATA_DIR": "./metadata"
}
},
{
"name": "submit",
"run": "asc submit create --app $APP_ID --version $VERSION --build $BUILD_ID --confirm"
}
]
},
"sync-metadata": {
"private": true,
"description": "Private helper workflow (callable only via workflow steps)",
"steps": [
{
"name": "migrate_validate",
"run": "echo METADATA_DIR_is_$METADATA_DIR"
}
]
}
}
}# Validate and fail CI on invalid file
asc workflow validate | jq -e '.valid == true'
# Show discoverable workflows
asc workflow list --pretty
# Include private helpers
asc workflow list --all --pretty
# Preview a real run
asc workflow run --dry-run beta BUILD_ID:123 GROUP_ID:grp_abc
# Run with params and assert success
asc workflow run beta BUILD_ID:123 GROUP_ID:grp_abc | jq -e '.status == "ok"'