Drone で CI をおこなう

  • Drone CI Server がセットアップ済であること。

準備

CLI をインストール

ローカルでの実行確認や Drone サーバーの API を叩くためのコマンド Drone CLI をインストールしておく。

macOS の場合)

$ brew tap drone/drone
$ brew install drone

サーバーの API を実行する場合、サーバーの URL と API トークンを環境変数に設定しておく。

$ export DRONE_SERVER=https://drone.example.jp
$ export DRONE_TOKEN=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

設定するトークンは Drone Server の画面にログインして画面右上の User settings から確認することができる。

リポジトリに対し、CI を有効にする

  1. Drone Server にログインする。
  2. リポジトリ一覧から対象を選択し、"ACTIVATE REPOSITORY" これにより、GitHub のリポジトリに Drone への Webhook 設定が追加される。この設定は GitHub リポジトリの Settings > Hooks から確認できる。
  3. "Project settings" の "Trusted" をチェックして "SAVE" ★この設定は Drone 管理者のみ設定可
    (これを有効にしないと一部の機能が使用できない。)

CI の設定

リポジトリのルートディレクトリに .drone.yml を作成してコミットする。

設定方法は Drone CI 設定方法 を参照。

ローカルでの実行確認

.drone.yml のあるディレクトリで以下のコマンドを実行する。(要 Docker Engine)

$ drone exec --trusted

Secrets を使っている場合、サーバーでないと復号できないため、ローカルに secret を (name)=(value) 形式で記述したテキストファイルを用意して指定する。

$ drone exec --trusted --secret-file=secrets.txt