首页 > 解决方案 > Jenkins 将 Master 或 Tagged 分支部署到生产环境

问题描述

我一直在为我的公司做一个内部项目,在此期间我一直在学习 git 和 Jenkins。我有 2 个分支,开发和掌握。我将开发部署到开发服务器并进行测试,直到我满意为止。然后我合并开发以掌握并使用语义版本控制(v1.0.0)标记发布。

我的问题是,当我想将代码发布到生产服务器时,我应该部署标记分支(refs/tags/v1.0.0)还是主分支。是否有最佳实践或最佳实践的争论?

标签: gitjenkins

解决方案


根据持续交付实践,您需要遵循一次构建 - 到处部署规则:

  1. 在 CI 服务器上的构建步骤中,您将创建一个二进制文件。然后将其部署到测试所需的任何服务器上。
  2. 测试完所有内容后,您部署已测试的相同二进制文件。您不会从另一个具有另一个版本的分支创建另一个二进制文件。

否则,您测试的内容和发布到 PRD 的内容可能是不同的二进制文件。风险通常很小,但它是真实的。通常它来自于 CI 作业的不良配置(正确的配置实际上并不那么容易),但它也可能来自于管理依赖项的服务器(对于 Java,这些是 Nexus、Artifactory)或 CI 服务器上的升级。

所以你不应该从标签或主人创建一个新的构建。尽管您可以摆脱开发分支并直接在 master 中工作 - 这样您就可以从 master 中释放。如果需要,标记仍然是一种选择。


推荐阅读