開発者ドキュメント

Ubuntu16.04でドローンと継続的インテグレーションパイプラインを設定する方法

序章

Drone は、Goで記述された継続的インテグレーションおよびデリバリープラットフォームです。 多くの一般的なバージョン管理サービスとの統合により、コードが更新されるたびにソフトウェアを自動的に構築、テスト、および配信するために使用できます。

このチュートリアルでは、GitHubリポジトリの例をフォークし、Droneを使用してプロジェクトをビルドおよびテストします。

前提条件

このチュートリアルを開始する前に、Droneをインストール、構成し、GitHubアカウントにリンクする必要があります。 次のチュートリアルでそこにたどり着きます。

完了すると、次のような画面でDroneにログインする必要があります。

これはドローンのダッシュボードです。 ログインしているが、ドローンにリポジトリが設定されていないことを示しています。 それでは、リポジトリを作成しましょう。

サンプルリポジトリのフォーク

まず、ビルドとテストを行うためのコードを含むGitHubリポジトリが必要です。 Droneはさまざまなバージョン管理リポジトリで使用できますが、前提条件として、DroneをGitHubアカウントにリンクしたため、このチュートリアル全体でこれを使用します。 GitHubにログインし、次のリポジトリに移動します。

https://github.com/do-community/hello_hapi

右上隅にあるフォークボタンをクリックして、このリポジトリを自分のアカウントにコピーします。 複数のGitHub組織にアクセスできる場合は、リポジトリをフォークする場所を選択するように求められることがあります。 通常のユーザーアカウントを選択します。 しばらくすると、アカウントにコピーされたhello_hapiリポジトリに移動します。

次に、コードをビルドしてテストするためにドローンを構成する方法を見ていきます。

.drone.ymlファイルを理解する

ドローンは、リポジトリ内で.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に指示してから、ビルドをトリガーします。

継続的インテグレーションの実行のトリガー

まだログインしていない場合は、ドローンにログインします。 ホームページは、設定するまでかなりまばらに見えます。 空のサイドバーにより、リポジトリをアクティブ化して開始するように求められます。

Activate リンクをクリックして、すべてのGitHubリポジトリのリストを表示します。

hello_hapi リポジトリを見つけ、右側の列の灰色のトグルをクリックしてアクティブにします。 トグルが反転して緑色に変わります。 舞台裏では、ドローンはGitHubのAPIを使用して、コードが変更されるたびに通知を確実に受信するようにします。

画面の左上隅にあるドローンのロゴをクリックするか、ユーザーアイコンの横にある右上隅のメニューを使用して、ホームページのダッシュボードに戻ります。

ダッシュボードの左側の列に新しいリポジトリが表示されます。 ビルドを実行していないため、ステータス情報はまだありません。

hello_hapi リポジトリ名をクリックして、リポジトリの詳細ビューを入力します。 設定を更新したり、トークンやパスワードなどのシークレットを追加したり、埋め込み可能なビルドステータスバッジを取得したりできるタブがいくつかあります。 デフォルトでは、ビルドタブが表示されており、ビルドはまだリストされていません。

今すぐビルドをトリガーしましょう。

ドローンページを開いたままにして、別のタブまたはウィンドウで hello_hapiGitHubリポジトリに移動します。 ビルドをトリガーするために、プロジェクトにファイルを追加します。 どんなファイルでもかまいません。 リポジトリのファイルリストの上部にある新しいファイルの作成ボタンをクリックします。

任意のファイル名を選択してください。 この場合、trigger-fileを選択しました。 任意のコンテンツを入力してください:

次に、コンテンツエディタの一番下までスクロールし、新しいファイルをコミットボタンをクリックします。

コミットすると、GitHubはドローンのインストールに変更を通知します。 その後、ドローンは新しいビルドを開始します。 ドローンブラウザウィンドウに戻ります。 インターフェイスはかなり迅速に更新されるはずであり、回転する矢印はビルドが行われていることを示します。

ドローンに戻るのに少し時間がかかった場合は、すでに終了している可能性があります。 次に、ビルドの詳細を見てみましょう。

CI/CD結果の表示

ビルドをクリックして、詳細ビューに入ります。 ビルドがまだ進行中の場合は、パイプラインの各ステップをリアルタイムで監視できます。

各ビルドステップの開示矢印をクリックすると、詳細が表示されます。 testステップの出力は次のとおりです。

ステップがまだ進行中の場合は、 Follow ボタンをクリックすると、発生した出力が表示されます。

.drone.ymlファイルで定義しなかったcloneステージがあることに注意してください。 これは常に存在し、ビルド前にドローンがソースコードを取得した方法の詳細を提供します。

結論

このチュートリアルでは、デモンストレーションリポジトリをフォークし、.drone.yml構成ファイルを調べ、Droneを使用してリポジトリを構築およびテストしました。

プロジェクトをビルド、テスト、およびデプロイするためのドローンの構成の詳細については、ドローンのドキュメントを参照してください。

モバイルバージョンを終了