开发插件代码
注册插件或新建插件版本时,支持用户在插件命令输入Shell命令以实现插件业务逻辑,编写命令过程中,通常会涉及和流水线执行过程中的各种数据进行交互。本节主要从插件的代码开发输入输出,介绍插件业务的代码实现。
自定义插件的数据输入
插件代码开发过程中获取的外部信息主要包括三部分:低代码界面配置输入、流水线运行参数、其他外部信息。
- 低代码界面配置输入:在插件命令中,使用环境变量获取低代码界面输出,如:echo ${控件唯一标识}。
- 流水线运行参数:流水线的部分运行参数会下发到环境变量中,当前已提供的环境变量如下。
变量
描述
STEP_NAME
当前流水线的运行步骤名称。
STEP_ID
当前流水线的运行步骤ID。
PLUGIN_VERSION
当前自定义插件版本。
PIPELINE_ID
流水线ID。
PIPELINE_RUN_ID
流水线执行ID。
PLUGIN_NAME
插件名称。
PROJECT_ID
当前项目ID。
JOB_ID
当前流水线运行任务ID。
- 其他外部信息:通过git、wget、curl等方式自主与外部数据进行交互,以获取所需要的数据或信息。
自定义插件的数据输出
业务执行完毕后,自定义插件可以读取指定路径文件信息,获取插件的指标数据输出,具体实现步骤如下:
- 在插件的低代码界面,通过配置输出信息,用于配置插件的输出阈值。
- 在插件的代码开发过程中,通过向指定路径输出“${STEP_ID}_result.json”和“${STEP_ID}_metrics.json”文件,实现插件运行完成后,对相应的指标值进行解析。
表1 输出文件说明 输出文件
使用说明
${RESULT_MSG_PATH}/${STEP_ID}_result.json
输出形似 {"par1":123, "par2":456} 格式的文本文件,流水线运行完成后会将该结果展示于相应任务的任务结果当中。
说明:当前仅“代码检查”类型的插件支持将该结果进行展示。
${RESULT_MSG_PATH}/${STEP_ID}_metrics.json
输出形似 {"par1":123, "par2":456} 格式的文本文件,配合插件“输入配置”中的metrics控件使用。流水线在插件步骤运行完成后,会根据该插件配置的metrics控件中的阈值和“${STEP_ID}_metrics.json”文件中的实际内容,进行比对和解析,并最终用于流水线阶段准出的拦截依据。比对解析逻辑如下:
- 解析时,服务会忽略未配置在metrics控件中的key值。
- 当metrics控件中配置的key值无法在“${STEP_ID}_result.json”文件中找到对应值时,对应阈值会用value值进行填充。
示例介绍:实现对外输出“par1”和“par2”指标用于准出拦截,输出“par3”和“par4”指标用于任务结果展示,示例代码如下:
# Optionally, construct the extension output. echo '{"par1":100,"par2":200}' > ${RESULT_MSG_PATH}/${STEP_ID}_result.json echo '{"par3":300,"par4":400}' > ${RESULT_MSG_PATH}/${STEP_ID}_metrics.json
- 流水线在插件步骤运行完毕后,单击相应步骤卡片,即可查看自定义插件的的输出结果。
如果当前插件配置了相应的策略,并应用到流水线准出条件中,还可以单击准出条件查看阶段拦截情况。