開発者は、GitHub リポジトリまたは GitLab Enterprise リポジトリからコードを継続的に統合する必要があります。開発者がコードを更新し、変更をリポジトリにコミットするたびに、 Code Stream はその変更を待機し、パイプラインをトリガできます。

コードのチェックインから Kubernetes クラスタに展開されるアプリケーションまでのワークフローでは、GitHub、Code Stream、Docker Hub、Git のトリガ、および Kubernetes を使用できます。

コードが変更されたら Code Stream がパイプラインをトリガするようにするには、Git トリガを使用します。これにより、コードに変更をコミットするたびに Code Stream がパイプラインをトリガします。

Code Stream パイプライン ワークスペースでは、継続的インテグレーション タスクとカスタム タスクで Docker と Kubernetes がサポートされます。

ワークスペースの構成に関する詳細については、パイプライン ワークスペースの構成を参照してください。

次のフローチャートは、スマート パイプライン テンプレートを使用してパイプラインを作成する場合、またはパイプラインを手動でビルドする場合に使用できるワークフローを示しています。

図 1. スマート パイプライン テンプレートを使用する、または手動でパイプラインを作成するワークフロー
ワークフローは、継続的インテグレーション パイプラインを使用してコードを継続的に統合するプロセスの進行を決定するのに役立ちます。

次の例では、Docker ワークスペースを使用します。

コードをビルドするには、Docker ホストを使用します。テスト フレームワーク ツールとして JUnit と JaCoCo を使用します。単体テストとコード カバレッジを実行するもので、どちらもパイプラインに含めます。

これにより、継続的インテグレーション スマート パイプライン テンプレートを使用して継続的インテグレーション パイプラインを作成できます。このパイプラインは、コードをビルドし、テストしてから、AWS 上にあるプロジェクト チームの Kubernetes クラスタに展開します。コード ビルドの時間を節約するために継続的インテグレーション タスクのコード依存関係アーティファクトを保存するには、キャッシュを使用します。

コードをビルドしてテストするパイプライン タスクには、複数の継続的インテグレーション手順を含めることができます。この継続的インテグレーション手順は、パイプラインがトリガされたときに Code Stream によってソース コードがクローン作成されるのと同じ作業ディレクトリに配置されます。

Kubernetes クラスタにコードを展開するために、パイプラインで Kubernetes タスクを使用できます。その後、パイプラインを有効にして実行します。次に、リポジトリのコードに変更を加え、パイプラインのトリガを監視します。パイプラインの実行後にパイプラインのトレンドを監視およびレポートするには、ダッシュボードを使用します。

次の例では、コードをパイプラインに継続的に統合する継続的インテグレーション パイプラインを作成するために、継続的インテグレーション スマート パイプライン テンプレートを使用します。この例では、Docker ワークスペースを使用します。

必要に応じて、パイプラインを手動で作成し、ステージとタスクを追加できます。継続的インテグレーション ビルドの計画とパイプラインの手動作成に関する詳細については、タスクの手動追加を行う前の Code Stream での CICD ネイティブ ビルドの計画を参照してください。

前提条件

  • 継続的インテグレーション ビルドを計画します。スマート パイプライン テンプレートの使用に先立つ Code Stream での継続的インテグレーション ネイティブ ビルドの計画を参照してください。
  • GitLab ソース コード リポジトリが配置されていることを確認します。ヘルプについては、 Code Stream 管理者に確認してください。
  • Git エンドポイントを追加します。例については、Code Stream で Git トリガを使用してパイプラインを実行する方法を参照してください。
  • Code Stream が GitHub リポジトリまたは GitLab リポジトリの変更を待機し、変更が発生したらパイプラインをトリガするようにするには、Webhook を追加します。例については、Code Stream で Git トリガを使用してパイプラインを実行する方法を参照してください。
  • Docker ホスト エンドポイントを追加します。継続的インテグレーション タスク用のコンテナを作成し、それを複数の継続的インテグレーション タスクで使用できるようにするためのものです。エンドポイントの詳細については、Code Stream でのエンドポイントとはを参照してください。
  • イメージ URL、ビルド ホスト、およびビルド イメージの URL を取得します。ヘルプについては、 Code Stream 管理者に確認してください。
  • テスト フレームワーク ツールに JUnit と JaCoCo を使用していることを確認します。
  • 継続的インテグレーション ビルド用に外部インスタンスを設定します。Jenkins、TFS、または Bamboo です。Kubernetes プラグインによってコードが展開されます。ヘルプについては、 Code Stream 管理者に確認してください。

手順

  1. 前提条件を満たします。
  2. スマート パイプライン テンプレートを使用してパイプラインを作成するために、継続的インテグレーション スマート パイプライン テンプレートを開き、フォームに入力します。
    1. [パイプライン] > [新しいパイプライン] > [スマート テンプレート] > [継続的インテグレーション] の順にクリックします。
    2. ソース コード リポジトリ、ビルド ツールセット、公開ツール、およびビルド イメージ ワークスペースに関するテンプレートの質問に回答します。
    3. チームの Slack 通知または E メール通知を追加します。
    4. スマート パイプライン テンプレートでパイプラインを作成するには、[作成] をクリックします。
    5. パイプラインをさらに変更するには、[編集] をクリックし、変更を加えてから、[保存] をクリックします。
    6. パイプラインを有効にして実行します。
  3. パイプラインを手動で作成するには、ステージとタスクをキャンバスに追加し、ネイティブの継続的インテグレーション ビルド情報を継続的インテグレーション タスクに含めます。
    1. [パイプライン] > [新しいパイプライン] > [空白のキャンバス] の順にクリックします。
    2. ステージをクリックし、ナビゲーション ペインからステージに継続的インテグレーション タスクをいくつかドラッグします。
    3. 継続的インテグレーション タスクを設定するには、そのタスクをクリックし、[タスク] タブをクリックします。
    4. コードを継続的に統合する手順を追加します。
    5. 依存関係アーティファクトへのパスを含めます。
    6. エクスポート先を追加します。
    7. 使用するテスト フレームワーク ツールを追加します。
    8. Docker ホストとビルド イメージを追加します。
    9. コンテナ レジストリ、作業ディレクトリ、およびキャッシュを追加します。
    10. パイプラインを保存して有効にします。
  4. GitHub リポジトリまたは GitLab リポジトリのコードに変更を加えます。
    Git をトリガしてパイプラインを有効にすると、実行が開始されます。
  5. コードの変更によってパイプラインがトリガされたかどうかを確認するには、[トリガ] > [Git] > [アクティビティ] の順にクリックします。
  6. パイプラインの実行状況を表示するには、[実行] をクリックします。ビルド イメージが作成されてエクスポートされたことを確認してください。
    パイプラインを実行すると、保持されたアーティファクトのパスと、エクスポートされたイメージの値が表示されます。
  7. パイプライン ダッシュボードを監視して KPI とトレンドを追跡するには、[ダッシュボード] > [パイプライン ダッシュボード] の順にクリックします。

結果

完了です。コードを GitHub リポジトリまたは GitLab リポジトリからパイプラインに継続的に統合し、ビルド イメージを展開するパイプラインが作成されました。

次のタスク

詳細については、Code Stream 管理者および開発者向けのその他のリソースを参照してください。