Code Stream 管理者は、パイプラインを共有することができます。これによって組織内のユーザーは、そのパイプラインを他のプロジェクトで実行したり、別のプロジェクトのパイプライン内にネストされたタスクとして追加したりできます。

共有パイプラインが役に立つ理由

パイプラインを共有すると、組織内のさまざまなプロジェクトで同じパイプラインを作成する必要がなくなります。また、共有パイプラインを更新すると、同じ更新がすべてのパイプライン ユーザーに対して反映されます。

共有パイプラインは、Service Broker でも使用できます。Service Broker 管理者は、共有パイプラインをカタログ アイテムとして追加できます。ユーザーは、それを申請して複数のプロジェクトで実行することができます。

Code Stream 管理者のみが、パイプラインの共有または共有の停止を実行できます。

パイプラインを共有する方法

パイプラインを共有するには、[パイプライン] をクリックし、共有するパイプラインを選択します。

  1. [アクション] > [プロジェクト間で共有] の順にクリックします
  2. パイプラインが無効になっている場合は、[アクション] > [有効化] の順にクリックします。
  3. (オプション) 共有パイプラインを Service Broker で使用できるようにするには、[アクション] > [リリース] の順にクリックします。

    パイプラインをリリースすると、Service Broker 管理者はそのパイプラインを Service Broker に追加できます。Service Broker カタログへの Code Stream パイプラインの追加を参照してください。

共有パイプラインの実行方法

共有パイプラインを実行するには、パイプラインを選択してプロジェクトを選択します。

パイプラインは選択したプロジェクトのコンテキストで実行され、パイプライン モデルのみが共有されます。エンドポイントや変数など、パイプラインで使用されているインフラストラクチャは共有されません。エンドポイントや変数を使用する共有パイプラインを別のプロジェクトで実行するときは、それらのエンドポイントと変数がそのプロジェクトで使用可能である必要があります。

たとえば、jenkinsPipelineprojectA を使用しており、jenkinsEndpoint という名前のエンドポイントを持つタスクを含んでいる場合です。

共有パイプラインを実行する前に、別のプロジェクトでパイプラインを実行するために必要なコンテンツがパイプラインに含まれているかどうかを確認します。

jenkinsPipeline を共有して projectB のコンテキストで実行する場合は、projectBjenkinsEndpoint が必要です。jenkinsEndpoint がない場合は、共有パイプラインを実行する前に、projectB にエンドポイントを作成します。

次の手順では、別のプロジェクトにエンドポイントを複製する方法を示します。変数に対しても同様の手順を実行します。

  1. [エンドポイント] をクリックします。複製するエンドポイント(ここでは jenkinsEndpoint)で、[アクション] > [エクスポート] の順にクリックします。
  2. [インポート] ボタンをクリックし、jenkinsEndpoint の YAML ファイルを選択します。
  3. ファイルを編集して、プロジェクト(ここでは次のサンプル YAML コードの projectB)を変更します。
    ---
    project: projectB
    kind: ENDPOINT
    name: jenkinsEndpoint
    ...
  4. [インポート] をクリックします。

projectBjenkinsPipeline を実行するには、パイプライン カードで [実行] をクリックし、プロジェクトとして projectB を選択します。

注: projectB で共有パイプラインを実行するには、 Code Stream の管理者、開発者、または実行者ロールが必要です。 Code Stream の閲覧者またはユーザーは、 Code Stream 管理者によって projectB のプロジェクト管理者またはプロジェクト メンバーにされない限り、パイプラインを実行できません。 Code Stream でのロールの詳細については、 Code Stream でユーザー アクセスと承認を管理する方法を参照してください。

共有パイプラインを別のパイプラインに追加する方法

別のパイプライン内のネストされたタスクとして共有パイプラインを使用すると、1 つのプロジェクトに含まれたパイプラインを超えてパイプラインの機能を拡張できます。共有パイプラインは、互いに異なるプロジェクトに配置することも、ネストされたタスクとして含まれているパイプラインとは異なるプロジェクトに配置することもできます。

次の例は、2 つのネストされたパイプライン タスクを含む master-shared-pipeline-demo という名前のパイプラインを示しています。

ネストされた共有パイプラインを含むパイプラインを作成する場合は、共有パイプラインを選択します。同じ名前のパイプラインが 2 つある場合は、プロジェクト名を使用して目的のパイプラインを選択します。

Task0 のパイプラインを指定するには、共有パイプラインのリストから選択します。すべてのパイプライン名にプロジェクト名が含まれます。複数の共有パイプラインの名前が同じである場合は、プロジェクト名を使用して目的のパイプラインを選択できます。

注: ネストされたパイプラインを含むパイプラインを実行する場合、そのパイプラインは、ネストされたパイプラインで使用されているすべてのエンドポイントまたは変数にアクセスできる必要があります。アクセスできない場合は、パイプラインのプロジェクトにコンテンツを作成する必要があります。

パイプラインを削除または共有を停止する方法

共有パイプラインをネストされたタスクとして追加すると、そのパイプラインはネスト先のパイプラインによって参照されます。パイプラインを削除または共有を停止するには、参照しているすべてのパイプラインから参照を削除する必要があります。

たとえば、master-shared-pipeline-demo に、ネストされたタスクとして Shared-Pipeline が含まれている場合、Shared-Pipeline は参照されています。Shared-Pipeline は、master-shared-pipeline-demo から解除するまで削除したり、共有を停止したりすることはできません。

次の手順では、パイプラインを削除または共有を停止できるように、パイプラインの参照を確認し、参照しているパイプラインから参照を削除する方法を示します。

  1. 参照を確認し、見つかった場合はパイプラインの参照を更新します。
    1. [パイプライン] をクリックします。確認する対象の共有パイプラインで、[アクション] > [リファレンスの表示] の順にクリックします。
    2. 共有パイプラインを参照しているパイプラインを開き、ネストされたタスクを削除して、パイプラインを保存します。
  2. パイプラインを削除または共有を停止します。
    • 削除するパイプラインで、[アクション] > [削除] の順にクリックします。
    • 共有を停止するパイプラインで、[アクション] > [共有の停止] の順にクリックします。