Drone CI 中文文档

插件概览

插件是执行预定义任务并配置为流水线中步骤的 Docker 容器。插件可用于部署代码、发布制品、发送通知等。

以下是使用 Docker 和 Slack 插件的流水线示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
kind: pipeline
type: docker
name: default

steps:
- name: build
  image: golang
  commands:
  - go get
  - go test
  - go build

- name: publish
  image: plugins/docker
  settings:
    username: kevinbacon
    password: pa55word
    repo: foo/bar
    tags:
    - 1.0.0
    - 1.0

- name: notify
  image: plugins/slack
  settings:
    channel: developers
    username: drone

插件只是 Docker 容器,这意味着你可以使用在容器内运行的任何编程语言编写插件。你甚至可以使用简单的 bash 脚本创建插件。

源代码

插件自动访问相关源代码并提交构建,作为卷安装到插件容器中。该插件也会在当前工作目录设置为 git 存储库的根目录时启动。该插件不需要克隆或检出代码;这是由 Drone 处理的。

插件输入

插件参数在流水线步骤的设置部分定义,并作为环境变量传递给插件容器。环境变量有前缀以防止命名冲突。

  • 以下是示例插件配

    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    - name: publish
      image: plugins/docker
      settings:
        username: kevinbacon
        password: pa55word
        repo: foo/bar
        tags:
        - 1.0.0
        - 1.0
    
  • 以下是传递给容器的示例插件变量

    1
    2
    3
    4
    
    PLUGIN_USERNAME=kevinbacon
    PLUGIN_PASSWORD=pa55word
    PLUGIN_REPO=foo/bar
    PLUGIN_TAGS=1.0.0,1.0
    

插件参数可以是任何原始类型或原始类型数组。数组被转换为逗号分隔的字符串。

插件分发

插件作为 Docker 镜像分发。你可以将插件发布到任何 Docker 注册表,无论是私有的还是公共的,以便在你的组织内部或与更广泛的开发人员社区共享插件。

插件注册表

Drone 插件注册表是由 Drone 社区创建的开源插件列表。想要将你的插件添加到注册表?向我们发送 Pull Request,将你的插件添加到注册表网站

浏览插件注册表