パイプラインに特定のタスク タイプを追加することで、特定のアクションを実行するパイプラインを構成することができます。各タスク タイプは別のアプリケーションと統合され、パイプラインでアプリケーションを設計したとおりに提供できるようになります。

展開にアーティファクトをリポジトリから取得することが必要な場合、リモート スクリプトを実行する場合、またはパイプラインの実行にチーム メンバーからの承認が必要な場合など、いずれの場合であっても VMware Code Stream のタスク タイプで対応が可能です。

パイプラインでタスク タイプを使用する前に、対応するエンドポイントが使用可能であることを確認します。

表 1. 承認の取得または決定ポイントの設定
タスク タイプ 機能... 例と詳細
[ユーザー操作]

パイプラインの実行タイミングと、承認のための停止タイミングを制御する必須の承認を有効にします。

パイプラインを実行して結果を確認する方法を参照してください。また、Code Stream でユーザー アクセスと承認を管理する方法も参照してください。

[条件]

決定ポイントを追加します。決定ポイントでは、パイプラインの実行を継続するか、または停止するかが条件式に基づいて決定されます。条件が true の場合、パイプラインは後続のタスクを実行します。false の場合、パイプラインは停止します。

条件タスクで変数バインドを使用して、VMware Code Stream でパイプラインを実行または停止する方法を参照してください。

表 2. 継続的インテグレーションと展開の自動化
タスク タイプ 機能... 例と詳細
[クラウド テンプレート]

GitHub から自動クラウド テンプレートを展開してアプリケーションをプロビジョニングし、クラウド テンプレートの継続的インテグレーションおよび継続的デリバリ (CICD) を展開用に自動化します。

Code Stream の YAML クラウド テンプレートから展開するアプリケーションのリリースを自動化する方法を参照してください。
[CI]

レジストリ エンドポイントから Docker ビルド イメージを取得し、Kubernetes クラスタに展開することで、コードからパイプラインへの継続的インテグレーションを可能にします。

スマート パイプライン テンプレートを使用する前の Code Stream での CICD ネイティブ ビルドの計画を参照してください。

[カスタム]

VMware Code Stream を自分のビルド、テスト、展開ツールと統合します。

ビルド、テスト、展開用の独自のツールを Code Stream に統合する方法を参照してください。

[Kubernetes]

AWS 上の Kubernetes クラスタへのソフトウェア アプリケーションの展開を自動化します。

Kubernetes クラスタへの Code Stream のアプリケーションのリリースを自動化する方法を参照してください。

[パイプライン]

パイプラインをプライマリ パイプラインにネストします。パイプラインはネストされると、プライマリ パイプラインのタスクとして動作します。

ネストされたパイプラインには、プライマリ パイプラインの [タスク] タブでリンクをクリックして簡単に移動することができます。ネストされたパイプラインは、新しいブラウザ タブで開きます。

[実行] でネストされたパイプラインを検索するには、検索領域に nested と入力します。

表 3. 開発、テスト、展開アプリケーションの統合
タスク タイプ 機能... 例と詳細
[Bamboo]

展開の準備中にソフトウェアを継続的にビルド、テスト、および統合する Bamboo の継続的インテグレーション (CI) サーバと連携し、開発者が変更をコミットする際にコード ビルドをトリガします。Bamboo ビルドが生成するアーティファクトの場所を公開し、他のタスクでビルドと展開に使用するためにタスクでパラメータを出力できるようにします。

Bamboo サーバ エンドポイントに接続し、パイプラインから Bamboo ビルド プランを開始します。

[Jenkins]

ソース コードのビルドおよびテスト、テスト ケースの実行、カスタム スクリプトの使用が可能な Jenkins ジョブをトリガします。

Code Stream を Jenkins と統合する方法を参照してください。

[TFS]

パイプラインを Team Foundation Server に接続して、コードのビルドとテストを実行する構成済みのジョブを含むビルド プロジェクトの管理と呼び出しが可能になります。

