问题标签 [gated-checkin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1625 浏览

tfs - TFS 2010:主分支的门控签到;在开发分支上滚动构建?

我最近从 VSS 迁移到了 TFS 2010,我一直非常喜欢它,但是我还没有能够按照我认为应该的方式开始工作。

目标

我想快速知道对 Development 的更改何时会破坏构建。如果我们事后发现,这没什么大不了的。由于一天中有很多签入,我们不想等待构建完成,所以它应该是异步的。

对于我们的 Main 分支,我想确保任何时候发生合并,我们确保它不会破坏构建。我想立即对此进行反馈。等待时间很好,因为我们不会经常合并到 Main。

当前设置

我的解决方案位于名为 Main 的文件夹下。我已经创建了一个名为 Development 的分支。我正在工作的工作区与顶层相关联,其中包括主分支和开发分支。我尝试将我的工作区调整为仅指向开发,以防出现问题。这似乎并没有解决我的问题,所以我将它设置回我最初的方式 - 使用 Main 和 Development。

在工作区的构建定义中,我定义了两个定义——一个用于主分支,另一个用于开发。

第一个定义是用于构建主分支。它有一个门控签入触发器,并且“要构建的项目”指向 Main 中的解决方案文件。

第二个定义用于在开发分支中构建解决方案。它有一个滚动构建触发器,并且“要构建的项目”指向开发中的解决方案文件。

结果

目前,当在 Development 中进行更改并执行签入时,会触发 Main 的门控签入。这不仅会造成混乱,而且还会减慢我们的整体流程。

下一步

我查看了一些关于分支的 TFS 指南、一般 TFS 使用等。不幸的是,我还没有找到解决我的问题的方法。如果您以前遇到过此问题,我将不胜感激您提供的任何建议。

0 投票
1 回答
117 浏览

msbuild - 门控签到的误报

我正在使用 TFS2010 SP1 中的自定义 MSBuild 脚本进行构建。构建类型是门控签入,即使 MSBuild 日志在我的构建中显示为成功,也会失败。什么会在 MSBuild 完成后和构建定义完成门控签入之前触发失败

0 投票
2 回答
494 浏览

tfs - 配置要与门控签到一起使用的工作流

我正在尝试设置门控登记政策,但我的工作流程遇到了问题。

在构建定义菜单中,我选择 Trigger -> Gated Check-in。这给了我错误...

“您在触发器选项卡中选择的触发器不能与您在流程选项卡上指定的构建流程模板一起使用。(它支持构建原因Manual、IndividualCI、BatchedCI、Scheduled、ScheduleForced、UserCreated)”

任何人都知道我可以在哪里选择它支持的构建原因?

我查看了 .xaml 文件中的所有代码,但没有发现任何突出的问题。

在这里的任何帮助将不胜感激。

0 投票
1 回答
1903 浏览

tfs - TFS 2010 问题与跟踪由门控签入导致的构建中的变更集

为了检索哪个变更集包含在哪个 Build 中的信息,我们使用 Team Foundation Sidekicks 的“Label Sidekick”,我们在其中放置 Build 的 Label 并期望找到新构建的 Changeset。

我们在 TFS 2010 中的开发过程正在使用“门控”签入,因此我们面临的情况是 Sidekicks 中没有提供最新签入(我们实际上收到了先前构建的变更集)。这是可以解释的,因为在标记发生时,尚未提交最新的更改。

BuildLog 确实正确报告了关联的变更集。

我在我们的构建过程模板中进行了几次实验,但似乎无法得到我们需要的东西。例如,将 Labeling 活动置于“Run On Agent”范围之外,会导致构建一开始就失败,并显示“对象引用未设置为对象的实例”。(我想这与我必须扩大“标签”和“工作区”变量的范围以使第二部分运行)有关。
此尝试的构建过程模板的“之前”状态在这里(这有效),“之后”状态(“对象引用未设置..”)在这里

因此,总而言之,两种不同类型的输入可以帮助我:

我应该如何更改我们的构建过程模板,以便在提交门控签入进行标记?(——这将使 Sidekicks 中的显示合理化)

或者

如何以编程方式检索每个构建的关联变更集?(——这将使我能够编写一个可以淘汰 Sidekicks 角度的小应用程序)

0 投票
4 回答
3725 浏览

git - TFS 2010 多种解决方案和构建带有门控签入

我在相应的文件夹中有两个解决方案,例如

  1. SolutionA\SolutionsA.sln
  2. SolutionB\SolutionB.sln

每个解决方案都配置了 Gated Check-in 构建;即两个构建定义GatedSolutionA 和GatedSolutionB。

现在的情况是,如果我同时检查两个文件夹中的更改,TFS 会显示一个对话框来选择构建(使用 GatedSolutionA、GatedSolutionB 下拉)以针对更改集运行。我的变更集在解决方案 B 中有重大更改,在解决方案 A 中有非重大更改。即构建 GatedSolutionB 会失败,但 GatedSolutionA 会通过。

当我选择 GatedSolutionA 来针对我的变更集进行构建时,TFS 将其签入,这反过来使解决方案 B 处于损坏状态,并且解决方案 B 的门控签入目的被破坏。

如果我将触发器更改为 CI 以进行构建定义,TFS 会将两个构建都排入队列。

我正在寻找的是相同的行为,即所有门控构建都排队,如果其中一个失败,变更集应该被拒绝。

注意:我不想为这两种解决方案创建单个构建定义。另外,我知道我们可以通过创建两个单独的变更集来避免这个问题的发生,但这通常发生在开发人员不知道他们有一些文件正在签入以寻求解决方案而不是他们正在处理的解决方案时。

2019 年更新

由于 TFS 和 Azure DevOps 已经开始使用 GIT 和拉取请求 - 使用分支策略(在主分支上),因此可以添加多个构建检查,例如路径更改SolutionA\*,BuildA 可以配置为排队和检查,类似地更改path SolutionB\*, BuildB 可以配置为排队和检查,因此对于在两个路径中都有更改的提交,将对两个构建进行排队以进行检查。等待使用 GIT 是值得的。

分支策略:https ://docs.microsoft.com/en-us/azure/devops/repos/git/branch-policies?view=azure-devops#build-validation

注意:文档未更新以显示路径过滤器,并且在https://github.com/MicrosoftDocs/vsts-docs/issues/3235的 github 上提出了缺陷。因此,筛选器在 Azure DevOps 和服务器中可用。

0 投票
3 回答
12594 浏览

build - 何时使用门控值机?

我正在使用 TFS 2010。目前我仅在主干 (MAIN) 分支上使用 Gated Check-in 构建。而且,我在 DEV 和 RELEASE 分支上使用 CI。

  • 为什么不在所有分支上使用 Gated Check-in 构建?
  • 在什么情况下,您不应该在 DEV 和 RELEASE 分支上使用 Gated Check-in 构建?
  • 在每个分支上始终使用 Gated Check-in 构建会更好吗?
0 投票
1 回答
1851 浏览

tfs - 门控签入始终将工作项与构建相关联

我正在使用带有门控签入的 TFS2010,即使我已将“关联变更集和工作项”设置为 false,变更集和工作项仍与此构建相关联。

这只发生在门控构建上。如果我使用其他签入触发器(手动、连续、计划)运行构建,除非“关联变更集和工作项”设置为 true,否则变更集和工作项不会与构建关联。

任何想法为什么会发生这种情况?我正在使用带有默认工作流定义的 Visual Studio Scrum 流程模板。也许工作流定义有问题?

0 投票
2 回答
2104 浏览

visual-studio-2010 - 在 Team Foundation Server 中结合“门控签入”和“持续集成”构建

这个问题转移到 如何防止门控签到将关键字 ***NO_CI*** 放在评论中

我用我获得的知识更详细地提出了这个问题

为了确保代码质量和单元测试,我已经在我的项目中建立了一个门控签入构建。

还有另一个构建定义要由签入(持续集成构建)触发,我希望在签入后构建它。

我的期望是,门控签入已执行,并且在成功构建和提交(由构建服务用户)之后触发另一个构建。

但这种情况并非如此。

有没有人知道我是如何让它工作的,持续集成构建也是由构建服务中的签入触发的

0 投票
1 回答
296 浏览

asp.net-mvc-3 - 添加新文件时,TFS2010 门控签入“无法应用标签”

添加新文件时,我们在 MVC3 项目的门控签入场景中收到“无法应用标签”。

经过一些谷歌搜索,似乎是因为我们正在使用 MSBuild 脚本来做额外的事情:http ://social.msdn.microsoft.com/Forums/en-US/tfsbuild/thread/af9c65a2-dc27-40df-ae6d -958008ad106f

我们需要“额外的东西”,因为当我们使用 MVC AREA 时,TFS 似乎将二进制文件放在完全错误的文件夹中。所以 TFSBuild.proj 正在调用另一个 MSBuild 文件来进行文件复制。我们没有专业知识来弄清楚 TFS2010 的做事方式——即 Windows 工作流。

所以问题是 - 我们如何才能继续使用门控值机,但应用标签问题来解决这个问题?

干杯,
皮特

0 投票
3 回答
4234 浏览

tfsbuild - TFS 门控签入问题

我想知道我是否应该在这里发布这个,但后来我在 TFS 上看到了其他类似的帖子,他们没有解决我的问题,所以我决定继续发布它。

我正在尝试修复由前同事设置的 TFS 盒子。到目前为止,除了签入/签出文件之外,我还没有以任何其他身份使用过 TFS。出于本练习的目的,我创建了一个简单的 winforms 项目,其中只有一个表单和一个表单加载时的 hello world 警报,我是试图签入到 TFS。我们启用了门控签入,我们还禁止用户绕过构建验证,因为它可以在下面的红色框中突出显示。

门控签到对话框

现在问题是所有门控签入尝试都失败并出现错误:

我得到的消息提示说它是部分成功的 门控登记部分成功

当我打开构建时,我看到了这个 TFS 构建输出

当我在线检查时,我发现解决方案是允许用户通过启用灰色的复选框来绕过验证。我不希望出现这种情况。有没有一种方法可以让绕过验证保持禁用状态,并且仍然可以让我的门控签到工作?

这让我完全被难住了,我无法弄清楚可能出了什么问题。任何关于在我的日志中查看哪里以找出问题所在的指针也可能会有所帮助。日志确实表明构建成功,没有警告或错误。