【问题标题】:How to get drone environment variables in custom plugin?如何在自定义插件中获取无人机环境变量?
【发布时间】:2025-12-14 01:25:01
【问题描述】:

我正在尝试为无人机 ci 编写我的第一个自定义插件,该插件将更改 git tag 并推送回存储库。 该插件将使用 GO 编写。我的问题是,如何在 GO 应用程序中输入 https://docs.drone.io/pipeline/environment/reference/

你我必须这样通过吗:

kind: pipeline
type: docker
name: default

steps:
- name: custom/plugin
  image: custom/tag
  settings:
    url: $DRONE_GIT_HTTP_URL`

并在GO应用中访问如下:

func main() {

   url := os.GetEnv("URL")

【问题讨论】:

    标签: drone.io


    【解决方案1】:

    标准的 Drone 环境变量总是注入到所有管道中的所有步骤中,因此通常最好检查环境变量的常规名称。

    具体到您的使用案例,您应该将代码更改为 url := os.GetEnv("PLUGIN_URL"),因为 Drone 会自动为所有设置添加 PLUGIN_ 前缀。

    【讨论】:

    • 感谢您的回答。但是要获取容器内的变量,我必须通过例如设置来导入它,对吗?
    • 不,Drone 默认情况下会自动将存储库、构建和提交详细信息作为环境变量注入所有管道容器(包括插件容器)。在此处查看可用的环境变量的完整列表:docs.drone.io/pipeline/environment/reference