通过流水线自动为代码仓库创建标签
方案概述
流水线上下文存储了流水线运行的实例、变量、任务等信息,每个上下文都是一个包含各种属性的对象。使用流水线时,当一个任务生成了数据或结果,且这些数据或结果需要在后续任务中使用时,可以基于流水线上下文来实现,流水线上下文可以帮助实现任务间的信息传递和协作,使得整个流水线运作更加灵活和高效。
本文以通过流水线自动为代码仓库创建标签为例,介绍流水线上下文在流水线任务间的传递过程。
准备工作
- 已开通并授权使用CodeArts Pipeline。
- 新建项目(选择“Scrum”模板,命名为“Project_Test”)。
- 新建代码仓库(选择“Java Maven Demo”模板,命名为“Repo_Test”),并创建release-1.0.0分支。
操作步骤
- 登录华为云控制台页面。
- 单击页面左上角
,在服务列表中选择“开发与运维 > 流水线 CodeArts Pipeline”。
- 单击“立即使用”,进入流水线服务首页。
- 单击“新建流水线”,进入“基本信息”页面,参考表1配置流水线基本信息。
- 配置完基本信息,单击“下一步”,进入“选择模板”页面,选择“空模板”,单击“确定”。
- 进入“任务编排”页面,系统默认生成两个阶段(“流水线源”和“阶段_1”),单击“新建阶段”新增一个阶段“阶段_2”。
- 单击“阶段_1”的“新建任务”,选择“从空模板新建”,弹出“新建任务”侧滑框,在搜索框搜索“执行shell”插件,将鼠标移动到插件卡片,单击“添加”,填写插件名称(保持默认),输入如下Shell命令,生成标签名称。
1 2 3 4 5
branch='${{ sources.Repo_Test.target_branch }}' //获取到运行的分支名称 echo $branch //打印分支名称 tag=${branch/release-/v} //将分支名称自定义为新的参数(本示例:release-1.0.0自定义处理为v1.0.0) echo $tag //打印标签名称 echo ::set-output var=tag_name:$tag //生成了tag_name输出,并设置到上下文中,供后续任务使用
图1 生成标签名称 - 单击“阶段_2”的“新建任务”,选择“从空模板新建”,弹出“新建任务”侧滑框,在搜索框搜索“创建仓库标签”插件,将鼠标移动到插件卡片,单击“添加”,参考表2填写相关信息,创建代码仓库标签。
表2 参数信息说明 参数项
说明
名称
插件名称,保持默认即可。
标签名
标签名称,输入“${{jobs.JOB_tBeer.outputs.tag_name}}”,其中JOB_tBeer为“执行Shell”插件所在的任务ID。
仓库
选择流水线关联的代码仓库。
图2 创建仓库标签 - 配置完成后,单击“保存并执行”,弹出“执行配置”弹窗,保持默认配置,单击“执行”。
- 执行成功后,在左侧导航栏选择“代码 > 代码托管”,进入代码托管服务。
- 单击流水线关联的代码仓库名称,进入仓库详情页。
- 单击“代码”页签下的“Tags”子页签,即可在标签列表查看到通过流水线创建的标签v1.0.0。
图3 查看标签