我在Azure开发操作上有一个简单的管道,具有4个工作
那个有效。此时,每次对主分支进行PR时,版本凹凸仅会“修补”。因此,它仅发布补丁程序版本...我对此有一个自定义条件:
contains(variables['Build.SourceBranch'], 'refs/heads/master')
。好吧,我想要在这里添加一个条件,决定动态地将版本作为补丁(例如,主要或次要)进行修改...因此,我正在考虑从拉取请求标题或描述中获取该参数,例如:
contains(variables['Build.PR.Title'], 'patch')
contains(variables['Build.PR.Title'], 'major')
contains(variables['Build.PR.Title'], 'minor')
的确,如果PR标题具有“ patch”,“ major”或“ minor”,将触发3种不同的工作。是否可以执行类似的操作,或者是否有更简单的方法?:)
提前感谢!
Azure Devops管道未通过prs的标题。您可以在此处找到预定义的变量:使用预定义的变量。为了得到积极拉动请求的详细信息,您可以使用REST API 引入请求-获取拉入请求通过标识与System.PullRequest.PullRequestId
。以获取标题为例:
$user = ""
$token = "$(System.AccessToken)"
$teamProject = "$(System.TeamProject)"
$PRId = "$(System.PullRequest.PullRequestId)"
$orgUrl = "$(System.CollectionUri)"
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$token)))
$uriGetActivePr = "$orgUrl/$teamProject/_apis/git/pullrequests/$PRId"
$resultPR = Invoke-RestMethod -Uri $uriGetActivePr -Method Get -ContentType "application/json" -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)}
Write-Host "##vso[task.setvariable variable=Custom.PRTitle]"$resultPR.title
然后,您可以在自己的条件下使用新变量,例如:
and(contains(variables['Build.SourceBranch'], 'refs/heads/master'), contains(variables['Custom.PRTitle'], 'patch'))
感谢您的回复!那个有效!:)