一次运行单个SQL构建管道

时间:2019-09-18 15:37:55

标签: azure-sql-database azure-pipelines

TLDR

我想一次只运行一个构建实例,而该实例共享一个资源,该资源一次只能处理一个执行,而同时仍然能够一次在其他构建上运行多个代理。另一种选择是在构建中运行Azure SQL数据库实例(如果可能的话)。

1。)如何将一次共享资源的构建限制为1个代理?我一直在寻找一种命名的Azure代理,该代理可以被限制或添加某种只能一次使用的命名空间。

2。)有什么更好的方法可以将SQL安装脚本作为构建管道的一部分进行测试。

详细信息

我在Azure中有几个构建管道和发布管道设置。我的管道之一是测试用于初始化数据库新实例的大型SQL脚本。这是使用Azure SQL Execute Query任务执行的。运行SQL时遇到的任何错误都应该以失败的构建形式回踢到Github。但是,当我将代理程序的数量从1增加到2时,我时不时遇到一个问题,即在上一个完成之前触发构建的问题。这样会破坏第一个版本。

这是我正在使用的代理商

enter image description here

1 个答案:

答案 0 :(得分:0)

如果我理解正确的话,则可以限制一个代理的构建。您可以尝试以下步骤。

首先转到您的构建管道,编辑管道。为管道指定需求。然后管道将仅在满足需求的代理上运行。

例如,如果我指定如下图所示的要求。然后,管道将仅在名为agentname的代理上运行。

enter image description here

您可以找到代理的详细功能并定义自定义功能。请转到项目设置页面中管道下的座席池。 选择您的代理程序池,选择您的代理程序,然后添加新功能以添加自定义功能。然后,您可以根据需要使用自定义定义的功能。 enter image description here

更新

在yaml样式管道中,您可以通过定义 vmImage 来指定哪个代理运行您的管道,有关详细信息,请检查here

pool:
  name: string  # name of the pool to run this job in
  demands: string | [ string ]  ## see below
  vmImage: string # name of the vm image you want to use

您还可以尝试使用 Azure Pipelines 代理程序池,在该池中可以指向特定的代理程序来运行您的管道。

enter image description here

希望您会发现这很有帮助。