更新时间:2024-11-22 GMT+08:00
分享

流水线任务jobs

一条流水线由定义在jobs中的多个任务组成。

jobs.<job_id>

使用jobs.<job_id>定义任务的唯一标识,流水线内不能重复,该标识只能由大小写字母、数字、“-”、“_”组成,最长32位。

jobs:
  job1:
    name: first job
  job2:
    name: second job

如上定义表示两个唯一标识分别为job1和job2的任务。

jobs.<job_id>.name

使用jobs.<job_id>.name定义任务的名称,在图形化界面中会展示该名称。

jobs:
  job1:
    name: first job
  job2:
    name: second job

如上定义表示job1和job2任务的名称分别为first job和second job。

jobs.<job_id>.needs

使用jobs.<job_id>.needs可定义任务在指定的任务结束后才开始运行。

jobs:
  job1:
    name: first job
  job2:
    needs: [ job1 ]
    name: second job

如上定义表示job2会在job1运行成功后开始执行。

jobs.<job_id>.if

使用jobs.<job_id>.if可定义任务的运行条件,表达式编写请参考流水线执行条件表达式

jobs:
  job1:
    name: first job
  job2:
    needs: [ job1 ]
    if: ${{ always() }}
    name: second job

如上定义表示job2会在job1运行结束后开始执行,不论job1的最终状态如何。

jobs.<job_id>.steps

每个任务由定义在steps中的多个步骤组成,每个步骤可运行一个指定的插件。

jobs.<job_id>.steps<*>.name

使用jobs.<job_id>.steps<*>.name定义步骤的名称,在图形化界面中会展示该名称。

jobs.<job_id>.steps<*>.uses

使用jobs.<job_id>.steps<*>.uses可指定步骤运行的插件。

jobs:
  demo_job:
    name: simple demo job
    steps:
      - name: simple custom step
        uses: custom_plugin@1.0.0

如上定义表示一个名称为custom_plugin,版本为1.0.0的插件。

