Azure devops 在Azure DevOps中,有没有办法创建到最新构建工件的永久链接?

Azure devops 在Azure DevOps中,有没有办法创建到最新构建工件的永久链接?,azure-devops,azure-pipelines,Azure Devops,Azure Pipelines,因此,每当我将更改推送到或合并到主分支中时,我都会设置ADO来构建我的解决方案,它会生成一个工件,但该工件的路径会随着每次构建而改变。有没有办法创建一个永久链接,它总是指向最新的构建工件,这样我就可以与人们共享它,而不必让他们点击构建列表中的一堆链接,或者每次有新构建时都给他们一个新链接 澄清一下:假设我有build 1,URL是或类似的东西。现在,我推动了一些更改,并在上获得了构建2。因此,我必须在链接到build 1的任何地方进行更新,以将应用程序共享到链接到build 2。我正在寻找某种总

因此,每当我将更改推送到或合并到主分支中时,我都会设置ADO来构建我的解决方案,它会生成一个工件,但该工件的路径会随着每次构建而改变。有没有办法创建一个永久链接,它总是指向最新的构建工件,这样我就可以与人们共享它,而不必让他们点击构建列表中的一堆链接,或者每次有新构建时都给他们一个新链接

澄清一下:假设我有build 1,URL是或类似的东西。现在,我推动了一些更改,并在上获得了构建2。因此,我必须在链接到build 1的任何地方进行更新,以将应用程序共享到链接到build 2。我正在寻找某种总是指向最新版本的版本。

类似的东西

{orgname}/{project}/api/build/latest/{pipeline name}?api版本=5.1-preview.1

这将为您获取最新的构建id

然后呢,

有了这个ID,你就可以得到神器了

在Azure DevOps中,有没有办法创建到最新构建工件的永久链接

恐怕没有这样直接的方法来创建到最新构建工件的永久链接

这是因为最新构建工件的链接与构建ID相关,比如:

https://dev.azure.com/<OrganizationName>/<ProjectID>/_apis/build/builds/2037/artifacts?artifactName=Test&api-version=5.0&%24format=zip
要调用上述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
然后我们可以得到定义的最新版本:

GET https://dev.azure.com/{organization}/{project}/_apis/build/latest/{definition}?api-version=5.1-preview.1

接下来,我们需要将这个最新的构建id传输到下一个REST API:

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
结果是:

现在,我们可以获得最新构建工件的链接


希望这有帮助。

Hmm,所以我必须调用API才能获取最新工件的URL?我尝试了这个链接:但是我得到了一个错误
{“$id”:“1”,“innerException”:null,“消息”:“文件夹-1未找到”,“typeName”:“Microsoft.TeamFoundation.Build.WebApi.FolderNotFoundException,Microsoft.TeamFoundation.Build2.WebApi”,“typeKey”:“FolderNotFoundException”,“errorCode”:0,“eventId”:3000}
哦,等等,我在那个URL中有一个额外的斜杠。应该是这样的:-这给了我一些JSON,我想我需要解析它…是的,没有直接的方法来获取最新的工件。你需要我的身材。另一种方法是将工件上传到nexus或docker注册表,您可以通过它们获取最新信息,只需查看提供的信息是否有用。如果您需要进一步的帮助,请告诉我们。嗯,听起来不像我希望的那么容易!我想知道是否有一种方法可以使用JavaScript获取最新版本,这样我就可以将脚本附加到超链接,并让它执行所有必要的逻辑来查找和下载版本。。。那太好了!对不起,我不熟悉JavaScript,所以我无法直接给出解决方案的答案,但解决方案是正确的,尽管看起来并不简单。因为您需要的是永久链接到最新的构建工件,然后您可以更新您的问题,您需要使用JavaScript来实现您的请求;我总是可以提供关于从那里点击什么链接下载二进制文件的说明。。。如何对最新的工件进行永久链接?我在回答中提供了它,但它使用的是powershell脚本而不是JavaScript,如果您想使用JavaScript,您可能需要自己进行转换。
$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