节点模块详解
每个流水线节点都需要选择一个内置模块,所有模块都包含 节点名称 与 执行条件 两个公共配置项(执行条件的含义见 编排与执行),本文介绍各模块的专有配置。
执行命令
在一台或多台主机上执行 Shell 命令,是最常用的节点。
- 选择主机:执行命令的目标主机,可多选,多台主机并行执行。
- 执行内容:要执行的命令,可以引用参数化节点定义的
_SPUG_*变量以及构建节点导出的变量。
任意一台主机的命令退出码非 0 即视为该节点失败。
构建
在指定主机上拉取 Git 仓库并执行构建命令,产物留在工作目录中,通常搭配 数据传输 节点分发到目标主机。
- Git仓库:仓库地址,支持
http/https与ssh协议,输入后会自动检测是否可以访问。 - 访问凭据:私有仓库选择 凭据管理 中的凭据(
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 推送相同的变量。
推送助手的短信、电话等渠道按量计费,余额可在推送服务设置页面查看。