作为 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 指定管道,请从共享管道列表中进行选择。每个管道名称都包含项目名称。如果多个共享管道具有相同的名称,您可以使用项目名称选择所需的项目名称。

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

如何使用共享管道进行回滚

要使用共享管道进行回滚,请在为任务配置回滚时从管道列表中选择该管道。Code Stream 将筛选列表,仅显示同一项目上的管道或不同项目上的共享管道。

添加共享管道用于回滚时,选择共享管道,如果有两个具有相同名称的管道,则使用项目名称选择所需的管道。

如何在管道中使用共享 VMware 云模板

可以使用共享 VMware 云模板作为管道中任务的云模板源。使用共享云模板可以访问比一个项目中包含的云模板更多的云模板。

Code Stream 中定义任务之前,请在 Cloud Assembly 中确认云模板已共享,并且您知道名称和版本。云模板共享时,在云模板列表中,项目名称旁边会显示一个图标。

在管道中将共享云模板添加为源之前,请在 Cloud Assembly 中确认 VMware 云模板已共享。

要在共享管道中使用 VMware 云模板,请执行以下操作:
  • 对于“任务类型”,选择 VMware 云模板
  • 对于“操作”,选择创建部署更新部署
  • 如果要更新部署,请选择部署名称。
  • 对于“云模板源”,选择 VMware 云模板
  • 对于“云模板名称”,可以从云模板列表中进行选择,也可以键入名称。如果未列出云模板,这是因为云模板与管道位于不同的项目中,而 Code Stream 仅列出同一项目中的云模板。
  • 对于“云模板版本”,键入云模板的版本。

在以下示例中,shared-bp 是在 Cloud Assembly 中验证并希望使用的共享 VMware 云模板,但未作为选择项列出,因此您键入名称。

使用共享云模板定义任务时,在 Cloud Assembly 中确认云模板已共享,然后在 Code Stream 中输入名称和版本。
注: 如果指定的 VMware 云模板未共享,则尝试在不同项目上的管道中使用该云模板时,此管道将无法运行,并显示一条消息,指示选定的云模板未共享。

如何删除或停止共享管道

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

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

或者,如果 TestRollback 使用 Shared-Pipeline 回滚任务,则引用 Shared-Pipeline。在 TestRollback 中从回滚任务中移除 Shared-Pipeline 后,才可以删除或停止共享 Shared-Pipeline。

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

  1. 检查引用,如果找到,则更新管道引用。
    1. 单击管道。在要检查的共享管道上,单击操作 > 查看引用
    2. 记下任何引用管道的名称。移除共享管道之前,检查该管道是否用作其他管道的嵌套管道或用于回滚。
    3. 打开引用共享管道的管道。移除用作嵌套任务或用于回滚任务的共享管道,然后保存管道。
  2. 删除或停止共享管道。
    • 在要删除的管道上,单击操作 > 删除
    • 在要停止共享的管道上,单击操作 > 停止共享