作为 Code Stream 管理员,您可以共享管道,以便组织内的用户可以在任何其他项目上运行这些管道,或者将这些管道添加为其他项目的管道中的嵌套任务。

为什么共享管道非常有用

共享管道时,无需为组织内的不同项目创建相同的管道。此外,如果您更新共享管道,所有管道用户都将具有相同的更新。

另外,还可以在 Service Broker 中使用共享管道。Service Broker 管理员可以将共享管道添加为目录项,供用户在多个项目上请求并运行。

只有 Code Stream 管理员才能共享或停止共享管道。

如何共享管道

要共享管道,请单击管道,然后选择要共享的管道。

  1. 单击操作 > 在项目之间共享
  2. 如果管道处于停用状态,则单击操作 > 启用
  3. (可选) 要使共享管道在 Service Broker 中可用,请单击操作 > 发布

    发布管道后,Service Broker 管理员可以将其添加到 Service Broker。请参见 Code Stream 管道添加到 Service Broker 目录

如何运行共享管道

要运行共享管道,请选择管道并选择项目。

管道在您选择的项目上下文中运行,并且仅共享管道模型。不会共享管道中使用的任何基础架构,例如端点或变量。如果使用端点或变量的共享管道在其他项目上运行,则这些端点和变量必须在该项目上使用。

例如,假设 jenkinsPipeline 使用 projectA 且包含一个端点名为 jenkinsEndpoint 的任务。

运行共享管道之前,检查管道是否包含在其他项目中运行管道所需的内容。

如果共享 jenkinsPipeline 并希望在 projectB 上下文中运行该管道,则 projectB 上必须具有 jenkinsEndpoint。如果没有 jenkinsEndpoint,请在运行共享管道之前在 projectB 上创建该端点。

以下过程说明了如何在其他项目上复制端点。对于变量,可以执行类似的步骤。

  1. 单击端点。在要复制的端点(例如 jenkinsEndpoint)上,单击操作 > 导出
  2. 单击导入按钮,然后选择 jenkinsEndpoint 的 YAML 文件。
  3. 编辑该文件以更改项目,例如,在以下示例 YAML 代码中更改为 projectB
    ---
    project: projectB
    kind: ENDPOINT
    name: jenkinsEndpoint
    ...
  4. 单击导入

要在 projectB 上运行 jenkinsPipeline,请单击管道卡视图上的运行,然后选择 projectB 作为项目。

注: 要在 projectB 中运行共享管道,您必须具有 Code Stream 管理员、开发人员或执行人员角色。如果您是 Code Stream 查看者或用户,则无法运行管道,除非 Code Stream 管理员将您指定为 projectB 的项目管理员或项目成员。有关 Code Stream 中角色的详细信息,请参见 如何管理 Code Stream 中的用户访问和批准

如何将共享管道添加到其他管道

通过将共享管道用作其他管道中的嵌套任务,可以将管道功能扩展到一个项目中包含的管道之外。共享管道可以位于彼此不同的项目中,也可以位于与作为嵌套任务包含的管道不同的项目上。

以下示例展示了名为 master-shared-pipeline-demo 的管道,其包含两个嵌套管道任务。

创建包含嵌套共享管道的管道时,选择共享管道,如果有两个具有相同名称的管道,则使用项目名称选择所需的管道。

要为 Task0 指定管道,请从共享管道列表中进行选择。每个管道名称都包含项目名称。如果多个共享管道具有相同的名称,您可以使用项目名称选择所需的项目名称。

注: 要运行包含嵌套管道的管道,管道必须能够访问嵌套管道中使用的任何端点或变量。如果无法访问,则必须在项目上为管道创建内容。

如何删除或停止共享管道

如果将共享管道添加为嵌套任务,则嵌套该管道的管道将对其进行引用。如果要删除或停止共享管道,必须将其从引用该管道的任何管道中移除。

例如,如果 master-shared-pipeline-demo 包含 Shared-Pipeline 作为嵌套任务,则会引用 Shared-Pipeline。将 Shared-Pipelinemaster-shared-pipeline-demo 中移除后,您才可以删除或停止共享 Shared-Pipeline。

以下过程说明了如何在删除或停止共享管道之前检查管道的引用并将其从引用该管道的管道中移除。

  1. 检查引用,如果找到,则更新管道引用。
    1. 单击管道。在要检查的共享管道上,单击操作 > 查看引用
    2. 打开引用共享管道的管道,移除嵌套任务,然后保存管道。
  2. 删除或停止共享管道。
    • 在要删除的管道上,单击操作 > 删除
    • 在要停止共享的管道上,单击操作 > 停止共享