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







概述

Pipelines支持创建用户定义的步骤来扩展Pipelines DSL。


步骤是管道中离散的执行单元。管道DSL定义了两组内置步骤类型:

  • 通用的步骤——对通用执行,执行任何系列的shell命令所支持的运行时。例如:BashPowerShell
  • 本机的步骤-执行一组特定的动作作为一个封装单元。例如,DockerPushHelmDeploy

扩展步骤允许管道用户通过指定自己的步骤类型来扩展管道DSL,这些步骤类型与本机步骤一样,执行封装的操作。当加载到管道中时,这些用户定义的步骤可以在任何管道中使用,就像管道DSL中的任何其他步骤一样。通过这种方式,团队和组织可以为在管道中经常执行的操作创建和共享他们自己的可重用的自定义步骤类型。

扩展步骤在名称空间中定义,以确保集合中的所有步骤都具有唯一的名称。

扩展步骤是版本化的,可以通过语义版本号在管道中调用,以帮助确保兼容性。

页面内容


文件

扩展步骤定义必须存储在表单的子目录路径中:步骤/ <名称> / < stepTypeName >

  • 名称空间是扩展集集合的名称空间。此父子目录可以包含多个步骤定义子目录。
  • stepTypeName是命名的吗?类型这一步。必须仅为字母字符,并且区分大小写。

子目录可以保存以下文件来定义步骤:

文件 描述 必需的/可选
stepModel.yml 语法模型对于这一步。 要求

onExecute.sh

和/或

onExecute.ps1

中执行的Shell脚本onExecute块。不允许使用任何用户命令。

onExecute.sh在下列情况下需要:

  • 平台在这种情况下,默认操作系统为Linux
  • 平台标记设置为Linux
onExecute.ps1是必需的平台标记设置为窗户

onSuccess.sh

和/或

onSuccess.ps1

中执行的Shell脚本调用onSuccess阻断、提前执行用户命令。不允许使用任何用户命令。 可选

onFailure.sh

和/或

onFailure.ps1

中执行的Shell脚本onFailure阻断、提前执行用户命令。不允许使用任何用户命令。 可选

onComplete.sh

和/或

onComplete.ps1

中执行的Shell脚本onComplete阻断、提前执行用户命令。不允许使用任何用户命令。 可选
ReadMe.md 扩展步骤的文档 可选
icon.svg

图标图形表示交互图中的步骤类型。

如果没有提供,管道将使用该步骤的默认图标。

可选

当在pipeline UI中将源存储库配置为扩展源时,将从源存储库加载扩展步骤定义。

有关管理扩展源和扩展版本生命周期分期的信息,请参见管理管道扩展


语法模型

这是该步骤的语法模型。

stepModel.yml
description:  #用户可以提供一个可选的描述平台:# optional - os: Linux - os: Windows configuration: # array of properties : type:  # required required:  # optional validate: # optional  # more属性定义userDefinedDataType: # array of data type定义- type:  #定义一个新的数据类型配置:- : #指定一个数据类型的属性type: # required required:  # optional validate: # optional  #更多数据类型属性定义

标签

类中定义以下标记stepModel.yml文件。

描述

对资源功能的用户友好描述,可用于在pipeline UI中显示。这是可选的。

休息平台

定义将执行该步骤的节点的操作系统。支持Linux和Windows操作系统。

这个标签是可选的,当没有指定这个标签时,Linux是默认的操作系统。

根据不同的操作系统,必须有相应的shell脚本(Bash和/或PowerShell)。对于Linux,onExecute.sh对于Windows,onExecute.ps1必须有可用的脚本。如果提到了两个操作系统,那么两个脚本都必须可用。

标签

使用说明

必需的/可选

操作系统 操作系统。支持Linux和Windows操作系统。 可选
操作系统实例
平台:# optional - os: Linux - os: Windows

配置

步骤扩展继承与泛型相同的所有标记Bash步骤指定作用域环境变量、运行时、节点池和其他标准属性。它还继承了标记集成inputstepsinput2022世界杯阿根廷预选赛赛程resourcesoutput2022世界杯阿根廷预选赛赛程resources。此外,步骤扩展可以定义该步骤独有的其他属性。

配置标记开始一个属性定义块。每个属性定义都以属性名称开头(仅限字母,区分大小写),后面跟着这些从属标签:

标签 使用说明 必需的/可选
类型 指定内置的或用户定义的数据类型 要求
要求

设置为真正的,指定该属性是强制性的。如果没有提供值,则管道同步将失败。

默认是

可选
验证 开始验证规范 可选
配置示例
配置:healthCheckUrl: type: Url required: true;notifyOnSuccess: type: Boolean notifyOnFailure: type: Boolean stuff: type: String[] validate: isRegex: ["^[a-z]+$",'i'] #数组中的每个元素都用这个来验证


userDefinedDataType

开始一组用户定义的数据类型规范。用户定义的数据类型使用验证规则指定属性类型,并且可以用作类型步骤的属性定义中的值。

标记语法与资源模型



Shell脚本

扩展步骤定义可以包括可选的Bash shell或PowerShell脚本,以便为步骤的适当标记执行执行博客。这些脚本定义了步骤的操作。

onExecute.sh / onExecute.ps1

在步骤定义的存储库目录中出现时,onExecute.sh / onExecute.ps1脚本作为步骤执行onExecute块。这将执行该步骤的主要功能。

脚本必须返回真正的如果步骤成功,则返回如果失败了。

onExecute.sh例子
checkHealth() {local success=true local url=$(find_step_configuration_value "healthCheckUrl") {local statusCode=$(curl——silent——output /dev/stderr——write-out "%{http_code}" "$url")} || exitCode=$?如果测试$statusCode -ne 200;然后export success=false fi $success} execute_command checkHealth

onSuccess.sh / onSuccess.ps1

在步骤定义的存储库目录中出现时,onSuccess.sh / onSuccess.ps1脚本作为步骤的一部分执行调用onSuccess阻断、提前执行用户命令。

时执行此脚本onExecute脚本返回真实的。

onSuccess.sh例子
sendSuccessNotification() {local notifyOnSuccess=$(find_step_configuration_value "notifyOnSuccess") if [-z "$notifyOnSuccess"];if if ["$notifyOnSuccess" == "true"];fi} execute_command sendSuccessNotification

onFailure.sh / onFailure.ps1

在步骤定义的存储库目录中出现时,onFailure.sh / onFailure.ps1脚本作为步骤的一部分执行onFailure阻断、提前执行用户命令。

时将执行此脚本onExecute脚本返回假的。

onFailure.sh例子
sendFailNotification() {local notifyOnFailure=$(find_step_configuration_value "notifyOnFailure") if [-z "$notifyOnFailure"];if if ["$notifyOnFailure" == "true"];然后echo "Health check failed" fi} execute_command sendFailNotification

onComplete.sh / onComplete.ps1

在步骤定义的存储库目录中出现时,onComplete.sh / onComplete.ps1脚本作为步骤的一部分执行onComplete阻断、提前执行用户命令。

例如:

onComplete.sh例子
“都完成了!”
  • 没有标签
版权所有©2023 JFrog Ltd.