用途:在 CLI 内实现 lane 式自动化,用仓库本地的 .asc/workflow.json 定义多步骤流程,并通过 asc workflow 命令校验、列出、运行、恢复与审计。
主要能力:支持 asc workflow validate、list、run;工作流文件默认位于 .asc/workflow.json,可用 --file 覆盖,支持 JSONC 注释;顶层钩子有 before_all、after_all、error;工作流键包括 description、private、env、steps;步骤可为字符串简写、run 命令、workflow 子工作流调用、name 标签、if 条件、with 环境覆盖、outputs 输出映射、retry 重试与 timeout 超时。运行步骤可声明 outputs,命令需在 stdout 输出 JSON(如 asc 命令加 --output json),引用格式为 ${steps.step_name.OUTPUT_NAME}。
使用方式:先编写 .asc/workflow.json,再执行 asc workflow validate 校验,asc workflow list 或 list --all 发现工作流,asc workflow run --dry-run 预览,asc workflow run 执行;失败可用 run ID 加 --resume 恢复,恢复时不要传额外 KEY:VALUE 参数。运行参数支持 KEY:VALUE 与 KEY=VALUE,重复键后者覆盖。环境优先级:主工作流为 definition.env < workflow.env < CLI 参数;子工作流调用为 sub-workflow env < 调用方 env 与参数 < step with。条件步骤用 "if": "VAR_NAME",真值为 1、true、yes、y、on(不区分大小写)。
适用场景:需要把构建解析、TestFlight 分发、版本校验、暂存与提交审核等 iOS 发布流程编排为可复用、可审计的仓库本地自动化。
限制:工作流会执行受信任的 shell 命令,只应运行可信文件,避免在带密钥的情况下运行来自不可信 PR 的工作流;retry 仅用于确认可安全重复的命令,max_attempts 为 2 到 100,延迟与超时须为不超过 24 小时的正时长,且仅适用于 run 步骤;仅 timeout 无 retry 视为终止;输出提取失败无法恢复;outputs 仅允许在 run 步骤,且输出名在可共同执行的运行图中须唯一,不要将密钥映射为输出。建议先校验、再 dry-run、最后运行,变更步骤使用明确 ID 与 --confirm。