插件介绍
本文通过一个简单示例插件为您介绍插件的相关属性。
插件包结构
文件结构:
extension.zip # 插件zip包 | -- scripts # (可选)脚本文件夹,用于存放包含插件执行逻辑的脚本 | | -- xxx # 包含插件执行逻辑的脚本 | -- i18n # (可选)多语言,存放所有文案信息 | | -- zh-cn # 中文环境内容 | | -- resources.json # 对应语言的国际化资源 | | -- en-us # 英文环境内容 | | -- resources.json # 对应语言的国际化资源 | -- codeArts-extension.json # (必选)插件执行定义文件,Json格式,包括扩展插件的基本信息+input+execution
注意事项:
- 插件必须为.zip后缀。
- 插件包根目录下必须包含名为“codearts-extension.json”的元数据文件。
- 页面注册时填写的“唯一标识”,需与“codearts-extension.json”文件中的“name”字段值匹配;“插件类型”需与文件中的“category”字段值匹配。
- “resources.json”文件只能使用utf-8进行编码,不支持中文标点符号与其他编码形式,若输入则为乱码展示。
插件类型
category
构建
Build
代码检查
Gate
部署
Deploy
测试
Test
通用
Normal
codearts-extension.json文件定义
“codearts-extension.json”文件示例内容如下:
{ "type": "Task", "name": "demo_plugin", "friendlyName": "示例插件", "description": "这是一个示例插件", "category": "Gate", "version": "0.0.2", "versionDescription": "0.0.1初始化版本", "dataSourceBindings": [], "inputs": [{ "label": "服务调用地址", "name": "SERVICE_URL", "type": "input", "description": "请输入服务地址url", "defaultValue": "", "required": true }, { "label": "调用服务的token", "name": "SERVICE_TOKEN", "type": "input", "description": "请输入调用服务的token", "defaultValue": "", "required": true }], "execution": { "type": "Shell", "target": "scripts/execution.sh" }, "outputs": [] }
参数说明如下:
参数项 |
说明 |
---|---|
type |
填写固定值“Task”,标识为一个插件类型。 |
name |
请与注册插件时页面填写的基本信息“唯一标识”字段一致。 |
friendlyName |
请与注册插件时页面填写的基本信息“插件名称”字段一致。 |
category |
请与注册插件时页面填写的基本信息“插件类型”字段一致,包括以下可选值:
|
version |
插件版本,支持填写3组0-99的数字,如需新增正式版本,请修改此字段。 |
description |
插件的描述信息。 |
versionDescription |
此版本插件的描述信息,建议体现每个版本的差异点。 |
dataSourceBindings |
此字段暂时未启用,请将值设置为“[]”。 |
inputs |
插件输入内容,对应流水线页面插件展示格式,其值可在业务脚本中通过引用环境变量的方式引用。 |
execution |
业务插件执行内容,其中type字段为业务脚本语言类型,target字段为执行文件入口,建议放在scripts文件夹下。 |
outputs |
插件输出内容,在插件运行结束后写入此处定义值,可对应用作门禁指标metrics,不同的展示结果output。 |
inputs介绍
inputs示例及参数介绍如下:
{ "name": "samplestring", # 如插件业务脚本中使用${samplestring}获取运行者在流水线上配置的值 "type": "input", # 不同类型信息对应不同展示功能,可选项见下文 "description": "Sample String", # input条目的描述信息,用于描述其值含义 "defaultValue": "00", # 默认值,required属性为false时,如不在流水线上重新输入,则默认使用此值 "required": true, # true则流水线编辑时必须重新填值,false则不填使用默认值 "label": "测试输入框", # input条目在流水线编辑页面显示的名称信息 "validation": { "requiredMessage": "请输入值", # (可选) 如required字段为true,未填写时的提示信息 "regex": "^[a-zA-Z0-9-_\\u4e00-\\u9fa5]{1,32}$", # (可选)可填写正则校验的内容 "regexMessage": "类型错误" # (可选) 如正则校验失败的提示信息 } }
当前支持的全量inputs定义请参见全量inputs。