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
のパイプラインを指定するには、共有パイプラインのリストから選択します。すべてのパイプライン名にプロジェクト名が含まれます。複数の共有パイプラインの名前が同じである場合は、プロジェクト名を使用して目的のパイプラインを選択できます。
パイプラインを削除または共有を停止する方法
共有パイプラインをネストされたタスクとして追加すると、そのパイプラインはネスト先のパイプラインによって参照されます。パイプラインを削除または共有を停止するには、参照しているすべてのパイプラインから参照を削除する必要があります。
たとえば、master-shared-pipeline-demo
に、ネストされたタスクとして Shared-Pipeline
が含まれている場合、Shared-Pipeline
は参照されています。Shared-Pipeline
は、master-shared-pipeline-demo
から解除するまで削除したり、共有を停止したりすることはできません。
次の手順では、パイプラインを削除または共有を停止できるように、パイプラインの参照を確認し、参照しているパイプラインから参照を削除する方法を示します。
- 参照を確認し、見つかった場合はパイプラインの参照を更新します。
- [パイプライン] をクリックします。確認する対象の共有パイプラインで、 の順にクリックします。
- 共有パイプラインを参照しているパイプラインを開き、ネストされたタスクを削除して、パイプラインを保存します。
- パイプラインを削除または共有を停止します。
- 削除するパイプラインで、 の順にクリックします。
- 共有を停止するパイプラインで、 の順にクリックします。