云客户?
免费开始>
在MyJFrog中升级>
云的新功能>





概述

TriggerPipeline本机步骤将触发另一个步骤,并等待结果运行完成后再继续。这允许您在自己的管道中嵌入另一个管道。

请注意

  • 此步骤类型将利用构建节点轮询触发运行的状态,直到完成为止。确保节点池的容量足以支持两个管道并行执行。
  • 的详细信息TriggerPipeline原生步骤,参见嵌入式管道

你可以使用set_trigger_payload中的效用函数onStart部分设置您希望触发的管道的自定义参数。此外,还可以添加pipelineVariables,它将应用于触发运行中的所有步骤,以及stepVariables,它将仅应用于指定的步骤。

Linux只

此步骤仅支持在Linux机器上执行。目前还没有PowerShell支持。

页面内容


YAML模式

TriggerPipeline原生步骤的YAML模式如下:

TriggerPipeline
- name: 步骤:- name:  type: TriggerPipeline配置:#继承bash的所有标签;//m.si-fil.com/confluence/display/JFROG/Bash pipelineName:  # required stepName:  # required branchName:  # optional如果目标是多分支,建议使用。projectKey:  #可选。如果目标属于项目,建议使用。集成:- name:  #需要执行: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 #默认为10 onSuccess: - echo "Job well done!" onFailure: - echo "Something went wrong" - echo "Nested run status is: ${nested_run_status}" onComplete: - echo "Cleaning up"

标签

名字

一个字母数字标识步骤的字符串(允许使用下划线)。

类型

必须TriggerPipeline对于这一步,输入:

配置

指定步骤执行环境的所有配置选择。此步骤继承Bash/PowerShell步骤配置标签,包括这些相关的标签:

标签

使用说明

必需的/可选
集成

指定一个JFrog平台访问令牌集成。此集成应包含一个令牌,该令牌具有触发指定管道的适当访问级别。

要求
pipelineName

要触发的管道的名称

要求
stepName

要触发的步骤的名称

要求
branchName

要触发的分支的名称。如果您的目标管道来自多支路管道源

可选

可能需要

projectKey 包含要触发的管道的Project的唯一键。只有当您的目标管道属于项目时,才应该使用此选项。

可选

可能需要


此外,可以定义这些标签来支持步骤的本机操作:

从Bash派生的标签

所有本地步骤都派生自Bash的一步。这意味着所有步骤都共享来自Bash的相同基本标记集,而本机步骤也有自己的附加标记,这些标记支持步骤的特定功能。所以熟悉这个很重要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

例子

下面以配置aTriggerPipeline的一步。

这个例子需要JFrog平台访问令牌集成

管道:-名称:top_pipeline步骤:-名称:scan_controller类型:TriggerPipeline配置:pipelineName: scanner_pipeline stepName: scan_it集成:-名称:myPlatformToken环境变量:scan_target:默认:"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 execution: onExecute:—echo "要扫描的映像为$scan_target."- echo " $parent_step_url被父步触发"

它是如何工作的

当你使用TriggerPipeline它是管道中的原生步骤,在后台执行以下功能:

  • GET /projects(如果提供了projectKey,就会找到项目)
  • GET /pipelines(通过管道名称查找管道)
  • GET /pipelineSteps(通过其名称查找步骤)
  • POST /pipelineSteps/:id/trigger(触发从指定步骤开始的运行)
  • GET /runs/:id(轮询运行以检查其状态)
  • 没有标签
版权所有©2023 JFrog Ltd.