跳到主要内容
版本:4.x

编排与执行

介绍

流水线 是 4.0 新增的模块,用于把 参数化、构建、执行命令、数据传输、数据上传、消息推送 等内置模块以节点的形式自由编排成一条流程,一键执行并在实时控制台中查看每个节点、每台主机的输出。相比应用发布固定的流程,流水线更适合:

  • 多个步骤、多台主机、有先后依赖的复杂发布与运维流程;
  • 需要在执行时由操作人输入参数(版本号、分支、开关等)的场景;
  • 构建产物需要分发到多台主机并执行后续命令的场景;
  • 执行结果需要自动通知到钉钉 / 飞书 / 企业微信或通过推送助手发送短信、电话的场景。

流水线编排

创建流水线

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

选择模块

节点与执行条件

流程从第一个节点(起始节点)开始执行,每个节点执行完成后得到 成功失败 的状态,然后按 执行条件 决定其下游节点是否执行:

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

节点配置

执行与控制台

点击执行后,如果流程中包含 参数化 节点定义的动态参数、需要 发布时选择 的 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

各模块的详细配置请参考 节点模块详解

权限说明

流水线的权限位于 角色管理 / 功能权限 / 流水线,包含查看、新建、编辑、删除和执行流水线;节点中可选择的主机受角色的 主机权限 限制。