Git VSTS:在生成过期的情况下,自动重新设置生成验证门的基础/合并和重新设置

Git VSTS:在生成过期的情况下,自动重新设置生成验证门的基础/合并和重新设置,git,azure-devops,azure-pipelines,azure-pipelines-build-task,Git,Azure Devops,Azure Pipelines,Azure Pipelines Build Task,我们最近对PRs上的构建验证门进行了更改,这样,如果在当前PR完成之前另一次提交进入主分支,那么构建将“立即”过期。看 尽管此更改确保了主控系统始终是准确的/可构建的/健康的,但这似乎对开发人员的生产力没有什么负面影响: 团队成员必须持续关注他们的PRs,以重新获得构建验证 他们不仅必须手动重新对构建进行排队,而且在此之前,他们还必须在重新排队之前手动重新确定分支的基础 随着我们向更小型/可交付的master签入的方向发展,这种情况发生的次数预计会增加 我想自动化(1)和(2)。是否有一种方法可

我们最近对PRs上的构建验证门进行了更改,这样,如果在当前PR完成之前另一次提交进入主分支,那么构建将“立即”过期。看

尽管此更改确保了主控系统始终是准确的/可构建的/健康的,但这似乎对开发人员的生产力没有什么负面影响:

  • 团队成员必须持续关注他们的PRs,以重新获得构建验证
  • 他们不仅必须手动重新对构建进行排队,而且在此之前,他们还必须在重新排队之前手动重新确定分支的基础
  • 随着我们向更小型/可交付的master签入的方向发展,这种情况发生的次数预计会增加

  • 我想自动化(1)和(2)。是否有一种方法可以设置VSTS生成验证,以便在生成到期时,对于所有打开的PRs,它会自动将源分支重新调整/合并到主分支,然后重新获得生成?

    我在组织中遇到了这个问题。当多个PRs都试图同时进入时,设置会变得过于繁重

    AFAIK-无论何时更新
    master
    ,都无法自动触发针对
    master
    的所有PRs的重建。我相信,如果您想挂接到VSTS事件中并自己编写代码,那么基础知识就在那里。但上次我看的时候盒子里什么都没有


    我的组织所做的就是接受妥协。我们配置PRs,使构建在1小时后过期。这样,当多个PRs试图同时合并时,就不会发生争用。但是,这有您在原始问题中描述的缺点,即目标分支(即
    主分支
    )可能因为两个不兼容的PRs的快速合并而中断

    我们最终只是接受了这个限制

    • 我们在所有分支上都有一个触发器(功能,
      master
      ,等等),每当添加新的提交时,我们都会自动触发一个新的构建。这样,如果公关人员设法打破了
      master
      ,我们会在几分钟内收到一封关于它的电子邮件

    • 如果主分支(即
      主分支
      )断开,所有新的PRs将开始生成失败。因此,没有新的PRs可以合并到中。这通常会引起每个人的注意,因此问题很快就会浮出水面——整个团队开始着手解决
      master

    • 在部署
      master
      之前,我们运行完整的VSTS构建,包括单元测试。这样,如果主分支中断(由两个不兼容的PRs或任何其他原因造成),我们将确保停止部署


    因此,不幸的是,我们不能保证
    master
    总是100%处于良好状态。达到100%对我们的工作流程和生产力有太多的负面影响。因此,我们接受我们的局限性,确保尽快通知我们,并在分支机构出现故障时能够处理这种情况。

    我认为这是一种公平的妥协,我可以在我们的团队中尝试。你是如何设置的(2)?(如果主构建被破坏,所有新的PRs都会失败构建)哦,“新”PRs,所以应该有来自主构建的最新版本,因此构建应该失败。可以明白了,谢谢!这真的很有帮助。还没有将此标记为已回答,希望从VSTS人员那里获得一些信息。将进行检查。@dparka-yup,“新”PRs将被阻止合并,因为构建将失败,因为主版本已被破坏。除非他们巧妙地解决了主人身上已经出现的任何问题。并且一定要等待VST的加入——如果他们有更好的解决方案,我很乐意听到!VSTS本身无法自动重新排队和重新设置基础。您可以在文档()中找到“立即生成过期”选项,“此选项最适用于具有重要分支且更改量较低的团队。在繁忙的开发分支中工作的团队可能会发现,每次更新受保护的分支时,等待构建完成都会造成中断”。此外,如果
    master
    分支用于生产版本,您还可以更改git分支模型(与此类似),例如所有开发人员都在
    develope
    分支上工作。然后创建PR,将
    develope
    分支合并到
    master
    分支中,立即使用Experition就足够了。是否存在我可以投票的现有用户语音请求?或者我们是否可以创建一个新的用户语音请求?目前还没有此类用户语音。您可以创建一个新的用户语音请求这里有一个()。