Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure devops Azure DevOps Server 2020是否可以支持一种开发人员';在dev';谁的机器?_Azure Devops_Azure Devops Server 2020 - Fatal编程技术网

Azure devops Azure DevOps Server 2020是否可以支持一种开发人员';在dev';谁的机器?

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构

我们在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的机器中安装自托管代理,打开组织设置->代理池->选择代理->单击选项卡功能->搜索字段
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