Code Stream 管理者は、パイプラインを共有することができます。これによって組織内のユーザーは、そのパイプラインを他のプロジェクトで実行したり、別のプロジェクトのパイプライン内にネストされたタスクとして追加したりできます。
共有パイプラインが役に立つ理由
パイプラインを共有すると、組織内のさまざまなプロジェクトで同じパイプラインを作成する必要がなくなります。また、共有パイプラインを更新すると、同じ更新がすべてのパイプライン ユーザーに対して反映されます。
共有パイプラインは、Service Broker でも使用できます。Service Broker 管理者は、共有パイプラインをカタログ アイテムとして追加できます。ユーザーは、それを申請して複数のプロジェクトで実行することができます。
Code Stream 管理者のみが、パイプラインの共有または共有の停止を実行できます。
パイプラインを共有する方法
パイプラインを共有するには、[パイプライン] をクリックし、共有するパイプラインを選択します。
- の順にクリックします
- パイプラインが無効になっている場合は、 の順にクリックします。
- (オプション) 共有パイプラインを Service Broker で使用できるようにするには、 の順にクリックします。
パイプラインをリリースすると、Service Broker 管理者はそのパイプラインを Service Broker に追加できます。Service Broker カタログへの Code Stream パイプラインの追加を参照してください。
共有パイプラインの実行方法
共有パイプラインを実行するには、パイプラインを選択してプロジェクトを選択します。
パイプラインは選択したプロジェクトのコンテキストで実行され、パイプライン モデルのみが共有されます。エンドポイントや変数など、パイプラインで使用されているインフラストラクチャは共有されません。エンドポイントや変数を使用する共有パイプラインを別のプロジェクトで実行するときは、それらのエンドポイントと変数がそのプロジェクトで使用可能である必要があります。
たとえば、jenkinsPipeline
が projectA
を使用しており、jenkinsEndpoint
という名前のエンドポイントを持つタスクを含んでいる場合です。
jenkinsPipeline
を共有して projectB
のコンテキストで実行する場合は、projectB
に jenkinsEndpoint
が必要です。jenkinsEndpoint
がない場合は、共有パイプラインを実行する前に、projectB
にエンドポイントを作成します。
次の手順では、別のプロジェクトにエンドポイントを複製する方法を示します。変数に対しても同様の手順を実行します。
- [エンドポイント] をクリックします。複製するエンドポイント(ここでは
jenkinsEndpoint
)で、 の順にクリックします。 - [インポート] ボタンをクリックし、
jenkinsEndpoint
の YAML ファイルを選択します。 - ファイルを編集して、プロジェクト(ここでは次のサンプル YAML コードの
projectB
)を変更します。--- project: projectB kind: ENDPOINT name: jenkinsEndpoint ...
- [インポート] をクリックします。
projectB
で jenkinsPipeline
を実行するには、パイプライン カードで [実行] をクリックし、プロジェクトとして projectB
を選択します。
projectB
で共有パイプラインを実行するには、
Code Stream の管理者、開発者、または実行者ロールが必要です。
Code Stream の閲覧者またはユーザーは、
Code Stream 管理者によって
projectB
のプロジェクト管理者またはプロジェクト メンバーにされない限り、パイプラインを実行できません。
Code Stream でのロールの詳細については、
Code Stream でユーザー アクセスと承認を管理する方法を参照してください。
共有パイプラインを別のパイプラインに追加する方法
別のパイプライン内のネストされたタスクとして共有パイプラインを使用すると、1 つのプロジェクトに含まれたパイプラインを超えてパイプラインの機能を拡張できます。共有パイプラインは、互いに異なるプロジェクトに配置することも、ネストされたタスクとして含まれているパイプラインとは異なるプロジェクトに配置することもできます。
次の例は、2 つのネストされたパイプライン タスクを含む master-shared-pipeline-demo
という名前のパイプラインを示しています。
Task0
のパイプラインを指定するには、共有パイプラインのリストから選択します。すべてのパイプライン名にプロジェクト名が含まれます。複数の共有パイプラインの名前が同じである場合は、プロジェクト名を使用して目的のパイプラインを選択できます。
ロールバックに共有パイプラインを使用する方法
ロールバックに共有パイプラインを使用するには、タスクのロールバックを構成するときにパイプラインのリストで共有パイプラインを選択します。 Code Stream によってリストがフィルタされ、同じプロジェクトのパイプラインのみが表示されるか、複数のプロジェクトにある共有パイプラインが表示されます。
パイプラインで共有 VMware クラウド テンプレートを使用する方法
共有 VMware クラウド テンプレートは、パイプライン内のタスクのクラウド テンプレート ソースとして使用できます。共有クラウド テンプレートを使用すると、1 つのプロジェクトに含まれているクラウド テンプレートよりも多くのクラウド テンプレートにアクセスできます。
Code Stream でタスクを定義する前に、クラウド テンプレートが Cloud Assembly で共有されていることと、その名前およびバージョンを把握していることを確認します。クラウド テンプレートが共有されている場合は、プロジェクト名の横にあるアイコンがクラウド テンプレートのリストに表示されます。
- [タスク タイプ] で [VMware クラウド テンプレート] を選択します。
- [アクション] で [展開の作成] または [展開の更新] を選択します。
- 展開を更新する場合は、展開名を選択します。
- [クラウド テンプレート ソース] で、[VMware クラウド テンプレート] を選択します。
- [クラウド テンプレート名] で、クラウド テンプレートのリストから選択するか、名前を入力します。クラウド テンプレートがリストに表示されない場合は、クラウド テンプレートがパイプラインとは異なるプロジェクト内にあり、 Code Stream には同じプロジェクト内にあるクラウド テンプレートのみが表示されています。
- [クラウド テンプレートのバージョン] に、クラウド テンプレートのバージョンを入力します。
次の例で、shared-bp
は Cloud Assembly で確認した共有 VMware クラウド テンプレートであり、これを使用しますが、選択項目としてリストされていないため、名前を入力します。
パイプラインを削除または共有を停止する方法
共有パイプラインをネストされたタスクとして追加する場合、またはタスクをロールバックする場合、このパイプラインは使用されているパイプラインによって参照されます。パイプラインを削除または共有を停止するには、参照しているすべてのパイプラインから参照を削除する必要があります。
たとえば、master-shared-pipeline-demo
に、ネストされたタスクとして Shared-Pipeline
が含まれている場合、Shared-Pipeline
は参照されています。Shared-Pipeline
は、master-shared-pipeline-demo
から解除するまで削除したり、共有を停止したりすることはできません。
TestRollback
が Shared-Pipeline
を使用してタスクをロールバックする場合は、Shared-Pipeline
が参照されます。Shared-Pipeline
は、TestRollback
でタスクに関するロールバックから解除するまで、削除したり、共有を停止したりすることはできません。
次の手順では、パイプラインを削除または共有を停止できるように、パイプラインの参照を確認し、参照しているパイプラインから参照を削除する方法を示します。
- 参照を確認し、見つかった場合はパイプラインの参照を更新します。
- [パイプライン] をクリックします。確認する対象の共有パイプラインで、 の順にクリックします。
- [参照されているパイプライン] の名前を書き留めます。
- 共有パイプラインを参照するパイプラインを開きます。ネストされたタスクとして使用されている共有パイプライン、またはタスクのロールバックに使用されている共有パイプラインを削除し、パイプラインを保存します。
- パイプラインを削除または共有を停止します。
- 削除するパイプラインで、 の順にクリックします。
- 共有を停止するパイプラインで、 の順にクリックします。