流水线上下文
什么是流水线上下文
流水线上下文是指在流水线运行过程中,用于存储和传递与流水线相关的各种信息的一种机制或环境。流水线上下文存储了流水线运行的实例、变量、任务等信息,每个上下文都是一个包含各种属性的对象。使用流水线时,当一个任务生成了数据或结果,且这些数据或结果需要在后续的任务中使用时,可以基于流水线上下文来实现,流水线上下文可以帮助实现任务间的信息传递和协作,使得整个流水线运作更加灵活和高效。流水线上下文主要包括以下四类:
| 上下文 | 类型 | 说明 |
|---|---|---|
| pipeline | object | 流水线运行相关的信息。 |
| sources | object | 流水线运行的源相关的信息。 |
| env | object | 流水线运行的自定义参数相关的信息。 |
| jobs | object | 流水线运行的已执行完成的任务相关的信息。 |
流水线上下文引用形式
${{ <context>.<attribute_name> }} - context:流水线上下文。
- attribute_name:属性。
流水线上下文属性介绍
| 上下文 | 属性 | 类型 | 说明 | 示例 |
|---|---|---|---|---|
| pipeline context | pipeline | object | 流水线运行相关的所有信息,此对象包含的属性包括:project_id、pipeline_id、run_number、timestamp、trigger_type和run_id。 |
|
| pipeline.project_id | string | 当前流水线所属项目ID,同现有流水线系统预定义参数PROJECT_ID。 | ||
| pipeline.component_id | string | 当前流水线所属微服务ID,同现有流水线系统预定义参数COMPONENT_ID。 | ||
| pipeline.pipeline_id | string | 当前流水线ID,同现有流水线系统预定义参数PIPELINE_ID。 | ||
| pipeline.run_number | string | 流水线执行编号,同现有流水线系统预定义参数PIPELINE_NUMBER。 | ||
| pipeline.timestamp | string | 流水线执行时间戳,同现有流水线系统预定义参数TIMESTAMP,格式为yyyyMMddHHmmss。如:20211222124301。 | ||
| pipeline.trigger_type | string | 流水线触发类型,同现有流水线系统预定义参数PIPELINE_TRIGGER_TYPE。 | ||
| pipeline.run_id | string | 流水线执行ID,同现有流水线系统预定义参数PIPELINE_RUN_ID。 | ||
| pipeline.execute_user_name | string | 流水线执行人名称,同现有流水线系统预定义参数EXECUTE_USER_NAME。 | ||
| pipeline.external_system | string | 触发流水线的外部系统,同现有流水线系统预定义参数EXTERNAL_SYSTEM。该参数只在流水线被外部系统触发时才出现。 | ||
| pipeline.external_user_id | string | 外部系统触发流水线时的用户ID,同现有流水线系统预定义参数EXTERNAL_USER_ID。 | ||
| pipeline.external_user_name | string | 外部系统触发流水线时的用户名称,同现有流水线系统预定义参数EXTERNAL_USER_NAME。 | ||
| pipeline.upstream_status | string | 流水线除后处理阶段外的前置阶段的状态。 | ||
| sources context | sources | object | 流水线运行的源相关的所有信息,此对象包含的属性包括:alias、repo_name、commit_id、commit_id_short、commit_message、repo_url、repo_type、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 | 流水线执行前最后一次代码提交的CommitID,同现有流水线系统预定义参数COMMIT_ID。 | ||
| sources.<alias>.commit_id_short | string | 流水线执行前最后一次代码提交的CommitID的前8位,同现有流水线系统预定义参数COMMIT_ID_SHORT。 | ||
| sources.<alias>.commit_message | string | 流水线执行前最后一次代码提交的提交信息。 | ||
| sources.<alias>.repo_url | string | 代码仓地址(HTTPS),同现有流水线系统预定义参数REPO_URL。 | ||
| sources.<alias>.repo_type | string | 代码仓类型。如:codehub、gitlab、github、gitee、general_git。 | ||
| 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时代表目标分支名称,否则代表运行分支名称。 | ||
| env context | name | string | 自定义参数名称。 | |
| value | string | 自定义参数值。 | ||
| 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(忽略)、SUSPEND(挂起)或UNSELECTED(未选择)。 | ||
| jobs.<job_id>.outputs | object | 任务的运行一般输出,即键值对形式的数据输出。 | ||
| jobs.<job_id>.outputs.<output_name> | string | 任务的运行一般输出的数据名称。 | ||
| jobs.<job_id>.metrics | object | 任务的运行指标输出。如:代码检查问题数、测试通过率等指标项。 | ||
| jobs.<job_id>.metrics.<metric_name> | string | 任务的运行指标输出的名称。 |