更新时间:2026-03-20 GMT+08:00
分享

流水线任务编排

配置YAML流水线,需在yaml文件中配置“stage-job-step”结构。

YAML文件示例

stages:                                            #流水线阶段务
  test2:                                           #阶段的唯一标识
    name: 阶段_1                                   #阶段的名称
    select: always                                 #阶段是否总是运行
    jobs:                                          #流水线任务
      job_1:                                       #任务的唯一标识
        name: 任务名称                             #任务名称
        if: ${{ default() }}                       #流水线阶段任务执行时需要满足的前提条件,默认值为${{ default() }}
        runs-on: default
        select: selected_by_default                #任务选择的执行方式,默认为selected_by_default
        needs: [ ]                                 #依赖任务的唯一标识,依赖的任务需存在
        steps:                                     #定义组成任务的步骤
          - name: step1                            #步骤的名称
            uses: official_devcloud_cloudBuild     #插件信息,格式为插件名@插件版本。
            env:                                   #插件中的环境变量
              test: test                           
              test2: test2
            with:                                  #插件中输入的参数
              key1: value1                         
              key2: value2
      job_2:                       
        name: 任务名称2              
        if: ${{ default() }} }
        runs-on: [ self-hosted, test2 ]            #流水线任务支持的运行环境
        select: selected_by_default 
        needs: [ job_1 ] 
      job_3: 
        name: 任务名称2  
        if: ${{ default() }} 
        runs-on: [ dedicated, arm_linux ]
        select: selected_by_default 
        needs: [ job_2 ]             
    pre: 
      type: auto                                   #阶段的准入类型
    post:                                          #配置阶段的准出任务
      - name: step1 
        type: gate 
        with: 
          name: 创建策略-20250331212921
          level: tenant
      - name: step1 
        type: gate 
        with:                      
          name: xxw-chqtest-test
          level: project
post:                                             #后处理阶段的唯一标识
  name: 阶段名称                                  #后处理阶段的名称
  select: always                                  #后处理阶段是否总是运行,默认值为always
  jobs: 
    job1: 
      name: 任务名称 
      if: ${{ default() }} 
      select: selected_by_default 
      needs: [ ]                  
      steps: 
        - name: step1 
          uses: official_devcloud_cloudBuild 
          env: 
            test: test 
            test2: test2
          with: 
            key1: value1 
            key2: value2

编排流水线阶段

YAML流水线包含两种阶段:常规阶段和后置阶段。

  • 常规阶段:编排常规阶段时,从编排的顶层结构,由一个stages键开始,stages下最多包含16个阶段
    stages:
      test2:
        name: 阶段_1
        select: selected_by_default
        jobs:    
        pre:
        - type: time_window
          with:
            timeZone: Pacific SA Standard Time
            timeRanges: "[[\"00:00\",\"00:00\"]]"
        post:             # 阶段的准出任务,可以配置多个
    表1 阶段的参数解释

    参数名

    说明

    test2

    阶段的唯一标识,仅支持大小写英文字母、数字、中划线或下划线,长度为1-128子字符串。

    name

    流水线阶段名称。

    select

    阶段是否总是运行。默认值为selected_by_default。

    • always:阶段总是运行。
    • selected_by_default:阶段默认运行,但不总是运行。

    jobs

    流水线任务,每个阶段下最多配置100个任务。

    type

    阶段的准入类型,当前支持三种准入类型。

    • auto:自动准入。
    • manual:手动准入。
    • time_window:时间窗准入,需配置时区和时间段。
      • timezone:指定时区。
      • ranges:指定时间段范围。

    post

    配置阶段的准出任务,目前仅支持门禁插件。配置时需指定策略,支持租户策略和项目策略。

    若使用租户策略,则需配置level:tenant;若使用项目策略,则需配置level:project。

  • 后处理阶段:编排后处理阶段时,从编排的顶层结构下的post中配置。参数解释请参见表1
    post:                  # 后处理阶段
      name: 阶段名称
      select: selected_by_default
      jobs:   
      pre:
      - type: auto
      post:             # 阶段的准出任务,可以配置多个
    表2 阶段的参数解释

    参数名

    说明

    name

    流水线后处理阶段名称。仅支持输入中文、大小写英文字母、数字、中划线、下划线、英文逗号、英文分号、英文冒号、英文句号、顿号、斜杠、英文括号、中文括号及空格,其中空格不可在名称开头或结尾使用,长度为1-128个字符。

    select

    阶段是否总是运行。默认值为selected_by_default。

    • always:阶段总是运行。
    • selected_by_default:阶段默认运行,但不总是运行。

    jobs

    流水线任务,每个阶段下最多配置100个任务。

    type

    阶段的准入类型,当前支持三种准入类型。

    • auto:自动准入。
    • manual:手动准入。
    • time_window:时间窗准入,需配置时区和时间段。
      • timezone:指定时区。
      • ranges:指定时间段范围。

    post

    配置阶段的准出任务,目前仅支持门禁插件。配置时需指定策略,支持租户策略和项目策略。

    若使用租户策略,则需额外配置level:domain。

