嵌入管道
要创建和运行嵌入式管道,你需要:
- 至少有两个构建节点
- 创建一个JFrog平台访问令牌集成集成
- 添加TriggerPipeline本地步骤到您的管道YAML
YAML
用于嵌入式管道的yaml支持以下参数:
这些字段都支持占位符{{gitBranch}}
或任何$ {environment_variable}
.
参数 | 描述 | 必需的/可选 |
---|---|---|
|
需要触发的嵌入式管道的名称。 | 要求 |
|
需要触发的嵌入式管道中步骤的名称。 | 要求 |
|
如果要触发的步骤属于Project,建议使用projectKey来确保触发正确的步骤。 |
可选 |
|
如果希望触发的步骤属于多分支管道,则需要使用此参数来区分希望触发的分支。 | 如果目标是多分支,则必须 |
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 "Done!" onFailure: - echo "Something went wrong" onComplete: - echo " cleanup up some stuff"
例子
下面是一个显示嵌入式管道的示例。
在这个例子中,top_pipeline
父管道和scanner_pipelin
E是子管道。
管道:—名称: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处触发”