因此,每当我将更改推送或合并到master分支中时,我就设置了ADO来构建我的解决方案,并且它会生成工件,但是该工件的路径随每次构建而变化。有什么方法可以创建一个始终指向最新构建工件的永久链接,因此我可以与其他人共享该永久链接,而无需让他们单击构建列表中的一堆链接,或者每次有新链接时都给他们一个新链接。新建?
为了阐明这一点:假设我有1号楼,URL是http://azure.com/build/1/artifact或类似名称。现在,我进行一些更改,并在http://azure.com/build/2/artifact获得了版本2。因此,我必须在要链接到版本1的所有地方进行更新,以共享应用程序链接到版本2的应用程序。我正在寻找某种http://azure.com/build/latest/artifact,它总是指向最新版本。
答案 0 :(得分:1)
像这样?
https://dev.azure.com/ {orgname} / {project} / _ apis / build / latest / {pipeline-name}?api-version = 5.1-preview.1
https://docs.microsoft.com/en-us/rest/api/azure/devops/build/latest/get?view=azure-devops-rest-5.1
这将为您获取最新的版本ID
使用该ID,您可以获取工件。
答案 1 :(得分:1)
在Azure DevOps中,有什么方法可以创建到最新生成工件的永久链接?
恐怕没有直接创建与最新构建工件的永久链接的直接方法。
那是因为最新的构建工件的链接与构建ID 有关,例如:
https://dev.azure.com/<OrganizationName>/<ProjectID>/_apis/build/builds/2037/artifacts?artifactName=Test&api-version=5.0&%24format=zip
因此,最新的构建工件的链接因每个构建ID而异。
作为解决方法,我们可以使用REST API Latest - Get来获取定义的最新版本:
GET https://dev.azure.com/{organization}/{project}/_apis/build/latest/{definition}?api-version=5.1-preview.1
要调用上述API的powershell脚本:
$url = "https://dev.azure.com/{organization}/{project}/_apis/build/latest/51?&api-version=5.0-preview.1"
$buildPipeline= Invoke-RestMethod -Uri $url -Headers @{
Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN"
} -Method Get
$BuildId= $buildPipeline.id
Write-Host This is start time: $BuildId
然后我们可以获得定义的最新版本:
接下来,我们需要将此最新的内部版本ID传输到下一个REST API Artifacts - Get Artifact:
Write-Host ("##vso[task.setvariable variable=LatestBuildId]$BuildId")
GET https://dev.azure.com/{organization}/{project}/_apis/build/builds/{buildId}/artifacts?artifactName={artifactName}&api-version=5.1
powershell脚本:
$url = "https://dev.azure.com/{organization}/{project}/_apis/build/builds/$(LatestBuildId)/artifacts?artifactName=test&api-version=5.0"
$buildPipeline= Invoke-RestMethod -Uri $url -Headers @{
Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN"
} -Method Get
$ArtifactDownloadURL= $buildPipeline.resource.downloadUrl
Write-Host This is start time: $ArtifactDownloadURL
结果:
现在,我们可以获取最新的构建工件的链接。
希望这会有所帮助。