流水线官方插件YAML语法

  • Build构建

    调用编译构建能力进行构建。

    uses: CodeArtsBuild
    with:
      jobId: 878b4d13cb284d9e8f33f988a902f57c
      artifactIdentifier: my_pkg
      customParam: value
    • jobId:编译构建任务id。获取方法:在构建任务详情页,复制浏览器URL末尾的32位数字、字母组合的字符串,即为构建任务ID。
    • artifactIdentifier:构建产物标识。
    • customParam:在构建任务定义的支持运行时设置的参数值,可能有0到多个。
  • TestPlan接口测试

    调用CodeArts TestPlan能力进行测试。

    uses: CodeArtsTestPlan
    with:
      jobId: vb180000vnrgoeib
      environmentModel: 1
      environmentId: 7c2eff2377584811b7981674900158e8
    • jobId:接口测试任务的id。
    • environmentModel:参数来源(0表示使用全新执行参数,1表示使用选中环境的全局参数)。
    • environmentId:environmentModel为1时的环境id。
  • Deploy部署

    调用CodeArts Deploy能力进行部署。

    uses: CodeArtsDeploy
    with:
      jobId: 9c5a5cda6ffa4ab583380f5a014b2b31
      customParam: value
    • jobId:部署任务的id。
    • customParam:在部署任务处定义的支持运行时设置的参数值,可能有0到多个。
  • Check代码检查

    调用CodeArts Check能力进行代码检查。

    uses: CodeArtsCheck
    with:
      jobId: 43885d46e13d4bf583d3a648e9b39d1e
      checkMode: full|push_inc_full||push_multi_inc_full
    • jobId:代码检查任务的id。
    • checkMode:检查模式。
      • full:表示对本次commit所在分支的全量代码进行检查。
      • push_inc_full:表示对本次commit的变更文件内容进行检查。
      • push_multi_inc_full:表示对上一次检查成功的commit到本次commit之间的变更文件内容进行检查。
  • 创建仓库标签

    为代码仓创建标签并推送。

    uses: CreateTag
    with:
      tagName: v1

    tagName为标签名称。

  • 子流水线

    配置并调用项目下其他流水线任务。

    uses: SubPipeline
    with:
      pipelineId: 80ea2d9ffba94c20b9a0a0be47d3a0d8
      branch: master
    • pipelineId:调用的流水线的id。
    • branch:子流水线运行使用的分支。
      • branch参数可以不定义,表示使用子流水线默认分支运行。
      • 若定义branch参数则表示以指定的分支运行,可以引用参数或上下文,如:使用父流水线源的运行分支,假设代码源别名为“my_repo”,则引用形式为${{ sources.my_repo.target_branch }}。
  • Jenkins任务

    调用Jenkins任务以扩展并实现自定义动作。

    uses: Jenkins
    with:
      endpoint: eac965b206e74e2b898a24a4375b6df6
      jobName: job
      params: '{ \"key\":\"value\" }'
      async: true|false
      description: description
    • endpoint:jenkins扩展点的id。
    • jobName:jenkins的job名称。
    • params:启动任务传递的参数(json格式)。
    • async:是否异步执行。
    • description:执行说明。
  • 挂起流水线

    配置以挂起当前流水线。

    uses: SuspendPipeline
  • 延时执行

    让流水线暂停运行一段时间或暂停至指定时间点,用户可以手动继续、终止流水线运行或进行最多3次的额外延时。

    uses: Delay
    with:
      timerType: delay|scheduled
      delayTime: 300
      scheduledTime: '00:00'
      timeZone: China Standard Time
    • timerType:延时类型。delay表示延时一段时间;scheduled表示延时至指定时间。
    • delayTime:timerType为delay时的延时时间(单位为秒)。
    • scheduledTime:timerType为scheduled时的延时时间点。
    • timeZone:对应时区,可选值见下表。
    表1 时区

    可选值

    时区

    GMT Standard Time

    GMT

    South Africa Standard Time

    GMT+02:00

    SE Asia Standard Time

    GMT+07:00

    Singapore Standard Time

    GMT+08:00

    China Standard Time

    GMT+08:00

    Pacific SA Standard Time

    GMT-04:00

    E. South America Standard Time

    GMT-03:00

    Central Standard Time (Mexico)

    GMT-06:00

    Egypt Standard Time

    GMT+02:00

    Saudi Arabia Standard Time

    GMT+03:00

  • 人工审核

    以单签或会签的方式配置人工审核任务。

    uses: Checkpoint
    with:
      mode: members|roles
      approvers: 05d8ca972f114765a8984795a8aa4d41
      roles: PROJECT_MANAGER
      checkStrategy: all|any
      timeout: 300
      timeoutStrategy: reject|pass
      comment: comment
    • mode:审核模式。members表示按成员审核,roles表示按角色审核。
    • approvers:审核模式为members时的审核人员用户id,多个用户以“,”分隔。
    • role:审核模式为roles时的角色,可选值见表2,多个角色以“,”分隔。
    • checkStrategy:审核模式为members时的审核策略。all表示需所有人员审核才能通过;any表示任一人员审核即可通过。
    • timeout:审核超时时长(单位为秒)。
    • timeoutStrategy:审核超时时的策略。reject表示中止;pass表示通过。
    • comment:审核描述。
    表2 审核角色

    审核角色

    YAML标识

    项目创建者

    PROJECT_CREATOR

    项目经理

    PROJECT_MANAGER

    开发人员

    DEVELOPER

    测试经理

    TESTING_MANAGER

    测试人员

    TESTER

    参与者

    PARTICIPANT

    浏览者

    VIEWER

    运维经理

    OPERATION_MANAGER

    产品经理

    PRODUCT_MANAGER

    系统工程师

    SYSTEM_ENGINEER

    Committer

    COMMITTER

相关文档