VMware Code Stream は Team Foundation Server 2013 および 2015 をサポートしています。

[vRO]

vRealize Orchestrator で事前定義またはカスタム ワークフローを実行して、VMware Code Stream の機能を拡張します。

Code Stream を vRealize Orchestrator と統合する方法を参照してください。

表 4. API を使用した他のアプリケーションの統合
タスク タイプ 機能... 例と詳細
[REST]

VMware Code Stream を REST API を使用する他のアプリケーションと連携して、相互に連携可能なソフトウェア アプリケーションを継続的に開発および提供できるようにします。

REST API を使用して VMware Code Stream を他のアプリケーションと統合する方法を参照してください。

[ポーリング]

REST API を呼び出し、パイプライン タスクが終了基準を満たして完了するまでポーリングします。

REST API を使用して VMware Code Stream を他のアプリケーションと統合する方法を参照してください。

表 5. リモートおよびユーザー定義のスクリプトの実行
タスク タイプ 機能... 例と詳細
[PowerShell]

PowerShell スクリプト タスク タイプがリモート ホストでスクリプト コマンドを実行できるようにします。たとえば、スクリプトで、テスト タスクを自動化したり、管理タイプのコマンドを実行したりできます。

スクリプトは、リモートとユーザー定義のいずれも可能です。HTTP または HTTPS を介した接続や、TLS の使用も可能です。

Windows ホストに winrm という名前のサービスが構成されている必要があります。また、winrmMaxShellsPerUser および MaxMemoryPerShellMB に応じて構成されている必要があります。

PowerShell タスクを実行するには、リモート Windows ホストへのアクティブなセッションが必要です。

[PowerShell コマン ドラインの長さ]

base64 PowerShell コマンドを入力する場合は、コマンド全体の長さを計算する必要があることに注意してください。

Code Stream パイプラインは base64 PowerShell コマンドをエンコードして、別のコマンド内にラッピングするため、コマンドの全体の長さが増加します。

PowerShell winrm コマンドで許可される最大長は 8192 バイトです。PowerShell タスクがエンコードおよびラッピングされている場合は、コマンド長の上限が低くなります。したがって、PowerShell コマンドを入力する前に、コマンド長を計算する必要があります。

Code Stream PowerShell タスクのコマンド長の上限は、元のコマンドを base64 でエンコードした後の長さによって決まります。コマンド長は次のように計算されます。

3 * (length of original command / 4)) - (numberOfPaddingCharacters) + 77 (Length of Write-output command)

Code Stream のコマンド長は、上限の 8192 よりも小さくする必要があります。

MaxShellsPerUserMaxMemoryPerShellMB を設定する場合:

  • MaxShellsPerUser の許容値は、各パイプラインには 5 個の PowerShell タスクがある 50 個の同時実行パイプラインには 500 です。値を設定するには、次を実行します:winrm set winrm/config/winrs '@{MaxShellsPerUser="500"}'
  • MaxMemoryPerShellMB の許容可能なメモリ値は 2048 です。値を設定するには、次を実行します:winrm set winrm/config/winrs '@{MaxMemoryPerShellMB="2048"}'

このスクリプトは、別のパイプラインが使用できる応答ファイルに出力を書き込みます。

[SSH]

Bash シェル スクリプト タスク タイプがリモート ホストでスクリプト コマンドを実行できるようにします。たとえば、スクリプトで、テスト タスクを自動化したり、管理タイプのコマンドを実行したりできます。

スクリプトは、リモートとユーザー定義のいずれも可能です。HTTP または HTTPS を介した接続が可能で、プライベート キーまたはパスワードが必要です。

Linux ホスト上で SSH サービスが構成されている必要があります。また、MaxSessions の SSHD 設定は 50 にする必要があります。

スクリプトは、リモートとユーザー定義のいずれも可能です。たとえば、スクリプトは次のようになります。

message="Hello World" echo $message

このスクリプトは、別のパイプラインが使用できる応答ファイルに出力を書き込みます。