JFrog帮助中心

我们的新传送门很快就要来了!
文档+知识库





JFrog帮助中心-一个全新的知识体验即将到来!



概述

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

请注意

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

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

Linux只

此步骤仅支持在Linux机器上执行。PowerShell支持还不可用。

页面内容


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派生的标记

所有本机步骤都派生自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

例子

下面的示例显示如何配置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(轮询运行以检查其状态)
  • 没有标签
版权所有©2023 JFrog Ltd。