持续交付的原则
Principles of continuous delivery
如前所述here、
以下是持续交付的原则。
Every build is a potential release
Eliminate manual bottlenecks
Automate wherever possible
Have automated tests you can trust
在传统的构建过程中,没有使用持续交付的方法,我们出于多种原因在master分支中提交代码,主要是为了开发人员和测试人员之间的协作。
关于第一原则,每个提交如何成为潜在的发布?
这很简单 - 如果您创建了一个提交并将更改推送到 master,然后您 运行 一个构建并且您的自动化测试都成功执行,那么这个构建可以用作一个版本。
因此,该原则更多地与构建而不是提交相关,但是如果您已配置为为推送到 master 的每个更改启动构建(Automate wherever possible
原则),那么在这种情况下它是一个同义词。
持续交付是持续集成的延伸,参见How does continuous integration relate to continuous delivery / deployment?. And from the CI practices:
Every commit should build on an integration machine
所以是的,在 CI/CD 中每个提交都将被构建,如果满足所有 CD 标准(强调 潜力 !),提交是可交付的(或者可部署,如果 CD 中的 D
代表部署)。如果不是,则必须解决该问题。
可能存在例外情况,例如由于业务要求或资源限制,delivery/deployment 管道不会在每次成功的 CI 提交时触发。但这会使识别和修复回归变得复杂。
但是提交依赖于其他尚未提交的更改(如评论中所述)的更改与 CI/CD 方法不兼容。在这种情况下进行中的工作提交仍然可以使用 feature toggles/flags and/or branch-by-abstraction 技术,这些技术可以隐藏暂时不满足的依赖关系,以免导致回归。
如前所述here、
以下是持续交付的原则。
Every build is a potential release
Eliminate manual bottlenecks
Automate wherever possible
Have automated tests you can trust
在传统的构建过程中,没有使用持续交付的方法,我们出于多种原因在master分支中提交代码,主要是为了开发人员和测试人员之间的协作。
关于第一原则,每个提交如何成为潜在的发布?
这很简单 - 如果您创建了一个提交并将更改推送到 master,然后您 运行 一个构建并且您的自动化测试都成功执行,那么这个构建可以用作一个版本。
因此,该原则更多地与构建而不是提交相关,但是如果您已配置为为推送到 master 的每个更改启动构建(Automate wherever possible
原则),那么在这种情况下它是一个同义词。
持续交付是持续集成的延伸,参见How does continuous integration relate to continuous delivery / deployment?. And from the CI practices:
Every commit should build on an integration machine
所以是的,在 CI/CD 中每个提交都将被构建,如果满足所有 CD 标准(强调 潜力 !),提交是可交付的(或者可部署,如果 CD 中的 D
代表部署)。如果不是,则必须解决该问题。
可能存在例外情况,例如由于业务要求或资源限制,delivery/deployment 管道不会在每次成功的 CI 提交时触发。但这会使识别和修复回归变得复杂。
但是提交依赖于其他尚未提交的更改(如评论中所述)的更改与 CI/CD 方法不兼容。在这种情况下进行中的工作提交仍然可以使用 feature toggles/flags and/or branch-by-abstraction 技术,这些技术可以隐藏暂时不满足的依赖关系,以免导致回归。