夜间构建和持续集成有什么区别?仅仅是签入/构建/测试的频率吗?例如,如果每小时或每分钟运行一个夜间构建过程,它是否与 CI 没有区别?
这个问题相似但不完全相同:持续集成与夜间构建
夜间构建和持续集成有什么区别?仅仅是签入/构建/测试的频率吗?例如,如果每小时或每分钟运行一个夜间构建过程,它是否与 CI 没有区别?
这个问题相似但不完全相同:持续集成与夜间构建
持续集成专注于每次签入时构建(和运行测试)。每晚构建每天执行一次,并且可能较少强调测试。
在实践中,触发构建和运行测试的持续集成签入可能与开发人员全天进行的签入是分开的。例如,它们可能仅在签入主干时发生,而当天的大部分开发都签入到分支中。鼓励这些发生相对频繁,例如每天一次。
更频繁地构建会产生类似的结果,但可能会导致一些浪费的努力,即在没有任何变化的情况下运行测试。另一个可能的区别是,在持续集成中的每个构建都进行了大量的测试。有时需要开发人员干预来修复导致的错误。由于几个原因,这对于夜间构建过程会更加困难。包括更难将错误与一组特定的更改和责任方联系起来。
这可能取决于测试的数量和需要多长时间。如果一个完整的构建和完整的测试需要几分钟,你可以在每次推送到源代码后以持续集成的方式运行它。
就我而言,我们的夜间构建大约需要 2 个小时,构建所有源代码并运行所有测试。在日常构建中,我们只构建一些库并运行一些测试,这取决于分支和开发人员可能修改的内容。