更新时间:2024-06-18 GMT+08:00

流水线上下文信息参考

流水线上下文中存储了流水线运行的实例、变量、任务等信息。每个上下文都是一个包含各种属性的对象。

  • 引用形式
    ${{ <context>.<attribute_name> }}
  • 流水线相关上下文

    上下文

    类型

    说明

    pipeline

    object

    流水线运行相关的信息。

    sources

    object

    流水线运行的源相关的信息。

    env

    object

    流水线运行的自定义参数相关的信息。

    jobs

    object

    流水线运行的已执行完成的任务相关的信息。

使用场景

大部分上下文可在流水线任意任务和步骤中使用。

  • 在任务的执行条件中引用上下文,来指定某个任务的执行条件。
    示例:如下使用表示任务在指定代码源的运行分支为“master”时才运行。
    ${{ sources.my_repo.target_branch == 'master' }}
  • 在任务的输入框中引用上下文获取信息。

    示例1:如下使用表示获取流水线运行的所有信息。
    ${{ pipeline }}
    示例2:如下使用表示获取流水线运行的触发方式。
    ${{ pipeline.trigger_type }}

pipeline context

pipeline context包含流水线运行相关的信息。

名称

类型

说明

pipeline

object

流水线运行相关的所有信息,此对象包含的属性包括:project_id、pipeline_id、run_number、timestamp、trigger_type和run_id。

pipeline.project_id

string

当前流水线所属项目ID,同现有系统预定义参数PROJECT_ID。

pipeline.pipeline_id

string

当前流水线ID,同现有系统预定义参数PIPELINE_ID。

pipeline.run_number

string

流水线执行编号,同现有系统预定义参数PIPELINE_NUMBER。

pipeline.timestamp

string

流水线执行时间戳,同现有系统预定义参数TIMESTAMP。如:20211222124301。

pipeline.trigger_type

string

流水线触发类型,同现有系统预定义参数PIPELINE_TRIGGER_TYPE。

pipeline.run_id

string

流水线执行ID,同现有系统预定义参数PIPELINE_RUN_ID。

  • 内容示例

    如下示例为一次手动运行的流水线包含的pipeline context信息。

    {
        "project_id": "6428c2e2b4b64affa14ec80896695c49",
        "pipeline_id": "f9981060660249a3856f46c2c402f244",
        "run_number": "168",
        "timestamp": "20231016000004",
        "trigger_type": "Manual",
        "run_id": "c2f507f93510459190b543e47f6c9bec"
    }
  • 使用示例

    如需在某个任务的输入中获取本次流水线运行的触发方式,可使用如下语法来获取。

    ${{ pipeline.trigger_type }}

sources context

sources context包含流水线运行的源相关的信息。

名称

类型

说明

sources

object

流水线运行的源相关的所有信息,此对象包含的属性包括:alias、repo_name、commit_id、commit_id_short、commit_message、repo_url、repo_type、repo_name、ssh_repo_url、tag、merge_id、source_branch和target_branch。

sources.<alias>

object

别名为alias对应的流水线源的所有信息,当流水线源定义别名时存在。

sources.<repo_name>

object

代码仓名称为repo_name的流水线代码源的所有信息,当代码源未定义别名时存在,包含属性同alias。

sources.<alias>.commit_id

string

执行时代码最后一次提交的ID,同现有系统预定义参数COMMIT_ID。

sources.<alias>.commit_id_short

string

执行时代码最后一次提交的短ID,同现有系统预定义参数COMMIT_ID_SHORT。

sources.<alias>.commit_message

string

执行时代码最后一次提交的message。

sources.<alias>.repo_url

string

代码仓地址(HTTPS),同现有系统预定义参数REPO_URL。

sources.<alias>.repo_type

string

代码仓类型。

sources.<alias>.repo_name

string

代码仓名称。

sources.<alias>.ssh_repo_url

string

代码仓地址(SSH)。

sources.<alias>.tag

string

标签触发时的标签名称。

sources.<alias>.merge_id

string

合并请求触发时的合并请求ID。

sources.<alias>.source_branch

string

合并请求触发时的源分支名称。

sources.<alias>.target_branch

string

MR时代表目标分支名称,否则代表运行分支名称。

  • 内容示例

    如下示例为单代码源的流水线一次手动运行所包含的sources context信息,其中代码源别名为“my_repo”。

    {
        "my_repo": {
            "commit_id": "dedb73bb9abfdaab7d810f2616bae9d2b6632ecc",
            "commit_id_short": "dedb73bb",
            "commit_message": "maven0529 更新 pipeline0615.yml",
            "repo_url": "https://example.com/clsyz00001/maven0529.git",
            "repo_type": "codehub",
            "repo_name": "maven0529",
            "ssh_repo_url": "git@example.com:clsyz00001/maven0529.git",
            "target_branch": "master"
        }
    }
  • 使用示例

    如需在某个任务的输入中获取本次流水线运行的运行分支,可使用如下语法来获取。

    ${{ sources.my_repo.target_branch }}

env context

env context包含流水线运行的自定义参数相关的信息。

名称

类型

说明

name

string

自定义参数名称。

value

string

自定义参数值。

  • 内容示例

    如下示例为流水线一次运行包含的env context信息,包含了两个自定义参数。

    {
        "var_1": "val1",
        "var_2": "val2"
    }
  • 使用示例

    如需要在某个任务的输入中获取本次流水线运行的自定义参数“var_1”的值,可使用如下语法来获取。

    ${{ env.var_1 }}

jobs context

jobs context包含流水线运行的已执行完成的任务相关的信息。

名称

类型

说明

jobs

object

流水线运行的任务相关的信息,此对象包含的属性包括: job_id、status、outputs、output_name、metrics、metric_name。

jobs.<job_id>

object

ID为job_id的任务包含的所有信息。

jobs.<job_id>.status

string

任务的运行结果,取值结果为:INIT、QUEUED、RUNNING、CANCELED、COMPLETED、FAILED、PAUSED、IGNORED或UNSELECTED。

jobs.<job_id>.outputs

object

任务的运行一般输出。

jobs.<job_id>.outputs.<output_name>

string

任务的运行一般输出中output_name对应的值。

jobs.<job_id>.metrics

object

任务的运行指标输出。

jobs.<job_id>.metrics.<metric_name>

string

任务的运行指标输出中metric_name对应的值。

  • 内容示例

    如下示例为流水线一次运行对应的jobs context信息,包含两个执行成功的任务,ID为“check_job”的任务的输出为两项指标,ID为“demo_job”的任务的输出为两项一般输出。

    {
        "check_job": {
            "status": "COMPLETED",
            "metrics": {
                "critical": "0",
                "major": "0"
            }
        },
        "demo_job": {
            "status": "COMPLETED",
            "outputs": {
                "output1": "val1",
                "output2": "val2"
            }
        }
    }
  • 使用示例

    如需要在后续任务的输入中获取本次运行的“demo_job”的输出“output1”的值,可使用如下语法来获取。

    ${{ jobs.demo_job.outputs.output1 }}