gpt4 book ai didi

azure - 发布管道 - 在 docker 阶段之间共享工件

转载 作者:行者123 更新时间:2023-12-03 05:40:19 24 4
gpt4 key购买 nike

我有以下 azure 发布管道:

enter image description here

第 1 阶段运行一个 docker 镜像,该镜像会产生一些结果,例如 results1.json第 2 阶段运行一个 docker 镜像,该镜像会产生一些结果,例如 results2.json

现在,第 3 阶段(也是 docker 镜像)将等待前两个阶段完成,并使用 results1.jsonresults2。 json 文件来执行其他操作。

如有任何建议,我们将不胜感激。

最佳答案

您可以添加一个powershell任务在##vso[task.uploadfile]下面运行在 stage1 和 stage2 中将 json 文件上传到任务日志,该日志可与任务日志一起下载。

您可能首先需要将 json 文件保存到代理上的某个位置。例如将 json 文件保存到文件夹 $(System.DefaultWorkingDirectory)

在第一阶段

在 powershell 任务中运行以下脚本

echo "##vso[task.uploadfile]$(System.DefaultWorkingDirectory)\results1.json"

在舞台2

echo "##vso[task.uploadfile]$(System.DefaultWorkingDirectory)\results2.json"

在舞台3

添加一个powershell任务来调用release log休息 api 获取日志并将其保存到代理上的某个位置(例如$(System.DefaultWorkingDirectory))。

GET https://{instance}/{collection}/{project}/_apis/release/releases/{releaseId}/logs?api-version=4.1-preview.2

然后使用 powershell 从下载的日志中提取 results1.json 和 results2.json 文件。

请参阅以下完整的 powershell 脚本:

$url =  "https://vsrm.dev.azure.com/<Org>/<Proj>/_apis/release/releases/$(Release.ReleaseId)/logs?api-version=5.1-preview.2"
$filename="$(System.DefaultWorkingDirectory)\filefinal.zip"
Invoke-RestMethod -Uri $url -Headers @{Authorization="Bearer $env:SYSTEM_ACCESSTOKEN"} -Method get -OutFile $filename

# extract results1.json and results2.json

$sourceFile="$filename"
$file1= "$(System.DefaultWorkingDirectory)\results1.json"
$file2 = "$(System.DefaultWorkingDirectory)\results2.json"

Add-Type -Assembly System.IO.Compression.FileSystem
$zip = [IO.Compression.ZipFile]::OpenRead($sourceFile)
$zip.Entries | where {$_.Name -match 'results1.json'} | foreach {[System.IO.Compression.ZipFileExtensions]::ExtractToFile($_, $file1, $true)}

$zip.Entries | where {$_.Name -match 'results2.json'} | foreach {[System.IO.Compression.ZipFileExtensions]::ExtractToFile($_, $file2, $true)}
$zip.Dispose()

If you encounter not authorized error in the powershell task on stage3. Please refere to blow screenshot and check Allow scripts to access the OAuth token

enter image description here

关于azure - 发布管道 - 在 docker 阶段之间共享工件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59251072/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com