文件
扩展步骤定义必须存储在表单的子目录路径中:步骤/ <名称> / < stepTypeName >
.
名称空间
是扩展集集合的名称空间。此父子目录可以包含多个步骤定义子目录。stepTypeName
是命名的吗?类型
这一步。必须仅为字母字符,并且区分大小写。
子目录可以保存以下文件来定义步骤:
文件 | 描述 | 必需的/可选 |
---|---|---|
stepModel.yml |
语法模型对于这一步。 | 要求 |
和/或
|
中执行的Shell脚本onExecute 块。不允许使用任何用户命令。 |
|
onExecute.ps1 是必需的平台标记设置为窗户 . |
||
和/或
|
中执行的Shell脚本调用onSuccess 阻断、提前执行用户命令。不允许使用任何用户命令。 |
可选 |
和/或
|
中执行的Shell脚本onFailure 阻断、提前执行用户命令。不允许使用任何用户命令。 |
可选 |
和/或
|
中执行的Shell脚本onComplete 阻断、提前执行用户命令。不允许使用任何用户命令。 |
可选 |
ReadMe.md |
扩展步骤的文档 | 可选 |
icon.svg |
图标图形表示交互图中的步骤类型。 如果没有提供,管道将使用该步骤的默认图标。 |
可选 |
当在pipeline UI中将源存储库配置为扩展源时,将从源存储库加载扩展步骤定义。
有关管理扩展源和扩展版本生命周期分期的信息,请参见管理管道扩展.
语法模型
这是该步骤的语法模型。
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操作系统。 | 可选 |
配置
步骤扩展继承与泛型相同的所有标记Bash步骤指定作用域环境变量、运行时、节点池和其他标准属性。它还继承了标记集成
,inputsteps
,input2022世界杯阿根廷预选赛赛程resources
和output2022世界杯阿根廷预选赛赛程resources。
此外,步骤扩展可以定义该步骤独有的其他属性。
的配置
标记开始一个属性定义块。每个属性定义都以属性名称开头(仅限字母,区分大小写),后面跟着这些从属标签:
userDefinedDataType
开始一组用户定义的数据类型规范。用户定义的数据类型使用验证规则指定属性类型,并且可以用作类型
步骤的属性定义中的值。
标记语法与资源模型.
Shell脚本
扩展步骤定义可以包括可选的Bash shell或PowerShell脚本,以便为步骤的适当标记执行执行
博客。这些脚本定义了步骤的操作。
onExecute.sh / onExecute.ps1
在步骤定义的存储库目录中出现时,onExecute.sh / onExecute.ps1
脚本作为步骤执行onExecute
块。这将执行该步骤的主要功能。
脚本必须返回真正的
如果步骤成功,则返回假
如果失败了。
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
脚本返回真实的。
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
脚本返回假的。
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
阻断、提前执行用户命令。
例如:
“都完成了!”