更新时间:2024-06-28 GMT+08:00

开发插件代码

注册插件或新建插件版本时,支持用户在插件命令输入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等方式自主与外部数据进行交互,以获取所需要的数据或信息。

自定义插件的数据输出

业务执行完毕后,自定义插件可以读取指定路径文件信息,获取插件的指标数据输出,具体实现步骤如下:

  1. 在插件的低代码界面,通过配置输出信息,用于配置插件的输出阈值。
  2. 在插件的代码开发过程中,通过向指定路径输出“${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
  3. 流水线在插件步骤运行完毕后,单击相应步骤卡片,即可查看自定义插件的的输出结果。

    如果当前插件配置了相应的策略,并应用到流水线准出条件中,还可以单击准出条件查看阶段拦截情况。