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

节点模块详解

每个流水线节点都需要选择一个内置模块,所有模块都包含 节点名称执行条件 两个公共配置项(执行条件的含义见 编排与执行),本文介绍各模块的专有配置。

执行命令

在一台或多台主机上执行 Shell 命令,是最常用的节点。

  • 选择主机:执行命令的目标主机,可多选,多台主机并行执行。
  • 执行内容:要执行的命令,可以引用参数化节点定义的 _SPUG_* 变量以及构建节点导出的变量。

任意一台主机的命令退出码非 0 即视为该节点失败。

构建

在指定主机上拉取 Git 仓库并执行构建命令,产物留在工作目录中,通常搭配 数据传输 节点分发到目标主机。

  • Git仓库:仓库地址,支持 http/httpsssh 协议,输入后会自动检测是否可以访问。
  • 访问凭据:私有仓库选择 凭据管理 中的凭据(http/https 地址对应密码类凭据,ssh 地址对应密钥类凭据),可点击 添加凭据 跳转创建。
  • Git分支/Tag设置
    • 分支 + 最新提交:每次执行时构建该分支的最新提交;
    • 分支 + 发布时选择:执行时弹窗输入要构建的 Commit ID,留空则使用最新提交;
    • Tag + 最新提交:构建最新的 Tag;
    • Tag + 发布时选择:执行时从仓库现有 Tag 中选择。
  • 构建主机:在哪台主机上执行构建,该主机需要安装 git 以及构建所需的工具链。
  • 工作目录:仓库检出到该目录,例如 /data/build/myapp
  • 构建命令:在工作目录下执行的构建命令,例如 npm ci && npm run build

构建命令中通过 export SPUG_SET_变量名=值 导出的变量会去掉 SPUG_SET_ 前缀后传递给后续节点。

参数化

定义执行流水线时可用的变量,通常放在流程的起始位置。

  • 动态参数:执行时弹窗提示用户填写,每个参数包含参数名、变量名(最终生成 _SPUG_变量名 环境变量)、参数类型(单行文本、多行文本、密码输入框、日期选择框、下拉单选、下拉多选)、是否必填、默认值与提示信息;下拉类型需要填写可选项,每行一项,可用英文冒号分隔值与显示内容,多选的值会以英文逗号连接。
  • 静态参数:固定的变量名与变量值,直接生成全局变量,适合在多个节点间共享的常量。

数据传输

把某台主机上的文件或目录同步到一台或多台目标主机,基于 sshfs + rsync 实现。

  • 数据源路径 / 数据源主机:源文件或目录所在的主机与路径,当数据源是目录时同步目录下的所有文件至目标路径。
  • 目标路径 / 目标主机:当数据源是文件时,目标路径以 / 结尾则同步到该目录下(新建或覆盖同名文件),否则该路径即为同步之后的文件路径(可理解为把源文件同步后重命名)。
注意

数据传输在部署 Spug 的主机(或容器)上执行 sshfs 挂载与 rsync,请确保已安装相关依赖,Docker 部署需要 privileged: true;目标主机需要安装 rsync

数据上传

执行流水线时由操作人从浏览器上传文件,再分发到目标主机,适合发布外部构建好的包。

  • 选择上传目标主机:文件将上传到的主机,可多选。
  • 上传路径(目录):目标主机上的目录,同名文件将会被覆盖。
  • 文件类型限制:可选,限制允许上传的文件类型,例如 .jar,.zip
  • 文件大小限制:可选,单位 MB。

钉钉推送 / 飞书推送 / 企业微信推送

通过群机器人 Webhook 发送流水线执行结果,三者配置基本一致。

  • 机器人 Webhook 地址:在对应平台的群机器人设置中获取,需以 http://https:// 开头。
  • 加签密钥(钉钉 / 飞书):机器人安全设置选择 加签(钉钉)或 签名校验(飞书)时填写,未开启可留空。
  • 推送标题 / 推送内容:支持 markdown 语法,可使用 $SPUG_PIPE_NAME(流程名)、$SPUG_NODE_NAME(节点名)、$SPUG_STATE_TEXT(上游状态:执行成功 / 执行失败)、$SPUG_DATETIME(当前时间)以及参数化节点定义的变量。
  • @所有人:钉钉会在正文末尾追加 @所有人;飞书会在卡片内 @所有人;企业微信的 markdown 消息不支持 @,开启后会额外发送一条提醒消息。

飞书推送会根据上游成功 / 失败自动使用绿色 / 红色的卡片标题。

提示

推送节点通常建议将执行条件设置为 总是执行上游执行失败时,以便在流程失败时也能收到通知。钉钉机器人的安全设置请参考 钉钉收不到通知?

推送助手

通过 推送助手 发送短信、电话、邮件或微信公众号消息。

  • 使用前需要在 系统管理 / 系统设置 / 推送服务设置 中绑定推送助手账户,并在推送助手中添加联系人。
  • 推送对象:从推送助手账户的联系人中选择,按短信、电话、邮件、微信公众号分类。
  • 推送标题 / 推送内容:可使用与 Webhook 推送相同的变量。

推送助手的短信、电话等渠道按量计费,余额可在推送服务设置页面查看。