Azure devops Azure DevOps Server 2020是否可以支持一种开发人员';在dev';谁的机器?
我们在prem上使用Azure DevOps Server 2020。我们无法转向服务。我们无法在Azure中使用代理,因为这些代理将无法与位于公司防火墙后面的服务器通信 所以,我们被困在prem特工中,这让我们窒息。我们的应用程序是最糟糕意义上的一块巨石。它的公关建设需要时间,而且对资源极度渴求。目前我们有2-3个PR构建在同一台机器上同时运行,这需要时间。简言之,这是非常糟糕的 另一方面,开发人员拥有相当强大的机器。当然,我不想让我的机器为其他人的PR构建服务,但如果它可以运行我自己的PR构建,那就太棒了 唉,我看不出怎么能做到这一点。所以,我的问题是-是否可以配置Azure DevOps Server 2020,以便Alice提交的PR的PR验证构建可以在Alice机器上运行的构建代理上运行,并且只有在没有此类代理的情况下,它才会选择在构建服务器上运行的“标准”构建代理 澄清 虽然这个问题讲的是爱丽丝,但也有鲍勃、查理和迪帕克。大约300多名开发者。因此,解决方案不应该假设只有一个开发人员在处理代码 是否可以配置Azure DevOps Server 2020,以便Alice提交的PR的PR验证构建可以在Alice机器上运行的构建代理上运行 我们可以在Alice的机器中安装自托管代理,打开组织设置->代理池->选择代理->单击选项卡功能->搜索字段Azure devops Azure DevOps Server 2020是否可以支持一种开发人员';在dev';谁的机器?,azure-devops,azure-devops-server-2020,Azure Devops,Azure Devops Server 2020,我们在prem上使用Azure DevOps Server 2020。我们无法转向服务。我们无法在Azure中使用代理,因为这些代理将无法与位于公司防火墙后面的服务器通信 所以,我们被困在prem特工中,这让我们窒息。我们的应用程序是最糟糕意义上的一块巨石。它的公关建设需要时间,而且对资源极度渴求。目前我们有2-3个PR构建在同一台机器上同时运行,这需要时间。简言之,这是非常糟糕的 另一方面,开发人员拥有相当强大的机器。当然,我不想让我的机器为其他人的PR构建服务,但如果它可以运行我自己的PR构
agent.ComputerName
,然后打开PR构建定义并添加需求,如下所示
然后PR构建将与指定的代理一起运行,您可以查看此文档:以了解更多详细信息
此外,如果PR生成未找到匹配的代理,则生成将不会与其他代理一起运行
更新1
每个开发人员在其所有者的机器上都有其所有者代理,对吗
检查此文档:,它包含变量Build.RequestedFor
和Build.RequestedForEmail
,如果管道是pull request trigger,它将显示pull request创建者名称和电子邮件,并将其添加到管道需求中。比如
然后,让所有开发人员向他们的代理添加功能,例如TriggerName={他们的电子邮件或显示名称}。由于我在代理中使用变量Build.RequestedForEmail
,因此我添加了以下功能:
然后,如果我创建一个pull请求,构建将通过我自己的机器代理运行
更新2
例如,原始PR构建名称是A。打开它并添加默认需求(您可以添加任何内容)
添加新的构建定义名称B,添加任务powershell并输入powershell脚本以在restapi下面调用以更新A定义
然后添加构建B作为拉请求构建
更新3
是否可以配置Azure DevOps Server 2020,以便Alice提交的PR的PR验证构建可以在Alice机器上运行的构建代理上运行,并且只有在没有此类代理的情况下,才会在构建服务器上运行“标准”构建代理
如果“real”最初以构建代理为目标,那么当辅助代理确定dev有一个单独的代理时会发生什么
真正的构建定义有需求,如果构建按默认需求运行,它将运行标准构建代理
作为辅助,我们需要添加条件来运行powershell脚本以更新实际构建需求。如果Alice的机器有匹配的代理,它将更新真实的构建需求,然后真实的构建将运行Alice的机器代理。您的回答是否意味着Alice有一个专门用于她的PR构建?我理解正确吗?嗨@mark,我已经更新了答案,请检查更新1。此外,所有开发人员都应该在同一个代理池+1中安装自托管代理-这更好。然而,我对全有或全无的方法有一个问题。我不能期望所有开发人员都运行构建代理。它必须逐步推出,因为还有一些细节需要整理。因此,依赖于构建服务器上运行的“标准”代理的要求很重要。测试需要时间。我现在就接受。如果有问题,我会让你知道。
GET https://dev.azure.com/{organization}/{project}/_apis/build/definitions/{definitionId}?api-version=6.1-preview.7
PUT https://dev.azure.com/{organization}/{project}/_apis/build/definitions/{definitionId}?api-version=6.1-preview.7