我在 tfs 2015.3 中创建了一个 ci 构建。在触发器选项卡上,我设置了门控签入。
有没有办法让开发人员现在进入,而不是构建失败。目前没办法,不想用alerts,想在vs里面给个
消息一个 tfs 管理员来发布文件。
1 回答
在 TFS 2013 中,曾经有一个名为Team Foundation Build Notification的工具随 Visual Studio 2013 一起提供。但现在情况已不再如此。
如果您不想使用电子邮件通知,可以在托盘中运行第三方应用程序来接收构建通知。我最近自己也使用过 catlight来解决完全相同的问题。如果您使用的是像 Slack 这样的聊天应用程序,您还可以将构建通知集成到团队的 Slack 频道中,以便在构建失败时收到通知。
要回答问题的第二部分,重要的是要了解门控值机的确切作用。
当您签入并触发门控签入时,您的文件不会被签入,而是 TFS 会创建一个搁置集。然后,TFS 将使用最新版本的源代码和它刚刚创建的搁置集执行私有构建。只有当此私有构建通过您的搁置集中的待处理更改时,构建才会代表触发门控签入的用户签入。这将创建一个新的变更集。
签入后,所有锁都将被释放,因此当构建服务器代表您签入您的更改时,所有具有签入或签出锁的文件都将被释放。
当构建失败时,搁置集中的更改(在触发门控签入构建时创建)将不会被构建服务器签入,因此不会释放锁。在源代码管理资源管理器中,文件仍将有待处理的更改(并被签出),因为您的工作区中的更改尚未签入。这是预期的行为,不会对您造成任何问题,除非您禁用了多次签出,并且您通过签出这些文件来阻止其他开发人员进行更改。
我不建议您在不允许多次退房时使用门控入住。此外,如果可以以任何方式避免,我不建议禁止多次退房。
门控签入旨在保护存储库不接收会破坏应用程序(它不再编译或单元测试失败)或降低质量低于标准的签入。然而,这也意味着您无法签入,直到您在构建过程中拥有的所有规则和验证都通过,因此意味着其他开发人员将被锁定,直到您能够通过“门”。