文档首页/ 流水线 CodeArts Pipeline/ 最佳实践/ 通过流水线生成标签名并通过上下文传递为代码仓库创建标签
更新时间:2024-09-23 GMT+08:00
分享

通过流水线生成标签名并通过上下文传递为代码仓库创建标签

方案概述

流水线上下文存储了流水线运行的实例、变量、任务等信息,每个上下文都是一个包含各种属性的对象。使用流水线时,当一个任务生成了数据或结果,且这些数据或结果需要在后续的任务中使用时,可以基于流水线上下文来实现,流水线上下文可以帮助实现任务间的信息传递和协作,使得整个流水线运作更加灵活和高效。

本文以通过流水线自动为代码仓库创建标签为例,介绍流水线上下文在流水线任务间的传递过程。

准备工作

  • 新建项目(选择“Scrum”模板,命名为“Project01”)。
  • 新建代码仓库(选择“Java Maven Demo”模板,命名为“Repo01”),并创建release-1.0.0分支。

操作步骤

  1. 登录华为云控制台页面
  2. 单击页面左上角,在服务列表中选择“开发与运维 > 流水线 CodeArts Pipeline”。
  3. 单击“立即使用”,进入流水线服务首页。
  4. 单击“新建流水线”,根据需要配置流水线信息。

    1. 基本信息:配置以下信息,单击“下一步”。
      表1 流水线基本信息

      配置项

      配置建议

      名称

      流水线名称,输入“Pipeline01”。

      所属项目

      流水线所在的项目,选择准备工作中已创建的项目“Project01”。

      代码源

      流水线关联的代码源类型,选择“Repo”。

      代码仓

      选择准备工作中已创建的代码仓“Repo01”。

      默认分支

      默认使用的分支,选择准备工作中已创建的分支“release-1.0.0”。

    2. 选择模板:选择“空模板”,单击“确定”。

  5. 进入“任务编排”页面,系统默认生成两个阶段(“代码源”和“阶段_1”),单击“新建阶段”新增一个阶段“阶段_2”。
  6. 添加“执行Shell”插件,生成标签名称。

    1. 单击“阶段_1”的“新建任务”,弹出“新建任务”侧滑框。
    2. 搜索并添加“执行Shell”插件。
    3. 填写插件名称(保持默认),输入如下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 生成标签名称

  7. 添加“创建仓库标签”插件,创建代码仓库标签。

    1. 单击“阶段_2”的“新建任务”,弹出“新建任务”侧滑框。
    2. 搜索并添加“创建仓库标签”插件,填写如下信息。
      • 名称:插件名称,保持默认即可。
      • 标签名:输入“${{jobs.JOB_tBeer.outputs.tag_name}}”,其中JOB_tBeer为“执行Shell”插件所在的任务ID。
      • 仓库:选择流水线关联的代码仓库。
      图2 创建仓库标签

  8. 配置完成后,单击“保存并执行”。
  9. 弹出“执行配置”侧滑框,保持默认配置,单击“执行”。
  10. 执行成功后,在左侧导航栏选择“代码 > 代码托管”,进入代码托管服务。
  11. 单击流水线关联的代码仓库名称,进入仓库详情页。
  12. 单击“代码”页签下的“Tags”子页签,即可在标签列表查看到通过流水线创建的标签v1.0.0。

相关文档