配置流水线任务

    jobs:                            
      job_1:                         
        name: 任务名称               
        if: ${{ default() }}         
        runs-on: default
        select: selected_by_default  
        needs: [ ]                   
        steps:                       
          - name: step1              
            uses: official_devcloud_cloudBuild     
            env:                     
              test: test             
              test2: test2
            with:                    
              key1: value1           
              key2: value2
表3 任务的参数解释

参数名

说明

job_1

任务的唯一标识,仅支持大小写英文字母、数字、中划线或下划线,长度为1-128个字符。

name

任务名称,仅支持输入中文、大小写英文字母、数字、中划线、下划线、英文逗号、英文分号、英文冒号、英文句号、顿号、斜杠、英文括号、中文括号及空格,其中空格不可在名称开头或结尾使用,长度为1-128个字符。

if

流水线任务执行时需要满足的前提条件,需为可解析的表达式,不超过1024个字符。默认值为${{ default() }}。

runs-on

流水线任务支持的三种类型的运行环境,包括默认资源池、专属资源池和自定义资源池。

  • 官方资源池:default。
  • 自定义资源池:配置一个数组。
    runs-on:
            - self-hosted
            - 00142c2fb7db4701b074d52910f703d5
    • self-hosted:资源池的类型。
    • 00142c2fb7db4701b074d52910f703d5:自定义资源池ID。
  • 专属资源池:配置一个数组。
    runs-on:
            - dedicated
            - 2132b0af0a014aa1bcc9e82f2c239c77
    • dedicated:资源池的类型。
    • 2132b0af0a014aa1bcc9e82f2c239c77:专属资源池ID。

select

任务选择的执行方式,包含以下四种方式。

  • always:任务必须执行。
  • never:任务禁止执行。
  • selected_by_default:任务默认执行,但不总是执行。
  • not_selected_by_default: 任务默认不被执行。

needs

依赖任务的唯一标识。依赖任务需存在。

配置流水线步骤

        steps:                       
          - name: step1              
            uses: official_devcloud_cloudBuild     
            env:                     
              test: test             
              test2: test2
            with:                    
              key1: value1           
              key2: value2
表4 步骤的参数解释

参数名

说明

steps

定义任务组成的步骤,单个任务下最多可配置16个步骤。

name

步骤的名称,名称仅支持输入中文、大小写英文字母、数字、中划线、下划线、英文逗号、英文分号、英文冒号、英文句号、顿号、斜杠、英文括号、中文括号及空格,其中空格不可在名称开头或结尾使用,长度为1-128个字符。

uses

插件信息,格式为“插件名@插件版本”。插件名仅支持输入大小写英文字母、数字、中划线或下划线,长度不超过50个字符。插件版本的格式为a.b.c,三段都是0-99的数字。

官方插件仅体现插件名。

env

插件中的环境变量,最多可配置20个参数。

参数名仅支持大小写英文字母、数字或下划线,不超过128个字符。

参数值不超过8192字符

with

插件中输入的参数,最多可配置50个参数。

相关文档