繁体   English   中英

Azure DevOps 通用包 - 获取从外部源下载的工件版本

[英]Azure DevOps Universal Packages - Get Version of artifact downloaded from an external feed

我正在寻找一种方法来从外部提要的通用包任务下载的工件中获取版本号。 因为我已经设置下载最新版本versionDownloadExternal : '*'下载后我需要知道下载的版本。

- task: UniversalPackages@0
  displayName: 'Universal download'
  inputs:
  feedsToUse: external
  externalFeedCredentials: '${{ parameters.externalFeedCredentials }}'
  feedDownloadExternal: 'temp-feed'
  packageDownloadExternal: 'temp-artifact'
  downloadDirectory: '$(Pipeline.Workspace)/drop'
  versionDownloadExternal: '*'

查看通用下载任务的日志,我看到版本在那里(1.5.0),但找不到将其保存到变量以便进一步使用的方法。

{"Version":"1.5.0","SuperRootId":"6AAB600ECBE6DF7FAD87B8C49E7B21E32BB1439F410F0A76E41A220630D0847002","ManifestId":"629C9E66D4A57250DD4A430723E6B9338F995133BCFE65D6868BF7E97F1723DA02","Description":"Klevr Portal Build Artifact"}
{"@t":"2021-10-27T09:18:14.3239876Z","@m":"ApplicationInsightsTelemetrySender will correlate events with X-TFS-Session abc855f4-be5a-4de2-91ed-d9827170d1ee","@i":"889d9dc4","SourceContext":"ArtifactTool.Commands.UPackDownloadCommand","UtcTimestamp":"2021-10-27 09:18:14.323Z"}
{"@t":"2021-10-27T09:18:14.9356386Z","@m":"Found matching version: 1.5.0","@i":"2843490c","SourceContext":"ArtifactTool.Commands.UPackDownloadCommand","UtcTimestamp":"2021-10-27 09:18:14.935Z"}
{"@t":"2021-10-27T09:18:14.9902407Z","@m":"Obtained package metadata","@i":"ae648446","SourceContext":"ArtifactTool.Commands.UPackDownloadCommand","UtcTimestamp":"2021-10-27 09:18:14.990Z"}
...

有任何想法吗? 谢谢。

由于Universal Packages任务没有输出变量,恐怕没有办法直接生成最新版本相关的变量,在下一个任务中使用。

对于解决方法,您可以尝试添加 PowerShell 任务来运行 Rest API: 工件详细信息 - 获取包以获取最新版本。 然后你可以在管道变量中设置它。

下面是一个例子:

$connectionToken="PAT Token"
$base64AuthInfo= [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($connectionToken)"))

$url = 'https://feeds.dev.azure.com/{Organization}/{Project}/_apis/packaging/Feeds/{Feedname}/Packages/{PackageID}/versions?api-version=6.0-preview.1'

$PackageInfo = (Invoke-RestMethod -Uri $url -Method Get -UseDefaultCredential -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)}) 

$LatestVersion= $PackageInfo.value.version | Select-Object -first 1


Write-Host "Latest package Version = $LatestVersion"
echo "##vso[task.setvariable variable=latestversion;isOutput=true]$LatestVersion" 

结果:

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM