在VSTS中的不同分支中的发布定义之后调用构建定义的任务是什么

时间:2017-11-07 06:38:04

标签: azure-pipelines azure-pipelines-build-task

我在VSTS中有一个要求,目前作为CI / CD过程的一部分,我有一个构建定义作业和发布定义作业。一旦发布定义将成功完成构建定义,将调用发布定义将代码部署到服务器我需要调用测试作业,该测试作业在单独的构建定义中(在不同的分支中)配置。因此,我需要VSTS中的任务名称如何在成功完成发布定义后调用所有测试构建定义。请帮我找到如何完成这个任务。我可以通过power shell脚本或任务来完成吗?如果我可以通过脚本,请分享我的脚本。

此致 普利文

1 个答案:

答案 0 :(得分:0)

要在发布定义中调用构建定义,有两种方法:PowerShell任务或扩展任务(例如Queue New Build)。

选项1:使用PowerShell任务按REST API排队构建

<强> prerequisitions:

  1. 获取构建定义ID

    在要调用的构建定义中,获取构建定义ID:编辑构建定义 - &gt;变量选项卡 - &gt; system.definitionId的值是需要使用的ID。例如,构建定义标识为<div id ="scrollarea"> <?php for($page=1; $page <= $number_of_pages ; $page++) { echo '<a href="admin_events_template.php?page=' . $page . '">' . $page . '</a>'; } ?> </div> enter image description here

  2. 添加个人访问令牌(PAT)

    在您的VSTS帐户中 - &gt;点击您的个人资料 - &gt;安全 - &gt;个人访问令牌标签 - &gt;添加 - &gt;复制新创建的令牌供以后使用。

    enter image description here enter image description here

  3. 现在添加一个Powershell任务,如下面的脚本:

    32

    注意:在脚本中,您需要将$body = ' { "definition": { "id": <build definition ID> } } ' $bodyJson=$body | ConvertFrom-Json Write-Output $bodyJson $bodyString=$bodyJson | ConvertTo-Json -Depth 100 Write-Output $bodyString $user="name" $token="<personal access token>" $base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$token))) $Uri = "https://<account>.visualstudio.com/DefaultCollection/<project>/_apis/build/builds?api-version=2.0" $buildresponse = Invoke-RestMethod -Method Post -UseDefaultCredentials -ContentType application/json -Uri $Uri -Body $bodyString -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} write-host $buildresponse 替换为找到的值,将<build definition ID>替换为您添加的真实PAT,替换为<personal access token>使用真实的项目名称,并将<project>替换为您真实VSTS帐户的名称。

    选项2:在市场中使用相关扩展任务

    例如,您可以使用Queue New Build taskTrigger Build taskQueue Build(s) task等来指定构建定义名称和json以对构建进行排队。

    • 对于触发器构建任务,您只需要指定构建名称并使用PAT进行身份验证(<account>是我要排队的构建定义名称,您可以替换为自己的构建定义名称)。

    enter image description here

    • 对于队列构建任务,您可以指定JSON,如下所示(为主分支编译队列):

      d1

    enter image description here