持续交付 - 处理中间svn提交

时间:2013-10-21 13:41:59

标签: continuous-integration continuous-deployment continuous-delivery

假设正在进行部署管道。 SVN标记和开发版本正在发生变化。那时开发人员正在进行他的更改。因此,CI服务器有可能释放新生成的未经测试的生产更改或发生其他一些冲突。我该如何处理这种情况。在构建管道完成之前,是否需要锁定整个主干。还有其他工作吗?

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您可以采取以下步骤

  1. 提交后,构建服务器将检出当前主干(假设为修订版A),
  2. 执行构建,
  3. 执行一些测试,
  4. 如果测试成功则标记主干
  5. 并部署到生产阶段(仍然只有在测试成功的情况下)
  6. “疯狂”开发人员在步骤3和4之间提交,从而创建修订版B.现在您假设构建服务器将再次检出最新版本(将是版本B)。这种行为确实会造成一些麻烦。

    但是,构建服务器应该根据特定修订执行所有步骤,这在常见设置中不是问题。例如。詹金斯通常在工作开始时有一个退房步骤。如果最后有一个标记步骤,您通常不希望Jenkins盲目地标记当前主干(导致您描述的问题),而是标记在Jenkins工作区中检出的修订版。

    此外,请考虑在将任何内容自动部署到生产之前,至少应该有一些手动批准步骤。就我所见,这通常在持续交付的背景下提及。

    持续交付的关键是恕我直言,您只需按一下按钮即可随时部署当前版本的源代码。恕我直言,这并不意味着应该自动部署每个提交。