添加非生产管道 configuring-non-production-pipelines
在Cloud Manager UI中设置项目并创建至少一个环境后,您可以添加非生产管道。 这些管道允许您在部署到生产环境之前测试代码质量。
用户必须具有 部署管理员 角色才能配置非生产管道。
添加新的非生产管道 adding-non-production-pipeline
设置项目并在Cloud Manager UI中创建至少一个环境后,可添加非生产管道。 在部署到生产环境之前,使用这些管道测试代码质量。
要添加新的非生产管道:
-
在 experiece.adobe.com 登录 Cloud Manager。
-
在 快速访问 部分,单击 Experience Manager。
-
在左侧面板中点击 Cloud Manager。
-
选择所需的组织。
-
在 我的程序 控制台上,单击一个程序。
-
在左侧面板中,单击管道。
-
在 管道 页面的右上角附近,单击添加管道 > 添加非生产管道。
-
在 添加非生产管道 对话框的 配置 选项卡上,选择要创建的以下非生产管道之一:
- 代码质量管道 — 创建管道,以便在GIT分支上生成代码、运行单元测试和评估代码质量,而无需部署到环境。
- 部署管道 — 创建一个管道,用于生成代码、运行单元测试、评估代码质量并部署到非生产环境。
-
在 管道配置 部分的 非生产管道名称 字段中,键入非生产管道的描述。
-
在 部署选项 部分下,选择要使用的以下部署触发器之一:
- 手动 - 您可以手动启动管道。
- 在 Git 发生更改时 – 只要将承诺添加到配置的 Git 分支就会启动管道。 利用此选项,您仍能根据需要手动启动管道。
-
选择要使用的重要量度失败行为。
- 每次询问 – 此行为是默认设置,需要对任何重要失败进行手动干预。
- 立即失败 – 如果选定此选项,则只要发生重要失败,就会取消管道。它实际上模拟用户手动拒绝每个失败。
- 立即继续 – 如果选定此选项,则每当发生重要失败时,管道就会自动继续。它实际上模拟用户手动批准每个失败。
-
单击继续。
-
用于完成非生产管道配置的剩余步骤取决于您选择使用的源代码类型。
在 添加非生产管道 对话框的 Source代码 选项卡上,选择非生产管道应处理的代码类型。有关管道类型的更多信息,请参阅CI/CD管道。
我正在使用全栈代码 full-stack-code
全栈代码管道同时部署后端和前端代码构建,其中包含一个或多个AEM服务器应用程序以及HTTPD/Dispatcher配置。
要完成全栈代码非生产管道的配置,请执行以下操作:
-
在 Source代码 部分中,定义以下选项。
-
符合条件的部署环境 — 仅在编辑非生产管道时可用。 如果您的管道是部署管道,则必须选择它应该部署到哪些环境。
-
存储库 — 从下拉列表中选择管道用作其源的Git存储库。 Cloud Manager从您在此处选择的存储库中生成代码。
note tip TIP 请参阅添加和管理存储库,了解如何在 Cloud Manager 中添加和管理存储库。 -
Git分支 — 从下拉列表中,选择管道应从中构建到的所选存储库中的哪个分支。 默认为
main。 管道使用所选分支作为构建和部署的源。 如有必要,请单击 刷新 以更新所选存储库的可用分支列表。 如果最近创建的分支未出现在列表中,请使用此选项。 -
生成策略
-
完整生成 — 每次生成存储库中的所有模块
-
Beta 智能生成 — 仅生成自上次提交以来更改的模块。
了解有关在非生产管道中使用Smart Build的更多信息。note important IMPORTANT 智能生成仅适用于代码质量管道和开发全栈代码部署管道。
-
-
忽略Web层配置复选框 — 选中后,管道不会部署您的Web层配置。
-
-
在 管道 部分中,如果您的管道是部署管道,则可以选择运行测试阶段。 检查要在此阶段启用的选项。如果没有选择任何选项,则管道运行期间将不会显示测试阶段。
-
单击“保存”。
管道已保存,您现在可以[管理您的管道](managing-pipe
lines.md),它位于 项目概述 页面的 管道 卡上。
我正在使用目标部署 targeted-deployment
目标部署仅会为AEM应用程序的选定部分部署代码。 在此类部署中,您可以选择 包含 以下代码类型之一:
-
前端代码 — 为AEM应用程序的前端配置JavaScript和CSS。
- 有了前端管道,前端开发人员可以获得更多的独立性,可加快开发过程。
- 请参阅文档使用前端管道开发站点,了解此流程的工作方式以及一些需要注意的事项,以便充分发挥此流程的潜力。
-
Web层配置 — 配置Dispatcher属性,以存储、处理网页并将网页交付给客户端。
-
有关更多详细信息,请参阅文档CI/CD管道。
-
如果所选环境存在 Web 层代码管道,则会禁用此选择。
-
如果全栈管道已部署到环境,您仍然可以为该同一环境创建Web层配置管道。 执行此操作时,Cloud Manager会忽略全栈管道中的Web层配置。
note note NOTE 专用存储库不支持 Web 层和配置管道。有关详细信息和完整的限制列表,请参阅在Cloud Manager中添加专用存储库。
-
-
在 Source代码 部分下,定义以下选项:
-
存储库 — 此选项定义非生产管道应从中检索代码的GIT存储库。
note tip TIP 请参阅添加和管理存储库,了解如何在 Cloud Manager 中添加和管理存储库。 -
Git分支 — 此选项定义所选管道中应从中检索代码的分支。 输入分支名称的前几个字符,以及此字段的自动完成功能。它会找到您可以选择的匹配分支。
-
代码位置 – 此选项定义管道应从中检索代码的所选存储库分支中的路径。
-
-
如果启用了体验审核,请单击 继续 前进到 体验审核 选项卡,您可以在其中定义应始终包含在体验审核中的路径。
- 如果您启用了体验审核,请参阅体验审核文档,以了解有关如何配置的详细信息。
- 如果未配置,请跳过此步骤。
-
单击保存,以保存管道。
管道已保存,您现在可以在程序概述页面的 管道 信息卡上管理您的管道。
关于在非生产管道中使用Smart Build about-smart-build
Cloud Manager中的 智能生成 是适用于非生产管道的优化生成策略。 Smart Build通过缓存模块并仅重新生成自上次成功运行以来发生更改的模块来缩短构建时间。 未更改的模块从缓存中重用,而只重新构建已修改的模块及其依赖关系,从而提高迭代开发工作流的效率。
Smart Build当前仅适用于以下项目:
- 代码质量管道。
- 开发全栈部署管道。
在出现以下情况时,建议使用Smart Build:
- 您正在积极开发和提交频繁的增量更改。
- 您的项目包含多个Maven模块。
- 完整内部版本需要大量时间。
当出现以下情况时,Smart Build并不总是理想的:
- 您的内部版本严重依赖在Maven的依赖关系图之外执行操作的插件。
- 每次执行都需要完全重新生成验证。
了解构建性能 smart-build-performance
使用Smart Build的性能提升取决于以下几个因素:
- 项目中的模块数。
- 代码更改的频率和范围。
- 依赖项在各个模块之间的分布。
通常,具有多个独立模块的项目可以看到最大的改进。
每模块缓存选择退出 smart-build-cache-optout
Smart Build提供细粒度控制,允许您禁用特定模块的缓存。 此功能在以下情况下很有用:
- 使用插件,如
exec-maven-plugin或maven-antrun-plugin。 - 执行Maven依赖项未跟踪的文件操作。
- 缓存的内容产生不一致的结果。
禁用模块的缓存 smart-build-disable-caching
您可以将以下属性添加到受影响模块的pom.xml:
<properties>
<maven.build.cache.enabled>false</maven.build.cache.enabled>
</properties>
此语法强制模块在每次管道执行时重新生成,而其他模块继续受益于缓存。
使用智能构建时的限制和注意事项 smart-build-limitations
使用Smart Build时,请牢记以下几点:
- Smart Build依赖于Maven依赖关系分析。
- 在依赖关系图之外进行的更改可能不会触发重新生成。
- 某些插件可能与缓存不完全兼容。
- 您可以通过编辑非生产管道随时切换回完整内部版本。
如果遇到意外的生成行为,请考虑禁用特定模块的缓存或暂时将生成策略切换到完整生成。
智能生成问题疑难解答 smart-build-troubleshoot
·验证插件的行为(尤其是
exec/antrun插件)。·检查大多数模块是否频繁更改。
·使用 Full Build 进行验证。
请参阅添加非生产管道以启用智能生成。
排除Dispatcher包 exclude-dispatcher-packages
如果您希望在管道中构建Dispatcher包,但未将其上传以构建存储,请禁用发布。 这样做可以缩短管道的运行时间。
将以下配置添加到项目pom.xml文件以禁用发布Dispatcher包。 在Cloud Manager构建容器中设置一个环境变量,以标记何时忽略Dispatcher包。 管道读取此标记并相应地忽略它们。
<profile>
<id>only-include-dispatcher-when-it-isnt-ignored</id>
<activation>
<property>
<name>env.IGNORE_DISPATCHER_PACKAGES</name>
<value>!true</value>
</property>
</activation>
<modules>
<module>dispatcher</module>
</modules>
</profile>