序章
Drone は、Goで記述された継続的インテグレーションおよびデリバリープラットフォームです。 多くの一般的なバージョン管理サービスとの統合により、コードが更新されるたびにソフトウェアを自動的に構築、テスト、および配信するために使用できます。
このチュートリアルでは、GitHubリポジトリの例をフォークし、Droneを使用してプロジェクトをビルドおよびテストします。
前提条件
このチュートリアルを開始する前に、Droneをインストール、構成し、GitHubアカウントにリンクする必要があります。 次のチュートリアルでそこにたどり着きます。
- Ubuntu 16.04にDockerをインストールして使用する方法:ステップ1およびステップ2を使用してDockerをインストールします。
- Ubuntu 16.04にDockerComposeをインストールする方法:ステップ1を使用してDockerComposeをインストールします
- Ubuntu 16.04にNginxをインストールする方法:ステップ1とステップ2を使用してサーバーにNginxをインストールします
- Ubuntu 16.04でLet’sEncryptを使用してNginxを保護する方法:SSL証明書を使用してNginxを保護する
- Ubuntu 16.04にドローンをインストールして構成する方法:ドローンをインストールしてGitHubアカウントにリンクします
完了すると、次のような画面でDroneにログインする必要があります。
これはドローンのダッシュボードです。 ログインしているが、ドローンにリポジトリが設定されていないことを示しています。 それでは、リポジトリを作成しましょう。
サンプルリポジトリのフォーク
まず、ビルドとテストを行うためのコードを含むGitHubリポジトリが必要です。 Droneはさまざまなバージョン管理リポジトリで使用できますが、前提条件として、DroneをGitHubアカウントにリンクしたため、このチュートリアル全体でこれを使用します。 GitHubにログインし、次のリポジトリに移動します。
https://github.com/do-community/hello_hapi
右上隅にあるフォークボタンをクリックして、このリポジトリを自分のアカウントにコピーします。 複数のGitHub組織にアクセスできる場合は、リポジトリをフォークする場所を選択するように求められることがあります。 通常のユーザーアカウントを選択します。 しばらくすると、アカウントにコピーされたhello_hapiリポジトリに移動します。
次に、コードをビルドしてテストするためにドローンを構成する方法を見ていきます。
.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
で構成できるオプションが他にもたくさんあります。これについては、ドローンのドキュメントを参照してください。 これらの機能の一部は次のとおりです。
- マトリックスビルド。ライブラリまたはランタイムの複数のバージョンに対してビルドおよびテストして、互換性を確認します
- 電子メールまたはメッセージングサービスを介した通知
- npm、コンテナレジストリ、または静的サイトホストへのビルド製品の公開
次に、リポジトリへの変更を監視するようにDroneに指示してから、ビルドをトリガーします。
継続的インテグレーションの実行のトリガー
まだログインしていない場合は、ドローンにログインします。 ホームページは、設定するまでかなりまばらに見えます。 空のサイドバーにより、リポジトリをアクティブ化して開始するように求められます。
Activate リンクをクリックして、すべてのGitHubリポジトリのリストを表示します。
hello_hapi リポジトリを見つけ、右側の列の灰色のトグルをクリックしてアクティブにします。 トグルが反転して緑色に変わります。 舞台裏では、ドローンはGitHubのAPIを使用して、コードが変更されるたびに通知を確実に受信するようにします。
画面の左上隅にあるドローンのロゴをクリックするか、ユーザーアイコンの横にある右上隅のメニューを使用して、ホームページのダッシュボードに戻ります。
ダッシュボードの左側の列に新しいリポジトリが表示されます。 ビルドを実行していないため、ステータス情報はまだありません。
hello_hapi リポジトリ名をクリックして、リポジトリの詳細ビューを入力します。 設定を更新したり、トークンやパスワードなどのシークレットを追加したり、埋め込み可能なビルドステータスバッジを取得したりできるタブがいくつかあります。 デフォルトでは、ビルドタブが表示されており、ビルドはまだリストされていません。
今すぐビルドをトリガーしましょう。
ドローンページを開いたままにして、別のタブまたはウィンドウで hello_hapiGitHubリポジトリに移動します。 ビルドをトリガーするために、プロジェクトにファイルを追加します。 どんなファイルでもかまいません。 リポジトリのファイルリストの上部にある新しいファイルの作成ボタンをクリックします。
任意のファイル名を選択してください。 この場合、trigger-file
を選択しました。 任意のコンテンツを入力してください:
次に、コンテンツエディタの一番下までスクロールし、新しいファイルをコミットボタンをクリックします。
コミットすると、GitHubはドローンのインストールに変更を通知します。 その後、ドローンは新しいビルドを開始します。 ドローンブラウザウィンドウに戻ります。 インターフェイスはかなり迅速に更新されるはずであり、回転する矢印はビルドが行われていることを示します。
ドローンに戻るのに少し時間がかかった場合は、すでに終了している可能性があります。 次に、ビルドの詳細を見てみましょう。
CI/CD結果の表示
ビルドをクリックして、詳細ビューに入ります。 ビルドがまだ進行中の場合は、パイプラインの各ステップをリアルタイムで監視できます。
各ビルドステップの開示矢印をクリックすると、詳細が表示されます。 testステップの出力は次のとおりです。
ステップがまだ進行中の場合は、 Follow ボタンをクリックすると、発生した出力が表示されます。
.drone.yml
ファイルで定義しなかったcloneステージがあることに注意してください。 これは常に存在し、ビルド前にドローンがソースコードを取得した方法の詳細を提供します。
結論
このチュートリアルでは、デモンストレーションリポジトリをフォークし、.drone.yml
構成ファイルを調べ、Droneを使用してリポジトリを構築およびテストしました。
プロジェクトをビルド、テスト、およびデプロイするためのドローンの構成の詳細については、ドローンのドキュメントを参照してください。