为了满足不同企业的个性化需求,充分发挥团队的创造性,持续交付开放了自定义步骤能力,支持团队成员将内部得心应手的工具封装成自定义步骤,提高业务交付效率。本文为您介绍如何创建自定义步骤。
自定义步骤由一个 YAML 描述文件构成。YAML 文件中包含自定义步骤的基本信息、步骤入参、步骤出参、步骤的执行脚本 script 及步骤的镜像 image。运行自定义步骤时,流水线会基于当前 YAML 起一组 Pod,执行 script 任务。
本文使用的自定义步骤 YAML 文件示例如下,您可基于此模板快速改造适合本团队的自定义步骤。
# 自定义步骤名称,必填项。支持英文大小写、数字、“-”中横线,长度 2~50,不允许重名。 step: v2-custom-step # 自定义步骤版本,必填项。要求格式为 x.y.z,且 x,y,z 均为 [0,100] 的整数。 version: 1.0.0 # 自定义步骤的显示名称,必填项。支持中英文大小写、数字、“-”中横线,长度 2~50。用作步骤名称展示,不允许为空、不允许重名。 displayName: 自定义步骤v2-demo-doc # 自定义步骤描述,非必填。200个字符以内,支持中英文大小写特殊字符。 description: 自定义步骤v2 demo,介绍自定义步骤的基础用法,包括引用配置项参数、流水线变量等用法 # 分类,必填项。目前仅支持以下分类:【构建】Build 、【测试】Test、 【部署】Deploy、 【镜像仓库】Registry、 【命令执行】Command、 【其他】Other category: Other # 运行时镜像,必填项。支持公有镜像和私有镜像。私有镜像必须配置镜像访问凭证 imageCredential 参数。 image: xxx.cr.volces.com/ns/busybox:latest # 拉取私有镜像的凭证信息,非必填。下文以火山引擎镜像仓库举例。 imageCredential: # 镜像仓库地址。仅需填写 host 地址。 registry: xxx.cr.volces.com # 镜像仓库用户名。 username: xxx@1400****** # 镜像仓库访问密码,支持永久密码和临时密码。注意:临时密码存在有效期,临时密码失效后无法正常拉取私有镜像。 # 前端展示自定义步骤 YAML 时,密码会做脱敏处理。 password: xxxxxxxxx # 运行脚本,必填项、不能为空。作用类似于 Dockerfile 文件中的 ENTRYPOINT,用于指定容器启动程序及参数。 # 可通过 export xxx=$(inputs.KEY) 注入步骤入参。注意 KEY 值与待引用 inputs.name 的值保持一致,否则将无法成功引用该步骤入参。 # 可通过 export xxx=$(预置变量名) 注入流水线预置变量。 script: | # 引用自定义步骤 input 配置项参数的示例。获取设置的命令并执行。 $(inputs.cmd) # 引用自定义步骤 input 配置项参数的示例。获取配置项的值并输出。 export ENV=$(inputs.pipeline-env) echo "ENV:$ENV" # 引用流水线预置变量的示例。打印流水线ID。 echo "PIPELINE_ID:$(PIPELINE_ID)" # 引用流水线预置变量的示例。打印流水线执行时间。 echo "DATETIME:$(DATETIME)" # 定义步骤的输入信息,非必填。支持配置多条步骤入参。详细介绍请参见 https://www.volcengine.com/docs/6461/1108787。 inputs: # 字段名称,必填项。支持英文大小写、数字、“-”中横线,长度 2~50,不允许重名。 - name: cmd # 字段显示名称,必填项。支持中英文大小写、数字、“-”中横线,长度 2~50,用作参数名称展示,不允许为空、不允许重名。 displayName: 执行自定义命令 description: 执行一条自定义命令 # 字段类型,必填项。 type: string # 字段默认值,选填项。 defaultValue: echo hello world # 字段是否必填,必填项。设置为true时,步骤配置页面字段前会显示小红星,保存时会校验字段是否填写。 required: true # 字段配置样式。 uiConfig: type: CodeEditor - name: pipeline-env displayName: 变量 description: 流水线环境变量引用示范 type: string defaultValue: required: true uiConfig: type: Input # 定义步骤的输出信息,非必填。 # 本示例不使用 outputs。 # outputs: # - name: xxx # displayName: xxx # type: string
已准备好自定义步骤使用的 Docker 镜像。建议上传至火山引擎镜像仓库。上传至火山引擎镜像仓库相关操作可参见 推送和拉取镜像。
拥有 CPAdminAccess 权限的账号可创建自定义步骤。子用户可联系对应火山引擎账号授予该权限,具体操作请参考 配置权限。
通过在 YAML 文件中配置镜像访问凭证 imageCredential,可实现自定义步骤使用私有镜像。如果您对镜像安全性有更高的要求,推荐使用以下方案。
登录 持续交付控制台,在左侧导航栏选择 模板市场 > 步骤模板。
在步骤模板页面,单击 创建自定义步骤,弹出创建自定义步骤面板。
在左侧输入框,按照自定义步骤的 YAML 要求,编写步骤内容。
编写完成后,单击 确定。
创建成功的自定义步骤将展示在对应分类下。
自定义步骤创建成功后,团队成员便可在流水线中使用。具体操作可参见 使用自定义步骤。