前書き
Droneは、Goで記述された継続的インテグレーションおよびデリバリープラットフォームです。 多くの一般的なバージョン管理サービスとの統合により、コードを更新するたびにソフトウェアを自動的に構築、テスト、配信できます。
このチュートリアルでは、サンプルのGitHubリポジトリをフォークし、Droneを使用してプロジェクトをビルドおよびテストします。
前提条件
このチュートリアルを開始する前に、Droneをインストールし、構成し、GitHubアカウントにリンクする必要があります。 次のチュートリアルをご覧ください。
-
How To Install and Use Docker on Ubuntu 16.04:Step 1とStep 2を使用してDockerをインストールします。
-
How To Install Docker Compose on Ubuntu 16.04:Step 1を使用してDockerComposeをインストールします
-
How To Install Nginx on Ubuntu 16.04:Step 1とStep 2を使用してサーバーにNginxをインストールします
-
How To Secure Nginx with Let’s Encrypt on Ubuntu 16.04:SSL証明書でNginxを保護する
-
How To Install and Configure Drone on Ubuntu 16.04:Droneをインストールし、GitHubアカウントにリンクします
完了したら、次のような画面でDroneにログインする必要があります。
これはドローンのダッシュボードです。 ログインしているが、ドローンにリポジトリが設定されていないことを示しています。 リポジトリを作成しましょう。
サンプルリポジトリのフォーク
最初に、ビルドとテストのためのコードを備えたGitHubリポジトリが必要です。 Droneはさまざまなバージョン管理リポジトリで使用できますが、前提条件ではDroneをGitHubアカウントにリンクしているため、このチュートリアルではそれを使用します。 GitHubにログインして、次のリポジトリに移動します。
https://github.com/do-community/hello_hapi
右上隅にあるForkボタンをクリックして、このリポジトリを自分のアカウントにコピーします。 複数のGitHub組織にアクセスできる場合は、リポジトリの分岐先を選択するよう求められる場合があります。 通常のユーザーアカウントを選択します。 しばらくすると、アカウントにコピーされたhello_hapiリポジトリに移動します。
次に、コードをビルドおよびテストするためにDroneを構成する方法を見ていきます。
.drone.ymlファイルについて
ドローンは、リポジトリ内で.drone.yml
という名前の構成ファイルを探して、コードの処理方法を決定します。 このファイルは、分岐したばかりのリポジトリに既に含まれています。
pipeline:
build:
image: node:latest
commands: npm install
test:
image: node:latest
commands: npm run test
これは、pipelineを定義するYAMLファイルです。 パイプラインは、複数のステップを次々に実行する継続的な統合プロセスです。 この場合、2段階のパイプラインがあります。
build
と呼ばれる最初のステップでは、node:latest
Dockerイメージを使用してリポジトリ内のnpm install
を実行します。 これにより、テストの実行に必要なすべてのライブラリがダウンロードおよびインストールされます。
次のステップはtest
と呼ばれます。 同じDockerイメージを使用してテストスイートを実行します。 多くの場合、build
コマンドとtest
コマンドの両方を1つのステップで実行しますが、パイプラインをわかりやすく示すために、それらを分割しました。
パイプラインのステップはすべて同じワークスペースを共有するため、最初のステップで作成されたファイルは後のステップで使用できることに注意してください。 ドローンには、.drone.yml
で構成できるオプションが他にもたくさんあり、Drone documentationで読むことができます。 これらの機能の一部は次のとおりです。
-
マトリックスビルド。ライブラリまたはランタイムの複数のバージョンに対してビルドとテストを行い、互換性を確認します。
-
電子メールまたはメッセージングサービスを介した通知
-
npm、コンテナレジストリ、または静的サイトホストへのビルド製品の公開
次に、リポジトリへの変更を監視し、ビルドをトリガーするようドローンに指示します。
継続的インテグレーションの実行のトリガー
Droneにログインします(まだログインしていない場合)。 ホームページは、セットアップするまでかなりまばらに見えます。 空のサイドバーは、Activate your repositories to get startedを要求します。
Activateリンクをクリックして、すべてのGitHubリポジトリのリストを表示します。
hello_hapiリポジトリを見つけ、右側の列の灰色のトグルをクリックしてアクティブにします。 トグルが反転し、緑色に変わります。 背後では、ドローンはGitHubのAPIを使用して、コードが変更されるたびに通知を受け取るようにします。
画面の左上隅にあるドローンのロゴをクリックするか、ユーザーアイコンの横の右上隅にあるメニューを使用して、ホームページのダッシュボードに戻ります。
これで、ダッシュボードの左側の列に新しいリポジトリがリストされます。 ビルドを実行していないため、ステータス情報はまだありません。
hello_hapiリポジトリ名をクリックして、リポジトリの詳細ビューを入力します。 設定を更新し、トークンやパスワードなどのシークレットを追加し、埋め込み可能なビルドステータスバッジを取得できるタブがいくつかあります。 デフォルトでは、Buildsタブが表示されており、ビルドはまだリストされていません。
ビルドをトリガーしましょう。
ドローンページを開いたままにして、別のタブまたはウィンドウでhello_hapiGitHubリポジトリに移動します。 ビルドをトリガーするために、プロジェクトにファイルを追加します。 どのファイルでもかまいません。 リポジトリのファイルリストの上部にあるCreate new fileボタンをクリックします。
任意のファイル名を選択します。 この場合、trigger-file
を選択しました。 コンテンツを入力してください:
次に、コンテンツエディタの一番下までスクロールし、Commit new fileボタンをクリックします。
コミット時に、GitHubはDroneインストールに変更を通知します。 その後、ドローンは新しいビルドを開始します。 Droneブラウザウィンドウに戻ります。 インターフェースはかなり速く更新されるはずで、回転する矢印はビルドが行われていることを示します。
ドローンに切り替えるのに少し時間がかかった場合、すでに終了している可能性があります。 次にビルドの詳細を見てみましょう。
CI / CD結果の表示
ビルドをクリックして詳細ビューに入ります。 ビルドがまだ進行中の場合は、各パイプラインステップをリアルタイムで観察できます。
各ビルドステップの開示矢印をクリックして、詳細を表示できます。 testステップの出力は次のとおりです。
ステップがまだ進行中の場合は、Followボタンをクリックすると、発生した出力が表示されます。
.drone.yml
ファイルで定義しなかったcloneステージがあることに注意してください。 これは常に存在し、ビルド前にドローンがソースコードを取得する方法の詳細を提供します。
結論
このチュートリアルでは、デモンストレーションリポジトリをフォークし、.drone.yml
構成ファイルを調べ、Droneを使用してリポジトリを構築およびテストしました。
プロジェクトをビルド、テスト、およびデプロイするためのDroneの構成の詳細については、Drone documentationを参照してください。