Code Stream に継続的インテグレーションおよび継続的デリバリ (CICD) パイプラインを作成するには、手動でステージとタスクを追加します。CICD ネイティブ ビルドを計画するには、必要な情報を収集し、パイプラインを作成して、そのパイプラインにステージとタスクを手動で追加します。

パイプラインの継続的インテグレーション (CI) ステージと継続的デリバリ (CD) ステージの両方を計画する必要があります。パイプラインを作成して実行した後、その実行のトレンドを監視できます。

パイプラインの CI ステージと CD ステージを計画するには、パイプラインを作成する前にすべての要件が満たされていることを確認します。

外部および内部の要件の計画

この例の計画からパイプラインを作成するには、Docker ホスト、Git リポジトリ、Maven のほか、後処理ビルド ツールをいくつか使用します。

クラウドベースまたはリモートのオンプレミスのエンドポイントおよびリポジトリには以下が必要です。

  • 開発者がコードをチェックインする Git ソース コード リポジトリ。 Code Stream は、開発者が変更をコミットするときに、パイプラインに最新のコードを取得します。
  • コンテナ内でビルド コマンドを実行する Docker ビルド ホストの Docker エンドポイント。
  • Code Stream がイメージを Kubernetes クラスタに展開できるようにするための Kubernetes エンドポイント。
  • 連続統合テストで実行するコンテナを作成するビルダー イメージ。
  • Docker ビルド ホストからビルダー イメージを取得できるようにするためのイメージ レジストリ エンドポイント。

プロジェクトへのアクセス権が必要です。プロジェクトはパイプライン、エンドポイント、ダッシュボードなどすべての作業をグループ化します。 Code Stream で、プロジェクトのメンバーであることを確認します。メンバーでない場合は、プロジェクトにメンバーとして追加するように Code Stream 管理者に依頼します。VMware Code Streamでプロジェクトを追加する方法を参照してください。

Git Webhook が必要になります。これにより、開発者がコード変更をコミットするときに Code Stream が Git トリガを使用してパイプラインがトリガされるようにできます。Code Streamで Git トリガを使用してパイプラインを実行する方法を参照してください。

CICD パイプラインを作成してワークスペースを設定する方法

パイプラインを作成してから、ワークスペース、パイプライン入力パラメータ、およびタスクを設定する必要があります。

パイプラインを作成するには、[パイプライン] > [新しいパイプライン] > [空白のキャンバス] の順にクリックします。

空のキャンバスからパイプラインを作成。

[ワークスペース] タブで、継続的インテグレーション情報を入力します。

  • Docker ビルド ホストを含めます。
  • ビルダ イメージの URL を入力します。
  • イメージ レジストリ エンドポイントを選択して、そのエンドポイントからパイプラインがイメージをプルできるようにします。コンテナが CI タスクを実行し、イメージを展開します。レジストリに認証情報が必要な場合は、まずイメージ レジストリ エンドポイントを作成する必要があります。次に、ここでそれを選択して、そのレジストリからホストがイメージをプルできるようにします。
  • キャッシュする必要があるアーティファクトを追加します。ビルドが正常に完了した場合は、ディレクトリなどのアーティファクトが依存関係としてダウンロードされます。キャッシュは、このようなアーティファクトが配置される場所です。たとえば、依存関係のあるアーティファクトには、Maven の .m2 ディレクトリや、Node.js の node_modules ディレクトリなどがあります。これらのディレクトリは、パイプライン実行をまたがってキャッシュされるため、ビルドの時間が短縮します。

    パイプラインのワークスペースを設定する。

[入力] タブで、パイプラインの入力パラメータを設定します。

  • パイプラインが Git、Gerrit、または Docker トリガ イベントからの入力パラメータを使用する場合は、自動挿入パラメータのトリガ タイプを選択します。イベントには、Gerrit または Git のサブジェクトの変更、または Docker のイベント所有者名を含めることができます。パイプラインでイベントから渡された入力パラメータを使用しない場合は、自動挿入パラメータを [なし] に設定します。
  • パイプラインの入力パラメータに値と説明を適用するには、縦に並んだ 3 つのドットをクリックし、[編集] をクリックします。入力した値は、タスク、ステージ、通知への入力値として使用されます。
  • パイプラインの入力パラメータを追加するには、[追加] をクリックします。たとえば、各実行でデフォルト値を表示する approvers を追加できますが、ランタイムに別の承認者でオーバーライドする可能性があります。
  • 挿入されたパラメータを追加または削除するには、[挿入したパラメータの追加/削除] をクリックします。たとえば、使用されていないパラメータを削除して結果ページの不要な情報を減らし、使用されている入力パラメータのみを表示することができます。

    CICD パイプラインの [入力] タブを設定する。

パイプラインを設定してコードをテストします。

  • CI タスクを追加して設定します。
  • コードに mvn test を実行するための手順を含めます。
  • タスクの実行後、JUnit、JaCoCo、FindBugs、Checkstyle などの後処理ビルド ツールを実行して、問題がないことを確認します。

    パイプライン タスクを設定してコードをテストする。

パイプラインを設定してコードをビルドします。

  • CI タスクを追加して設定します。
  • コードに mvn clean install を実行するための手順を含めます。
  • アーティファクトを保持する JAR の場所とファイル名を含めます。

    パイプライン タスクを設定してコードをビルドする。

パイプラインを設定してイメージを Docker ホストに公開します。

  • CI タスクを追加して設定します。
  • イメージのコミット、エクスポート、ビルド、プッシュを行う手順を追加します。
  • 次のタスクで使用するために IMAGE のエクスポート キーを追加します。

    パイプライン タスクを設定してイメージを Docker ホストに公開する。

ワークスペース、入力パラメータ、テスト タスク、およびビルド タスクを設定したら、パイプラインを保存します。

パイプラインを有効にして実行する方法

ステージとタスクを使用してパイプラインを構成したら、パイプラインを保存して有効にすることができます。

次に、パイプラインが実行されて終了するまで待機して、正常に完了したことを確認します。正常に完了しなかった場合は、エラーを修正して再度実行します。

パイプラインが正常に完了したら、次の点を確認します。

  • パイプラインの実行状況を確認し、タスクの実行手順の結果を表示します。
  • パイプライン実行のワークスペースで、コンテナおよびクローン作成された Git リポジトリに関する詳細を見つけます。
  • ワークスペースで、後処理ツールの結果を確認し、エラー、コード カバレッジ、バグ、およびスタイルの問題がないか確認します。
  • アーティファクトが保持されていることを確認します。また、イメージがイメージ名と値を使用してエクスポートされたことを確認します。
  • Docker リポジトリに移動し、パイプラインがコンテナを公開していることを確認します。

Code Stream がコードを継続的にどのように統合するかを示す詳細な例については、コードを my GitHub または GitLab リポジトリから VMware Code Streamの自分のパイプラインに継続的に統合する方法を参照してください。