作为 Code Stream 管理员,您可以共享管道,以便组织内的用户可以在任何其他项目上运行这些管道,或者将这些管道添加为其他项目的管道中的嵌套任务。
为什么共享管道非常有用
共享管道时,无需为组织内的不同项目创建相同的管道。此外,如果您更新共享管道,所有管道用户都将具有相同的更新。
另外,还可以在 Service Broker 中使用共享管道。Service Broker 管理员可以将共享管道添加为目录项,供用户在多个项目上请求并运行。
只有 Code Stream 管理员才能共享或停止共享管道。
如何共享管道
要共享管道,请单击管道,然后选择要共享的管道。
- 单击
- 如果管道处于停用状态,则单击 。
- (可选) 要使共享管道在 Service Broker 中可用,请单击 。
发布管道后,Service Broker 管理员可以将其添加到 Service Broker。请参见将 Code Stream 管道添加到 Service Broker 目录。
如何运行共享管道
要运行共享管道,请选择管道并选择项目。
管道在您选择的项目上下文中运行,并且仅共享管道模型。不会共享管道中使用的任何基础架构,例如端点或变量。如果使用端点或变量的共享管道在其他项目上运行,则这些端点和变量必须在该项目上使用。
例如,假设 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 中的用户访问和批准。
如何将共享管道添加到其他管道
通过将共享管道用作其他管道中的嵌套任务,可以将管道功能扩展到一个项目中包含的管道之外。共享管道可以位于彼此不同的项目中,也可以位于与作为嵌套任务包含的管道不同的项目上。
以下示例展示了名为 master-shared-pipeline-demo
的管道,其包含两个嵌套管道任务。
要为 Task0
指定管道,请从共享管道列表中进行选择。每个管道名称都包含项目名称。如果多个共享管道具有相同的名称,您可以使用项目名称选择所需的项目名称。
如何使用共享管道进行回滚
要使用共享管道进行回滚,请在为任务配置回滚时从管道列表中选择该管道。 Code Stream 将筛选列表,仅显示同一项目上的管道或不同项目上的共享管道。
如何在管道中使用共享 VMware 云模板
可以使用共享 VMware 云模板作为管道中任务的云模板源。使用共享云模板可以访问比一个项目中包含的云模板更多的云模板。
在 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
中移除后,您才可以删除或停止共享 Shared-Pipeline。
或者,如果 TestRollback
使用 Shared-Pipeline
回滚任务,则引用 Shared-Pipeline
。在 TestRollback
中从回滚任务中移除 Shared-Pipeline
后,才可以删除或停止共享 Shared-Pipeline。
以下过程说明了如何在删除或停止共享管道之前检查管道的引用并将其从引用该管道的管道中移除。
- 检查引用,如果找到,则更新管道引用。
- 单击管道。在要检查的共享管道上,单击 。
- 记下任何引用管道的名称。
- 打开引用共享管道的管道。移除用作嵌套任务或用于回滚任务的共享管道,然后保存管道。
- 删除或停止共享管道。
- 在要删除的管道上,单击 。
- 在要停止共享的管道上,单击 。