流水线配置(文本)

    编写 pipeline.yml

    pipeline.yml 是一个 格式的文件,其基本语法规则如下:

    • 使用缩进表示层级关系。
    • 缩进不允许使用 Ta b键,仅允许使用空格。
    • 缩进空格数目不做要求,仅需相同层级的元素左侧对齐即可。

    YAML 语法中的对象是一组键值对,使用冒号结构表示。

    一组连字符开头的行,构成一个数组,例如:

    1. - stage
    2. - stage
    3. - stage

    数据结构的子成员是一个数组,则可在该项下缩进一个空格。

    1. stages
    2. - stage
    3. - action
    4. - action
    5. - stage
    6. - action
    7. - action
    8. - stage
    9. - action
    10. - action

    一个 Stages 下包含多个 Stage,因此在编辑流水线文本时,需把 Stage 当作数组而不是对象。同理 Stage 下包含多个 Action。

    Version 表示 pipeline.yml 的版本号。目前最新版本为 1.1,则配置为 version: 1.1 即可。

    初始化 pipeline.yml:

    Stages 由 Stage 列表组成。Stage 表示一个阶段, 其中至少存在一个 Action。Action 是流水线的最小执行单元,表示一个任务或动作。

    Stages、Stage 和 Action 的关系如下所示:

    1. # stage 和 stage 之间是串行的,即前面一个 stage 执行完毕才会开始执行下一个 stage.
    2. # 该例子中一共有 2 个 stage.
    3. stages:
    4. # 在一个 stage 中,多个 Actions 是并行的,不会有依赖关系;
    5. - stage:
    6. # Action1-1 是 Action 的类型,不能任意填写,需要能在扩展市场中找到该类型.
    7. - Action1-1:
    8. ...
    9. # Action1-2 是 Action 的类型,不能任意填写,需要能在扩展市场中找到该类型.
    10. - Action1-2:
    11. params:
    12. ...
    13. # 这里定义了第二个 stage,它在第一个 stage 执行结束后才会开始执行.
    14. # 该 stage 只有一个 Action.
    15. - stage:
    16. # Action2-1 是 Action 的类型,不能任意填写,需要能在扩展市场中找到该类型.
    17. - Action2-1:
    18. params:
    19. ...
    • alias 是 Action 的别名,且不可重复。

    • version

      Action 的版本。

    • params

      Action 的参数,主要用于定义 Action 的行为。

      每个 Action 的参数各不相同。关于 Action 更多信息,请参见 扩展市场

    • resources

      Action 运行资源,可配置项包括:

      • CPU

      • Mem(单位为 MB)

        1. - git-checkout:
        2. params:
        3. ...
        4. resources:
        5. cpu: 0.5
        6. mem: 2048
    • Action 示例

      1. version: "1.1"
      2. stages:
      3. - stage:
      4. - git-checkout:
      5. version: "1.0"
      6. params:
      7. branch: ((gittar.branch))
      8. password: ((gittar.password))
      9. uri: ((gittar.repo))
      10. username: ((gittar.username))
      11. resources:
      12. cpu: 0.53
      13. mem: 1024

    Push 代码时将触发所有包含 on push 的 pipeline。

    1. version: "1.1"
    2. "on":
    3. push:
    4. branches:
    5. - master
    6. - develop
    7. - feature/*
    8. stages:
    9. - stage:
    10. - custom-script:
    11. alias: custom-script
    12. version: "1.0"
    13. commands:
    14. - echo "hello world"

    从 develop 分支合并至 master 分支。

    develop 中包含 on merge 的 pipeline 可触发,master 中包含 on push 的 pipeline 亦可触发。

    提交合并请求将触发 check run。

    流水线配置(文本) - 图2

    check run 将查看流水线结果,若流水线运行失败则 check run 失败。

    流水线配置(文本) - 图4