更新时间:2024-10-29 GMT+08:00
通过流水线生成标签名并通过上下文传递为代码仓库创建标签
方案概述
流水线上下文存储了流水线运行的实例、变量、任务等信息,每个上下文都是一个包含各种属性的对象。使用流水线时,当一个任务生成了数据或结果,且这些数据或结果需要在后续的任务中使用时,可以基于流水线上下文来实现,流水线上下文可以帮助实现任务间的信息传递和协作,使得整个流水线运作更加灵活和高效。
本文以通过流水线自动为代码仓库创建标签为例,介绍流水线上下文在流水线任务间的传递过程。
操作步骤
- 登录华为云控制台页面。
- 单击页面左上角,在服务列表中选择“开发与运维 > 流水线 CodeArts Pipeline”。
- 单击“立即使用”,进入流水线服务首页。
- 单击“新建流水线”,根据需要配置流水线信息。
- 基本信息:配置以下信息,单击“下一步”。
- 选择模板:选择“空模板”,单击“确定”。
- 进入“任务编排”页面,系统默认生成两个阶段(“代码源”和“阶段_1”),单击“新建阶段”新增一个阶段“阶段_2”。
- 添加“执行Shell”插件,生成标签名称。
- 单击“阶段_1”的“新建任务”,弹出“新建任务”侧滑框。
- 搜索并添加“执行Shell”插件。
- 填写插件名称(保持默认),输入如下Shell命令:
branch='${{ sources.Repo01.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”的“新建任务”,弹出“新建任务”侧滑框。
- 搜索并添加“创建仓库标签”插件,填写如下信息。
- 名称:插件名称,保持默认即可。
- 标签名:输入“${{jobs.JOB_tBeer.outputs.tag_name}}”,其中JOB_tBeer为“执行Shell”插件所在的任务ID。
- 仓库:选择流水线关联的代码仓库。
图2 创建仓库标签
- 配置完成后,单击“保存并执行”。
- 弹出“执行配置”侧滑框,保持默认配置,单击“执行”。
- 执行成功后,在左侧导航栏选择“代码 > 代码托管”,进入代码托管服务。
- 单击流水线关联的代码仓库名称,进入仓库详情页。
- 单击“代码”页签下的“Tags”子页签,即可在标签列表查看到通过流水线创建的标签v1.0.0。
图3 查看标签