序章

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

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

前提条件

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

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

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

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

まず、ビルドとテストを行うためのコードを含む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イメージを使用してテストスイートを実行します。 多くの場合、両方を実行します buildtest コマンドを1つのステップで実行しますが、パイプラインをより適切に示すためにコマンドを分割しました。

パイプラインのステップはすべて同じワークスペースを共有するため、最初のステップで作成されたファイルは後のステップで使用できることに注意してください。 ドローンには、構成できるオプションがさらにたくさんあります .drone.ymlドローンのドキュメントで読むことができます。 これらの機能の一部は次のとおりです。

  • マトリックスビルド。ライブラリまたはランタイムの複数のバージョンに対してビルドおよびテストして、互換性を確認します
  • 電子メールまたはメッセージングサービスを介した通知
  • npm、コンテナレジストリ、または静的サイトホストへのビルド製品の公開

次に、リポジトリへの変更を監視するようにDroneに指示してから、ビルドをトリガーします。

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

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

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

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

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

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

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

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

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

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

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

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

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

CI/CD結果の表示

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

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

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

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

結論

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

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