YAML模式
TriggerPipeline本机步骤的YAML模式如下:
TriggerPipeline
- name:steps: - name: type: TriggerPipeline configuration: #从bash继承所有标签;//www.si-fil.com/confluence/display/JFROG/Bash pipelineName: # required stepName: # required branchName: # optional。当目标为多分支时建议使用。projectKey: # optional。如果目标属于某个项目,建议使用。- name: # required execution: onStart: - echo "Preparing for work…"- set_trigger_payload stepVariables "test=true" - set_trigger_payload pipelineVariables "notify=true" "version=5.4.3" - export pipelines_poll_interval_seconds=30 # defaults to 10 onSuccess: - echo "Job well done!" onFailure: - echo "Something went wrong" - echo "Nested run status is: ${nested_run_status}" onComplete: - echo " cleanup up"
标签
名字
一个字母数字字符串(允许使用下划线),用于标识步骤。
类型
必须TriggerPipeline
对于这个步骤类型。
配置
指定步骤执行环境的所有配置选择。该步骤继承Bash/PowerShell步骤配置标签,包括这些相关的标签:
标签 |
使用说明 |
必需的/可选 |
---|---|---|
集成 |
指定一个JFrog平台访问令牌集成.此集成应该包含一个令牌,该令牌具有触发指定管道的适当访问级别。 |
要求 |
pipelineName |
要触发的管道的名称 |
要求 |
stepName |
要触发的步骤的名称 |
要求 |
branchName |
要触发的分支的名称。如果您的目标管道来自多分支管道源. |
可选 可能需要 |
projectKey |
包含要触发的管道的项目的唯一键。只有当您的目标管道属于一个项目时,才应该使用此方法。 | 可选 可能需要 |
此外,可以定义这些标记来支持该步骤的本机操作:
从Bash派生的标记
执行
声明在执行前和执行后阶段执行的shell命令序列集合:标签 | 使用说明 | 必需的/可选 |
---|---|---|
onStart |
在本机操作之前执行的命令。这是一个理想的地方来利用set_trigger_payload 向目标添加自定义步骤级和管道级变量的实用程序函数。 |
可选 |
调用onSuccess |
成功完成后执行的命令 | 可选 |
onFailure |
在完成失败时执行的命令 | 可选 |
onComplete |
在任何补全时执行的命令 | 可选 |
对象执行的操作onExecute
阶段是此步骤类型固有的,不能被覆盖。
环境变量
TriggerPipeline步骤利用几个新的环境变量来提供尽可能多的信息。
对象的行为可使用这些变量进行配置TriggerPipeline
一步
变量名 | 价值 |
---|---|
pipelines_poll_interval_seconds | 步骤轮询其嵌套运行状态的频率(以秒为单位)。 默认为10秒 |
这些变量被注入到目标管道的环境中
变量名 | 价值 |
---|---|
parent_step_id | TriggerPipeline步骤的唯一ID |
parent_step_name | TriggerPipeline步骤的名称 |
parent_step_url | 链接到TriggerPipeline步骤的URL |
parent_run_id | TriggerPipeline步骤所属的运行的唯一ID |
parent_run_number | TriggerPipeline步骤所属的运行的运行号 |
这些变量被导出到TriggerPipeline
在目标管道运行完成后,步进环境。
变量名 | 价值 |
---|---|
nested_run_status | 触发运行的最终状态(可以是成功、失败、错误、取消、超时或跳过) |
nested_run_number | 触发运行的运行号。 |
nested_run_duration_seconds | 触发运行的总持续时间(以秒为单位) |
nested_run_url | 链接到触发步骤的URL |
例子
下面的示例显示如何配置TriggerPipeline
的一步。
此示例需要一个JFrog平台访问令牌集成.
管道:—名称:top_pipeline步骤:—名称:scan_controller类型:TriggerPipeline配置:pipelineName: scanner_pipeline stepName: scan_it集成:—名称:myPlatformToken环境变量:scan_target: default: "hello-world" allowCustom: true值:- vault - redis - postgresql - "hello-world"执行:onStart: - set_trigger_payload pipelineVariables "scan_target=${scan_target}" - set_trigger_payload stepVariables "notify=email" "uploadReport=true" onComplete:- echo "Final status is $nested_run_status" - name: scanner_pipeline steps: - name: scan_it type: Bash execute: onExecute: - echo "Image to scan is $scan_target."- echo“由父步在$parent_step_url处触发”
工作原理
当你使用TriggerPipeline管道中的本机步骤,它在后台执行以下功能:
- GET /projects(如果提供了projectKey,则找到projectd)
- GET /pipelines(根据管道名称查找管道)
- GET /pipelineSteps(根据步骤名称查找步骤)
- POST /pipelineSteps/:id/trigger(触发从指定步骤开始的运行)
- GET /runs/:id(轮询运行以检查其状态)