云服务器内容精选

  • 准备自定义插件包 插件包结构 图1 插件包结构 文件结构 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文件介绍请参考codearts-extension.json文件定义。 resources.json文件只能使用utf-8进行编码,不支持中文标点符号与其他编码形式,若输入则为乱码展示。
  • 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": [ { "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": "类型错误" # (可选) 如正则校验失败的提示信息 } } ], "execution": { "type": "Shell", "target": "scripts/execution.sh" }, "outputs": [] } codearts-extension.json文件参数说明如下: 表2 codearts-extension.json文件参数说明 参数项 说明 type 填写固定值“Task”,标识为一个插件类型。 name 请与注册插件时页面填写的基本信息“唯一标识”字段一致。 friendlyName 请与注册插件时页面填写的基本信息“插件名称”字段一致。 category 请与注册插件时页面填写的基本信息“插件类型”字段一致,包括以下可选值: Build:对应“构建”插件类型。 Test:对应“测试”插件类型。 Gate:对应“代码检查”插件类型。 Normal:对应“通用”插件类型。 Deploy:对应“部署”插件类型。 version 插件版本,支持填写3组0-99的数字,如需新增正式版本,请修改此字段。 description 插件的描述信息。 versionDescription 此版本插件的描述信息,建议体现每个版本的差异点。 dataSourceBindings 此字段暂时未启用,请将值设置为“[]”。 inputs 插件输入内容,对应流水线页面插件展示格式,其值可在业务脚本中通过引用环境变量的方式引用。 execution 业务插件执行内容,其中type字段为业务脚本语言类型,target字段为执行文件入口,建议放在scripts文件夹下。 outputs 插件输出内容,在插件运行结束后写入此处定义值,可对应用作门禁指标metrics,不同的展示结果output。
  • 流水线扩展插件使用场景 使用者可通过扩展插件对接使用各类云服务。如使用CodeArts Pipeline提供的官方插件,如Kubernetes发布。 开发者利用官方工具镜像进行插件开发,自行实现业务逻辑。当前支持开发者使用主流多语言进行业务脚本编写,如:shell/nodejs/python/java等。针对业务的特殊环境要求,支持使用自定义执行机配合基础插件(执行容器镜像)提供更加多样的执行方式。 使用者可开发扩展插件对接已有的第三方CI/CD工具。
  • 使用场景 开发者利用官方工具镜像进行插件开发,自行实现业务逻辑。CodeArts Pipeline当前支持开发者使用主流多语言进行业务脚本编写,如:shell/nodejs/python/java等,当前支持的工具列表详见官方镜像工具。针对业务的特殊环境要求,支持使用自定义执行机配合基础插件(执行容器镜像)提供更加多样的执行方式。 使用者可通过扩展插件对接使用各类云服务。如使用CodeArts Pipeline提供的官方插件,如Kubernetes发布。 使用者可开发扩展插件对接已有的三方CI/CD工具。
  • 响应示例 状态码: 200 OK { "b9fc8fb6d9194536ac66dd74c2212126" : { "publisher_unique_id" : "b9fc8fb6d9194536ac66dd74c2212126", "user_id" : "847a5317086c41798469d0868535943a", "tenant_id" : "ce8df55870164338a72d7e828a966a2a", "description" : "这是描述", "logo_url" : "/api/v1/ce8df55870164338a72d7e828a966a2a/common/get-plugin-icon?object_key=default-cfb6036d13404631a04a5e7f3a5899b2-kubernetes.png-ce8df55870164338a72d7e828a966a2a&icon_type=publish", "website" : "https://tinydesign.cloudbu.huawei.com/rp/team/ptnixbayoz", "support_url" : "5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555", "source_url" : "", "en_name" : "kejiyouxiangongsi", "name" : "杭州XXX科技有限公司", "auth_status" : "accept", "is_delete" : 0, "last_update_user_name" : "devcloud_devcloud_h00485561_01", "last_update_user_id" : "847a5317086c41798469d0868535943a", "last_update_time" : "2023-02-21T09:22:34.528" } }
  • 请求示例 POST https://{endpoint}/v1/ce8df55870164338a72d7e828a966a2a/agent-plugin/publish-draft { "plugin_name" : "testteset", "display_name" : "testteset", "version" : "0.0.1", "plugin_attribution" : "custom" }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用 IAM 服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 plugin_name 否 String 插件名 display_name 否 String 展示名 version 否 String 版本号 plugin_attribution 否 String 插件属性 version_attribution 否 String 版本属性
  • 配置方法 在流水线首页搜索目标流水线,单击操作列,选择“编辑”,进入“任务编排”页面,搜索并添加“Jenkins任务”。 根据需要配置任务参数,参数说明如下: 参数项 说明 Jenkins实例 连接的Jenkins,Jenkins信息在服务扩展点中配置,如果没有,请单击“新建服务扩展点”。 JobName 调用Jenkins下面的某个任务,如:Api_Guard。 params 具体Jenkins任务的运行参数,调用时通过流水线传递,如:{'serviceVersion':${releaseVersion}}。 异步 配置是否异步执行。 描述 任务描述。
  • 配置方法 在流水线首页搜索目标流水线,单击操作列,选择“编辑”,进入“任务编排”页面,搜索并添加“Jenkins任务”。 根据需要配置任务参数,参数说明如下: 参数项 说明 Jenkins实例 连接的Jenkins,Jenkins信息在服务扩展点中配置,如果没有,请单击“新建服务扩展点”。 jobName 调用Jenkins下面的某个任务,如:Api_Guard。 params 具体Jenkins任务的运行参数,调用时通过流水线传递,如:{'serviceVersion':${releaseVersion}}。 异步 配置是否异步执行。 描述 任务描述。