在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 ("
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
结果是:
这里放内容
现在,我们可以获取到最新构建物品的链接。
希望这有所帮助。