假设我在本地构建代码,然后部署二进制文件。在这种情况下,我知道服务器上的二进制文件是从正确的源编译的。
所以可以说我在本地构建我的代码并且它可以工作,所以我将代码推送到源代码控制。CI 服务器检测到更改,检查源代码并成功重新编译并实时推送二进制文件。
所以这两个过程的开始和结束是一样的。但第二个有更多的错误空间。例如,我对源代码管理的提交可能有错误。我可能无法提交所有更改的文件,但源代码可能仍然可以编译。
如何确定源代码管理中的源代码与我在本地的源代码相同?
假设我在本地构建代码,然后部署二进制文件。在这种情况下,我知道服务器上的二进制文件是从正确的源编译的。
所以可以说我在本地构建我的代码并且它可以工作,所以我将代码推送到源代码控制。CI 服务器检测到更改,检查源代码并成功重新编译并实时推送二进制文件。
所以这两个过程的开始和结束是一样的。但第二个有更多的错误空间。例如,我对源代码管理的提交可能有错误。我可能无法提交所有更改的文件,但源代码可能仍然可以编译。
如何确定源代码管理中的源代码与我在本地的源代码相同?
第一件事是:如果你使用 CI 服务器,你永远不应该手动部署任何东西来测试、预览或生产服务器。
通常,我在 CI 服务器上有一个构建配置,其中包含许多步骤,例如:
通过所有步骤(您应该在步骤 3 中具有良好的代码覆盖率并在步骤 4 中具有良好的用户案例测试),您可以更有信心将步骤 7 生成的最终文件部署到生产服务器。