云客户?
免费开始>
在MyJFrog >中升级
云有什么新>





概述

TriggerPipeline步骤允许父管道中的一个步骤“嵌入”另一个管道和等待结果运行完成,然后将控件返回到父管道的步骤。然后,父管道继续运行,并访问嵌入式运行中的一些附加信息。

例如,在下图中,步骤2在父元素中管道X触发嵌入的管道Y.当管道Y成功了,就把控制权交还给步骤2管道X,会触发步骤3而且步骤4在进行中

如果嵌入式运行以糟糕的状态结束(失败、超时、取消),TriggerPipeline步骤将以失败状态结束。




提示

  • 节点的使用:触发嵌入式管道的步骤使用专用节点进行处理、轮询和等待状态。在设计嵌入式管道时请记住这一点。根据使用该步骤的频率,您可能会发现节点池耗尽了执行嵌入式管道的容量,使您处于卡死状态。如果您计划大量使用此步骤类型,我们建议考虑将TriggerPipeline步骤分配给单独的节点池,以限制此步骤类型可以使用的总体节点容量。通过使用单独的节点池,可以确保管道不会陷入死锁。
  • 等待时间: TriggerPipeline步骤与任何其他步骤一样都受到超时的影响。在选择嵌入式管道时请记住这一点。如果您的嵌入式管道花费的时间超过了系统超时限制,那么您的TriggerPipeline步骤很可能会在等待子进程完成时超时。我们采取的一种避免这种情况的措施是,当嵌入式运行从“等待”状态转移到“处理”状态时,重置TriggerPipeline步骤的超时计时器。
  • 多个TriggerPipeline步骤可以在管道中包含多少TriggerPipeline步骤是没有限制的,但请记住,很容易发现自己在等待多层嵌入式运行。在使用此步骤类型之前,请考虑您的场景是否更适合通过资源简单地连接两个管道。
页面内容


嵌入管道

要创建和运行嵌入式管道,你需要:

YAML

用于嵌入式管道的yaml支持以下参数:

这些字段都支持占位符{{gitBranch}}或任何$ {environment_variable}

参数 描述 必需的/可选

pipelineName

需要触发的嵌入式管道的名称。 要求

stepName

需要触发的嵌入式管道中步骤的名称。 要求

projectKey

如果要触发的步骤属于Project,建议使用projectKey来确保触发正确的步骤。

可选

branchName

如果希望触发的步骤属于多分支管道,则需要使用此参数来区分希望触发的分支。 如果目标是多分支,则必须
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_pipelinE是子管道。

管道:—名称: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处触发”
  • 没有标签
版权所有©2022 JFrog Ltd.