可以将管道配置为通过向其添加特定的任务类型来执行特定的操作。每个任务类型均与另一个应用程序相集成,以使您的管道能够完成设计交付目标。

无论是需要从存储库中提取工件以进行部署,运行远程脚本,还是需要获得团队成员的批准才能运行管道,VMware Code Stream 都具有相应的任务类型供您选择!

在管道中使用任务类型之前,请确认相应的端点可用。

表 1. 获取批准或设置决策点
任务类型... 作用... 示例和详细信息...
用户操作

启用所需的批准,以控制何时运行管道以及何时必须等待批准。

请参见如何运行管道和查看结果。和如何管理 Code Stream 中的用户访问和批准

条件

添加决策点,根据条件表达式确定继续运行或停止管道。条件为 true 时,管道将运行连续任务。条件为 false 时,管道将停止。

请参见如何在条件任务中使用变量绑定来运行或停止 VMware Code Stream 中的管道

表 2. 自动执行持续集成和部署
任务类型... 作用... 示例和详细信息...
云模板

从 GitHub 部署自动化云模板,置备应用程序,并为您的部署自动执行该云模板的持续集成和持续交付 (CICD)。

请参见如何自动执行从 Code Stream 中的 YAML 云模板部署的应用程序的发布
CI

通过从注册表端点中提取 Docker 生成映像并将其部署到 Kubernetes 集群,将代码持续集成到管道中。

请参见在使用智能管道模板之前在 Code Stream 中计划 CICD 本机构建

自定义

VMware Code Stream 与您自己的生成工具、测试工具和部署工具集成。

请参见如何将自己的生成工具、测试工具和部署工具与 Code Stream 集成

Kubernetes

自动将软件应用程序部署到 AWS 上的 Kubernetes 集群。

请参见如何自动执行 Code Stream 中应用程序到 Kubernetes 集群的发布

管道

将管道嵌套在主管道中。嵌套管道时,该管道将作为主管道中的任务。

在主管道的“任务”选项卡上,可以通过单击嵌套管道的链接轻松导航到该管道。将在新的浏览器选项卡中打开嵌套管道。

要在执行中查找嵌套管道,请在搜索区域中输入 nested

表 3. 集成开发、测试和部署应用程序
任务类型... 作用... 示例和详细信息...
Bamboo

与 Bamboo 持续集成 (CI) 服务器交互,该服务器持续生成、测试和集成软件,为部署做好准备,并在开发人员提交更改时触发代码生成。它会公开 Bamboo 生成的工件位置,以便任务可以输出用于生成和部署的其他任务的参数。

连接到 Bamboo 服务器端点并从管道启动 Bamboo 生成计划。

Jenkins

触发生成和测试源代码的 Jenkins 作业,运行测试用例,并且可以使用自定义脚本。

请参见如何将 Code Stream 与 Jenkins 集成

TFS

支持将管道连接到 Team Foundation Server,以便管理和调用生成项目,包括可生成和测试代码的已配置作业。

VMware Code Stream 支持 Team Foundation Server 2013 和 2015。

vRO

通过在 vRealize Orchestrator 中运行预定义工作流或自定义工作流来扩展 VMware Code Stream 的功能。

请参见如何将 Code Stream 与 vRealize Orchestrator 集成

表 4. 通过 API 集成其他应用程序
任务类型... 作用... 示例和详细信息...
REST

VMware Code Stream 与其他使用 REST API 的应用程序集成,以便您能够持续开发和交付相互交互的软件应用程序。

请参见如何使用 REST API 将 VMware Code Stream 与其他应用程序集成

Poll

调用 REST API,并对其进行轮询,直到管道任务满足退出条件并完成为止。

请参见如何使用 REST API 将 VMware Code Stream 与其他应用程序集成

表 5. 运行远程脚本和用户定义的脚本
任务类型... 作用... 示例和详细信息...
PowerShell

允许 PowerShell 脚本任务类型在远程主机上运行脚本命令。例如,脚本可以自动执行测试任务,并运行管理类型的命令。

脚本可以是远程脚本,也可以是用户定义的脚本。它可以通过 HTTP 或 HTTPs 进行连接,并且可以使用 TLS。

必须在 Windows 主机上配置名为 winrm 的服务,并且必须为 MaxShellsPerUserMaxMemoryPerShellMB 配置 winrm

要运行 PowerShell 任务,您必须具有与远程 Windows 主机的活动会话。

PowerShell 命令行长度

如果输入 base64 PowerShell 命令,请注意必须计算整个命令长度。

Code Stream 管道对 base64 PowerShell 命令进行编码并包装到另一个命令中,这会增加命令的总长度。

PowerShell winrm 命令允许的最大长度为 8192 字节。对 PowerShell 任务进行编码和包装时,命令长度限制较低。因此,必须在输入 PowerShell 命令之前先计算命令长度。

Code Stream PowerShell 任务的命令长度限制取决于原始命令的 base64 编码长度。命令长度的计算方法如下。

3 * (length of original command / 4)) - (numberOfPaddingCharacters) + 77 (Length of Write-output command)

Code Stream 的命令长度必须小于最大限制 (8192)。

配置 MaxShellsPerUserMaxMemoryPerShellMB 时:

  • MaxShellsPerUser 的可接受值为 500(50 个并发管道),每个管道 5 个 PowerShell 任务。要设置值,请运行:winrm set winrm/config/winrs '@{MaxShellsPerUser="500"}'
  • MaxMemoryPerShellMB 的可接受内存值为 2048。要设置值,请运行:winrm set winrm/config/winrs '@{MaxMemoryPerShellMB="2048"}'

脚本会将输出写入到其他管道可以使用的响应文件中。

SSH

允许 Bash Shell 脚本任务类型在远程主机上运行脚本命令。例如,脚本可以自动执行测试任务,并运行管理类型的命令。

脚本可以是远程脚本,也可以是用户定义的脚本。可以通过 HTTP 或 HTTPs 进行连接,并且需要私钥或密码。

必须在 Linux 主机上配置 SSH 服务,并且 MaxSessions 的 SSHD 配置必须设置为 50

脚本可以是远程脚本,也可以是用户定义的脚本。例如,脚本可能会如下所示:

message="Hello World" echo $message

脚本会将输出写入到其他管道可以使用的响应文件中。