flow.ci 的工作流是通过 YML 配置文件来定义的,可以在创建 flow 时以及工作流配置中进行设置。如下图:
在 YML 中,可以分为环境变量和工作流定义。
- 环境变量定义 (非必须):定义在工作流中使用的环境变量
- 工作流定义:
- 步骤名称:1-100 个字符,支持空格
- 运行条件 (非必须) :可以根据需要,自定义 Groovy Script (可以调用自定义的环境变量)。该脚本运行时长不能超过 10 秒,需要返回值为布尔类型。
- 运行的 Shell 脚本:Agent 实际执行的 Linux Bash Shell 脚本。
用户可以调用 flow.ci 系统的环境变量获取相关信息:
工作流
FLOW_NAME
: 当前工作流名称FLOW_GIT_WEBHOOK
: 工作流 Git WebHook 的地址FLOW_TASK_CRONTAB_CONTENT
: 定时任务 crontab 定义FLOW_TASK_CRONTAB_BRANCH
: 定时任务的分支
Git
FLOW_GIT_URL
: Git 仓库的 URLFLOW_GIT_BRANCH
: 当前任务的分支FLOW_GIT_CHANGELOG
: Git 提交的信息FLOW_GIT_EVENT_TYPE
: Git 的触发类型PUSH
,PR
,TAG
FLOW_GIT_EVENT_SOURCE
: Git 触发来源GITALB
,GITHUB
,CODING
,OSCHINA
,BITBUCKET
FLOW_GIT_COMMIT_ID
: 此次触发的 commit idFLOW_GIT_COMMIT_URL
: 此次触发的 commit HTML 页面FLOW_GIT_AUTHOR
: 此次触发的 Git 用户名FLOW_GIT_AUTHOR_EMAIL
: 此次触发 Git 用户邮箱
Job
FLOW_JOB_BUILD_NUMBER
: 当前任务的构建编号FLOW_JOB_BUILD_CATEGORY
: 当前任务的触发类型SCHEDULER
,API
,MANUAL
,PUSH
,PR
,TAG
FLOW_JOB_AGENT_INFO
: 当前任务所在的 Agent 名称FLOW_JOB_LAST_STATUS
: 可以通过此环境变量获取上一步的构建结果SUCCESS
,FAILURE
,STOPPED
,TIMEOUT
FLOW_AGENT_WORKSPACE
: Agent 的工作目录,默认为${HOME}
目录下,可以根据需要来定义,如${HOME}/flow-agent-home
FLOW_ENV_OUTPUT_PREFIX
: 在执行过程中,自定义输出的环境变量是不能够被传递的。例如:在步骤 1 中执行脚本export OUTPUT_TEST=xxx
,在步骤 2 中默认是不能引用OUTPUT_TEST
的。用户可以通过设定FLOW_ENV_OUTPUT_PREFIX
来支持环境变量的传递,例如当设置此环境变量的值为OUTPUT_
这时 flow.ci 会传递以OUTPUT_
为开头的所有环境变量,到下一个步骤中(用,
分隔设置多个传递值,如:OUTPUT_,HELLO_,FLOW_AGENT_WORKSPACE
)