概要
プラグインは、事前定義されたタスクを実行するDockerコンテナーであり、パイプラインのステップとして構成されます。プラグインは、コードのデプロイ、アーティファクトの公開、通知の送信などに使用できます。
DockerおよびSlackプラグインを使用したパイプラインの例:
1 kind: pipeline
2 type: docker
3 name: default
4
5 steps:
6 - name: build
7 image: golang
8 commands:
9 - go get
10 - go test
11 - go build
12
13 - name: publish
14 image: plugins/docker
15 settings:
16 username: kevinbacon
17 password: pa55word
18 repo: foo/bar
19 tags:
20 - 1.0.0
21 - 1.0
22
23 - name: notify
24 image: plugins/slack
25 settings:
26 channel: developers
27 username: drone
プラグインは単なるDockerコンテナです。つまり、コンテナ内で実行される任意のプログラミング言語でプラグインを記述できます。単純なbashスクリプトを使用してプラグインを作成することもできます。
プラグイン入力
プラグインパラメータは、パイプラインステップの設定セクションで定義され、環境変数としてプラグインコンテナに渡されます。名前の競合を防ぐために、環境変数には接頭辞が付いています。
- プラグイン構成の例。
- name: publish
image: plugins/docker
settings:
username: kevinbacon
password: pa55word
repo: foo/bar
tags:
- 1.0.0
- 1.0 - コンテナに渡されるプラグイン変数の例。
PLUGIN_USERNAME=kevinbacon
PLUGIN_PASSWORD=pa55word
PLUGIN_REPO=foo/bar
PLUGIN_TAGS=1.0.0,1.0
プラグインパラメータは、任意のプリミティブ型またはプリミティブ型の配列にすることができます。配列はコンマ区切りの文字列に変換されます。
プラグインの配布
プラグインはDockerイメージとして配布されます。プラグインは、プライベートまたはパブリックの任意のDockerレジストリに公開して、組織内でプラグインを共有したり、より広範な開発者コミュニティとパブリックに共有したりできます。
プラグインレジストリ
Droneプラグインレジストリは、Droneコミュニティによって作成されたオープンソースプラグインのリストです。プラグインをレジストリに追加したいですか?プラグインをレジストリWebサイトに追加するプルリクエストを送信してください。
参考文献