跳到主要内容

任务编排

阶段设置

阶段是流水线中的二级元素,一个阶段通常是具有一些列相似性任务的集合,如“代码扫描”阶段,他可以有“代码规范扫描”、“代码安全扫描”、“代码缺陷扫描”三个任务。一条流水线可以有多个阶段,按照顺序串行执行。阶段有以下基本元素:

  • 阶段名称:阶段的名字,同一条流水线内可以重复
  • 阶段标识:阶段的唯一标识,同一条流水线内不可重复
  • 触发方式
    • 自动触发:上游阶段构建成功之后,自动触发下游阶段,如果失败,则不允许触发下游
    • 手动触发:上游阶段构建成功之后,不会自动触发下游阶段,需要手动点击执行按钮
  • 失败策略
    • 快速失败 :主要应用并发任务执行时的场景,如下图所示。在构建阶段有三个并行任务链,当编译阶段开始执行时,三个任务链会同时开始执行。其中 Step1-1 执行失败后,即使 Step2-1. Step3-1 执行成功,也不会触发下游任务执行。即当选择“快速失败”时,并行的任务链条是可以互相影响执行状态的。 快速失败和自然失败
    • 自然失败 :与快速失败相反,当选择“自然失败”时,并行的任务链条互不影响,即使 Step1-1 执行失败,它只会影响 Step1-2. Step1-3 不能继续执行,而 Step2. Step3 链条仍会正常向下执行,直到链条全部执行完毕

使用事例 : 【 推荐】您可以在可视化编辑界面定义: 新建阶段 编辑阶段

您可以在 Yml 中直接定义:

# 配置阶段,必填字段。可以配置多个 stage,按照配置顺序串行执行
stages:
- stage:
# 阶段标识,支持数字、字母 (小写)、中划线、下划线,当前流水线内唯一
name: compile
# 阶段名称,支持中文、数字、字母、通用符号等,最大 128 个字符
displayName: 编译
# 阶段触发策略,naturally 表示自然失败,fast 表示快速失败
strategy: naturally
# 阶段触发方式,auto 表示自动触发,manual 表示手动触发
trigger: auto

任务设置

任务是流水线的三级元素,属于阶段的子元素,是最小执行单元。在阶段可以定义任务按照串行或并行两种顺序执行,任务默认全部是自动执行,不支持手动执行。一个任务对应一个插件,任务是插件的执行容器。基于此,流水线的整体模型为: 一个流水线对应多个阶段,一个阶段对应多个任务,一个任务对应一个插件

一个任务包含以下基本信息:

  • 任务名称:任务的名字,同一阶段内可以重复
  • 任务标识:任务的唯一标识,同一阶段内不可重复

使用事例: 【推荐】您可以在可视化编辑界面定义: 新建任务 配置任务 新建串、并行任务

您可以在 Yml 中直接定义:

# 配置任务,必填字段。可以配置多个任务,并定义串并行
steps:
# 当前任务所对应的插件标识,您可以通过 点击此处>>> 寻找对应的插件
- step: build@maven
# 任务标识,支持数字、字母 (小写)、中划线、下划线,当前阶段内唯一
name: build_maven_1
# 任务名称,支持中文、数字、字母、通用符号等,最大 128 个字符
displayName: Maven 构建 -1
- step: build@maven
name: build_maven_2
displayName: Maven 构建 -2
# 依赖配置,表示 Maven 构建 -2 这个任务 和 Maven 构建 -1 串行执行,每个任务的出度和入肚均为 1
dependsOn: build_maven_1
- step: build@maven
name: build_maven_3
displayName: Maven 构建 -3