新建流水线

本文章介绍应用开发人员如何为产品或应用新建流水线、配置流水线阶段和任务。

新建应用流水线

前提条件

在新建流水线之前,需要完成应用创建和基本信息配置。详细步骤,参见 新建应用

配置流水线基础信息

通过以下步骤为应用新建流水线:

  1. 在项目列表中,点击项目名称,进入项目空间。

  2. 在左侧导航栏中,选择 研发 > 流水线

  3. 点击 新建流水线,并在 基础信息 一栏中,完成流水线的基础配置信息:

    • 应用/产品:从已创建应用列表中,选择为目标应用创建流水线

    • 流水线名称:输入流水线的名称

    • 语言/版本:选择开发应用使用的语言以及对应版本

    • 工具:选择语言需要依赖的工具,如 Java 需要依赖 Maven

    • 仓库地址:根据选择的应用,自动填入应用代码的仓库地址

    • 触发设置:选择触发流水线运行的方式:

      • 自动触发:当指定的 Git 仓库分支发生变化时,运行流水线
      • 手动触发:手动选择 Git 仓库分支,并运行流水线
      • 定时触发:在设定时间定时运行流水线
    • 仓库分支:当触发设置为自动触发或定时触发时,选择运行流水线的 Git 仓库分支

    • 触发时间:当触发设置为定时触发时,选择运行流水线的具体时间。

      ../../../_images/create_pipeline.png
  4. 完成基础信息配置后,在 Stage 一栏中,点击 添加 Stage,配置流水线的阶段和任务。

配置阶段和任务

通过以下步骤配置流水线的阶段和任务:

  1. 阶段名称:输入 Stage 的名称。

  2. 点击 添加任务 按钮,选择任务类型,并输入相应的参数。

    • 构建
      • 任务名称:输入构建任务的名称
      • 超时时间:输入任务运行超时时间
      • Docker 文件路径:输入 Dockerfile 存放路径,如 docker/Dockerfile,默认为项目根路径
      • Docker 镜像仓库:选择镜像仓库

    注解

    构建任务会判断是否存在 build.sh,若存在,则自动执行 build.sh;若不存在,则判断是否存在 pom.xml,若存在,则执行 mvn clean package -U -DskipTests 命令。使用自定义 build.sh 进行构建时需要将构建结果如 war/tar/jar/zip 包等的存放位置设置为项目根目录下的 target 目录。

    • 代码扫描
      • 任务名称:输入代码扫描任务的名称
      • 超时时间:输入任务运行超时时间
      • 待扫描代码:输入需要扫描的文件路径,如 src/main/javasrc/main/java/utils/Test.java
      • 排除文件:输入无需扫描的文件路径,如 src/main/java/*,src/main/java/**/*,src/main/java/utils/Test.java
      • 单元测试:选择是否进行单元测试,如需进行单元测试,则输入测试文件的路径,如 src/test

    注解

    代码扫描任务会判断是否存在 build.sh,若存在,则自动执行 build.sh;若不存在,则判断是否存在 pom.xml,若存在,则执行 mvn clean compile -DskipTests命令。编程语言为 Java 时,会判断是否存在 sonar-project.properties 文件,若存在,则使用 sonar-scanner 完成代码扫描;若不存在,则使用 mvn sonar:sonar 进行代码扫描。其他编程语言如 Node.js,则默认使用 sonar-scanner 进行代码扫描。

    • 部署
      • 任务名称:输入部署任务的名称
      • 超时时间:输入任务运行超时时间
      • 集群:选择部署应用的集群
      • 资源类型:选择部署资源类型,可选 Deployment 或 StatefulSet
      • 资源名称:选择应用的部署资源名称(参见 配置Deployment
    • 发布依赖包
      • 任务名称:输入任务的名称
      • 构建路径:输入pom文件所在的路径,如 share,默认为项目根路径
      • 参数:Java 默认命令为 mvn deploy,可添加参数,如 -DskipTests;npm 默认命令为 npm publish,可添加参数,如 –access=public
    • Jenkins任务
      • 任务名称:输入 Jenkins 任务的名称
      • 超时时间:输入任务运行超时时间
      • Jenkins URL:输入 Jenkins 服务地址,如:http://jenkins-ci.envisioncn.com:8080/jenkins
      • Username:输入 Jenkins 用户名
      • API Token:输入 Jenkins 用户名所生成的 API Token
      • 任务名:输入 Jenkins job 名称
      • Jenkins 参数:输入需要的 Jenkins 参数
    • 自定义任务
      • 任务名称:输入自定义的任务的名称
      • Shell 脚本路径:输入需要执行的脚本的路径
  3. 点击并拖动任务,可以对任务运行进行排序。

    ../../../_images/add_stage.png
  4. 阶段内的任务配置完成后,点击 添加Stage,重复以上步骤,添加流水线的第二个阶段。

  5. 阶段配置完成之后,点击 新建流水线 按钮,保存流水线配置。

新建产品流水线

产品级流水线用于一个产品下多个应用打包成一个 Chart 用于之后通过 Helm 部署。支持的任务类型:Chart 生成。

前提条件

在新建流水线之前,需要完成产品与应用创建和基本信息配置。详细步骤,参见 新建产品新建应用

注解

仅支持 Common 类型的产品,且产品下需关联至少一个应用。

配置流水线基础信息

通过以下步骤为产品新建流水线:

  1. 在项目列表中,点击项目名称,进入项目空间。

  2. 在左侧导航栏中,选择 研发 > 流水线

  3. 点击 新建流水线,并在 基础信息 一栏中,完成流水线的基础配置信息:

    • 应用/产品:从已创建产品列表中,选择为目标产品创建流水线

    • 流水线名称:输入流水线的名称

      ../../../_images/create_pipeline_product.png
  4. 完成基础信息配置后,在 Stage 一栏中,点击 添加 Stage,配置流水线的阶段和任务。

配置阶段和任务

通过以下步骤配置流水线的阶段和任务:

  1. 阶段名称:输入 Stage 的名称。

  2. 点击 添加任务 按钮,选择任务类型,并输入相应的参数。

    • Chart 生成
      • 集群:选择流水线所使用环境与集群。
      • Chart 名称:输入Chart名称,默认为应用/产品名。
      • Chart 版本号:输入Chart版本号。
      • 应用版本号:输入应用版本号。
  3. 点击 +SubChart 按钮,添加子 Chart。

    • SubChart
      • 应用名称:选择产品关联的应用。
      • SubChart 名称:输入 SubChart 的应用,默认为应用名称。
      • SubChart 版本号:输入 SubChart 版本号,默认为 Chart 版本号。
      • SubChart 应用版本号:输入 SubChart 应用版本号,默认为应用版本号。

    注解

    需至少包括一个 SubChart。

    ../../../_images/add_stage_chart.png
  4. 可点击 +SubChart 按钮,重复以上步骤,添加多个子 Chart。

  5. 配置完成之后,点击 新建流水线 按钮,保存流水线配置。

后续操作

流水线创建完成后,可运行流水线,并查看流水线运行状态和结果。