要在 Code Stream 中创建持续集成和持续交付 (CICD) 管道,您可以手动添加阶段和任务。要规划 CICD 本地构建,您需要收集所需的信息,然后创建管道并手动向其添加阶段和任务。
您必须规划管道的持续集成 (CI) 阶段和持续交付 (CD) 阶段。创建管道并运行后,您可以在整个管道执行过程中监控趋势。
当管道包含 Docker Hub 中的映像时,在运行管道之前必须确保映像中已嵌入了 cURL 或 wget。当管道运行时, Code Stream 会下载使用 cURL 或 wget 运行命令的二进制文件。
Code Stream 管道工作区支持使用 Docker 和 Kubernetes 执行持续集成任务和自定义任务。
有关配置工作区的信息,请参见配置管道工作区。
规划外部和内部要求
要规划管道的 CI 和 CD 阶段,以下要求指明了在创建管道之前必须执行的操作。
此示例使用 Docker 工作区。
要基于此示例计划创建管道,您将使用 Docker 主机、Git 存储库、Maven 和多个后处理生成工具。
您需要的端点和存储库:
- Git 源代码存储库,开发人员将代码签入到该存储库中。开发人员提交更改时, Code Stream 会将最新代码提取到管道中。
- Docker 生成主机的 Docker 端点,该端点将在容器内运行生成命令。
- 生成器映像,该映像将创建持续集成测试在其中运行的容器。
- 映像注册表端点,以便 Docker 生成主机可以从该端点提取生成器映像。
您需要有权访问项目。项目会对所有工作(包括管道、端点和仪表板)进行分组。验证您是 Code Stream 中项目的成员。如果您不是其成员,则让 Code Stream 管理员将您添加为项目的成员。请参见如何在 Code Stream 中添加项目。
您将需要一个 Git Webhook,它允许 Code Stream 在开发人员提交代码更改时使用 Git 触发器来触发您的管道。请参见如何使用 Code Stream 中的 Git 触发器运行管道。
如何创建 CICD 管道和配置工作区
您需要创建管道,然后配置工作区、管道输入参数和任务。
要创建管道,您需要单击
。
在“工作区”选项卡上,输入持续集成信息:
- 包括 Docker 生成主机。
- 输入您的生成器映像的 URL。
- 选择映像注册表端点,以便管道可以从中提取映像。容器将运行 CI 任务并部署映像。如果注册表需要凭据,您必须先创建映像注册表端点,然后在此时选择该端点,以便主机可以从注册表中提取映像。
- 添加必须缓存的工件。对于后续内部版本,目录等工件将作为依赖项下载。缓存是这些工件所驻留的位置。例如,依赖工件可以包括 Maven 的
.m2
目录,以及 Node.js 的node_modules
目录。这些目录在各个管道执行过程中缓存,以便在生成期间节省时间。
在“输入”选项卡上,配置管道输入参数。
- 如果管道使用来自 Git、Gerrit 或 Docker 触发器事件的输入参数,请为自动插入参数选择触发器类型。事件可以包括 Gerrit 或 Git 的更改主题,或者 Docker 的事件所有者名称。如果管道不使用从事件传递的任何输入参数,则将自动插入参数设置为无。
- 要对管道输入参数应用值和描述,请单击三个垂直圆点,然后单击编辑。所输入的值将用作任务、阶段或通知的输入。
- 要添加管道输入参数,请单击添加。例如,可以添加 approvers 以显示每次执行的默认值,但可以在运行时替代为不同的审批者。
- 要添加或移除插入的参数,请单击添加/移除插入的参数。例如,移除未使用的参数以减少结果页面的混乱,并仅显示所使用的输入参数。
配置管道以测试代码:
- 添加和配置 CI 任务。
- 其中包含使用代码来运行
mvn test
的步骤。 - 为识别任务运行后出现的任何问题,请运行后处理构建工具,例如 JUnit、JaCoCo、FindBugs 和 Checkstyle。
配置管道以生成代码:
- 添加和配置 CI 任务。
- 包含使用代码运行
mvn clean install
的步骤。 - 包含位置和 JAR 文件名,并使其保留您的工件。
配置管道以将映像发布到 Docker 主机:
- 添加和配置 CI 任务。
- 添加提交、导出、生成和推送映像的步骤。
- 添加
IMAGE
的导出密钥以供下一个任务使用。
在配置工作区、输入参数、测试任务和生成任务后,保存您的管道。
如何启用和运行管道
为管道配置阶段和任务后,可以保存并启用管道。
然后,等待管道运行且完成,然后验证管道是否成功。如果失败,请更正任何错误并再次运行。
管道成功后,您可能想要确认以下事项:
- 检查管道执行情况并查看任务步骤的结果。
- 在管道执行的工作区中,找到有关容器和克隆 Git 存储库的详细信息。
- 在工作区中,查看后处理工具的结果,并检查错误、代码覆盖率、bug 和样式问题。
- 确认您的工件已保留。还要确认映像已使用 IMAGE 名称和值导出。
- 转到 Docker 存储库,并验证管道是否已发布您的容器。
有关显示 Code Stream 如何持续集成代码的详细示例,请参见如何持续将来自 GitHub 或 GitLab 存储库的代码集成到 Code Stream 中的管道。