编排与执行
介绍
流水线 是 4.0 新增的模块,用于把 参数化 、构建、执行命令、数据传输、数据上传、消息推送 等内置模块以节点的形式自由编排成一条流程,一键执行并在实时控制台中查看每个节点、每台主机的输出。相比应用发布固定的流程,流水线更适合:
- 多个步骤、多台主机、有先后依赖的复杂发布与运维流程;
- 需要在执行时由操作人输入参数(版本号、分支、开关等)的场景;
- 构建产物需要分发到多台主机并执行后续命令的场景;
- 执行结果需要自动通知到钉钉 / 飞书 / 企业微信或通过推送助手发送短信、电话的场景。

创建流水线
- 在
流水线菜单点击 新建,输入流程名称后进入编排页面。 - 编排页面左侧为流程画布,点击画布上的节点在右侧打开 选择模块 / 模块配置 面板;点击节点右侧的
⋮菜单可以 添加下游节点、删除节点。 - 为每个节点选择一个内置模块并完成配置,点击 保存。
- 点击页面右上角的 执行 按钮(闪电图标)即可运行;列表页也提供了 执行 入口。

节点与执行条件
流程从第一个节点(起始节点)开始执行,每个节点执行完成后得到 成功 或 失败 的状态,然后按 执行条件 决定其下游节点是否执行:
| 执行条件 | 说明 |
|---|---|
| 上游执行成功时 | 上游节点成功后才执行(默认) |
| 上游执行失败时 | 仅在上游节点失败时执行,常用于失败通知或回滚处理 |
| 总是执行 | 无论上游成功失败都执行,常用于收尾清理与结果通知 |
- 起始节点没有上游,其执行条件会被忽略。
- 一个节点可以有多个下游节点,满足条件的多个下游会 并行 执行;因此一次执行中同一节点的上游只应有一个,避免重复触发。
- 涉及多台主机的节点(执行命令、数据传输、数据上传)会对所选主机并行执行,全部主机成功才算节点成功。

执行与控制台
点击执行后,如果流程中包含 参数化 节点定义的动态参数、需要 发布时选择 的 Git 分支 / Tag,或者 数据上传 节点,会先弹窗要求填写参数或上传文件 ,确认后开始执行。

- 左侧按节点展示执行状态(等待、执行中、成功、失败),点击节点可以查看该节点每台主机的实时输出。
- 执行中的节点可以点击终止,会向对应主机发送终止信号。
- 每次执行都会记录一条执行历史(按序号递增)。
变量
流水线执行过程中的变量以环境变量的形式注入到各节点的脚本中:
| 来源 | 变量 | 说明 |
|---|---|---|
| 参数化节点 | _SPUG_<变量名> | 动态参数(执行时填写)与静态参数(固定值) |
| 构建节点 | SPUG_SET_* | 构建命令中导出的以 SPUG_SET_ 为前缀的变量会去掉前缀后传递给后续节点 |
| 构建节点 | _spug_git_tag / _spug_git_commit | 执行时选择的 Git Tag / Commit |
| 推送节点 | $SPUG_PIPE_NAME、$SPUG_NODE_NAME、$SPUG_STATE_TEXT、$SPUG_DATETIME | 流程名、节点名、上游状态文本、当前时间,仅在推送内容中可用 |
例如在构建节点中导出版本号供后续执行命令节点使用:
# 构建节点的构建命令
mvn -q package
export SPUG_SET_JAR_VERSION=$(cat VERSION)
# 后续执行命令节点
java -jar app-$JAR_VERSION.jar
各模块的详细配置请参考 节点模块详解。
权限说明
流水线的权限位于 角色管理 / 功能权限 / 流水线,包含查看、新建、编辑、删除和执行流水线;节点中可选择的主机受角色的 主机权限 限制。