更新时间:2024-10-15 GMT+08:00

新建流水线(代码化)

准备工作

代码化新建流水线

  1. 访问CodeArts Pipeline首页
  2. 单击“新建流水线”,进入“基本信息”页面,参考表1配置流水线基本信息。

    表1 流水线基本信息参数说明

    参数项

    说明

    名称

    流水线的名称,自定义。支持中文、大小写英文字母、数字、“-”、“_”,长度不超过128个字符。

    所属项目

    流水线归属项目。

    • 从流水线服务首页入口新建流水线,请根据实际需要选择已创建的项目。
    • 从项目下流水线入口新建流水线,所属项目默认为当前项目,不可更改。

    代码源

    选择“Repo”:即CodeArts Repo,提供企业代码托管的全方位服务,为软件开发者提供基于Git的在线代码托管服务。

    说明:

    代码化流水线仅支持使用CodeArts Repo代码仓。

    创建方式

    选择“YAML化编排”:以代码化YAML方式编排流水线,支持语法自动补齐和校验,方便多流水线批量配置。

    代码仓

    流水线关联的代码仓库。

    默认分支

    仓库默认分支,手工或定时执行流水线时默认使用的分支。

    配置方式

    • 新建yaml文件:创建一个新的YAML文件。
    • 已有yaml文件:基于已有YAML文件进行编排,编排后的内容会覆盖原YAML文件。YAML文件编写请参考YAML语法规范

    选择yaml文件

    配置方式选择“已有yaml文件”时,需设置此参数。

    选择提前准备好并存储在代码仓库的YAML文件:选择对应分支并输入YAML文件的相对路径。

    Repo HTTPS授权

    配置授权扩展点以提升代码库操作权限,当前主要用于流水线服务的微服务变更功能模块及其相关插件。可选择准备工作中提前创建的扩展点,也可单击“新建授权”进行创建,具体操作请参考新建CodeArts服务扩展点。

    别名

    仓库别名,设置别名后可基于别名生成仓库对应的系统参数,如:“别名_REPOSITORY_NAME”,表示仓库名称。生成的参数可在参数设置页面查看,并在流水线中通过“${参数名}”进行引用。

    描述

    不超过1024个字符。

  3. 配置完基本信息,单击“确定”,进入“任务编排”页面。

    • 左侧为YAML编辑区域,请参考YAML语法规范编写YAML。
    • 右侧为流水线插件列表,请根据需要添加步骤yaml。

    编排过程支持语法规范校验;单击“预览”,可切换至图形化界面预览效果。

  4. 编排完任务,单击“保存”,填写提交信息,选择推送分支。

    • 选项一表示推送到已有分支:如果是“新建yaml文件”方式新建流水线,已有分支为默认分支;如果是基于“已有yaml文件”方式新建流水线,已有分支则为YAML文件所在的分支。
    • 选项二表示推送到新分支:基于上述已有分支创建一个新分支,勾选“创建合并请求”,则会创建一个从新分支到已有分支的合并请求。

  5. 单击“确定”,完成流水线创建。

YAML语法规范

  • 快速上手语法示例
    流水线串联编译构建任务、代码检查任务、部署任务,并在编译构建任务中引用流水线参数。
    env: # 以键值对的形式定义环境变量,定义后可在流水线的任意任务中引用
      image_version: 1.0.0
    
    jobs: # 定义组成流水线的任务
      build: # 任务ID,定义任务的唯一标识
        name: maven build # 任务的名称,在图形化界面中会展示该名称
        steps: # 定义组成任务的步骤
          - name: My build step # 步骤的名称,在图形化界面中会展示该名称
            uses: CodeArtsBuild # 指定步骤运行的插件
            with: # 以键值对的形式定义插件的运行参数,可引用env中定义的变量。
              jobId: 878b4d13cb284d9e8f33f988a902f57c
              artifactIdentifier: my_image
              version: ${{ env.image_version }}
      check:
        name: code check
        steps:
          - name: My check step
            uses: CodeArtsCheck
            with:
              jobId: 43885d46e13d4bf583d3a648e9b39d1e
              checkMode: full
      deploy:
        name: cce deploy
        needs: # 使任务在指定的任务结束后才开始运行
          - build
          - check
        if: ${{ completed() }} # 指定任务的运行条件
        steps:
          - name: My deploy step
            uses: CodeArtsDeploy
            with:
              jobId: 9c5a5cda6ffa4ab583380f5a014b2b31
              version: ${{ env.image_version }}