作为发布的一部分,如何将文件发布回VSTS版本管理?

时间:2016-07-19 10:45:18

标签: azure-devops continuous-deployment azure-pipelines

我正在尝试上传部署期间由第三方exe创建的日志文件,并将其包含在我的部署结果中,如果可能的话,在单独的选项卡上。

我尝试使用发布工件构建任务,但这仅适用于构建而不是发布。

我尝试过记录任务,但“## vso [build.uploadlog]本地文件路径”似乎也适用于构建,因为它抱怨为构建找到容器。

4 个答案:

答案 0 :(得分:6)

发布管理没有构建工件的容器,这就是您看到此错误消息的原因。

您可以尝试以下任务:

Write-host "##vso[task.uploadfile]<filename>"
  

查看和下载与版本相关的附件

     

您希望何时上传其他日志或诊断或图片   在发布中运行任务?此功能使用户可以上传   部署期间的其他文件。要上传新文件,请使用   在脚本中执行以下代理命令:

     

Write-host&#34; ## vso [task.uploadfile]&#34;

     

该文件随后可用作发布日志的一部分。当你   下载与该版本相关的所有日志,您将能够   也可以检索此文件。

您还可以在发行版定义中添加powershell脚本任务,以读取日志文件并将其输出到控制台。然后,您将看到来自&#34; Logs&#34;的日志文件的内容。 tab powershell脚本步骤。您也可以点击&#34;将所有日志下载为zip&#34;下载日志。 enter image description here

enter image description here

答案 1 :(得分:1)

@DonRolling,谢谢您的详细回答。在我的情况下,我没有添加新任务来压缩文件夹,而只是将其包含在powershell中:

Compress-Archive -Path "$(System.DefaultWorkingDirectory)/TestFolder/ScreenShots" -DestinationPath "$(System.DefaultWorkingDirectory)/TestFolder/ScreenShots" -Force

Write-host "##vso[task.uploadfile]$(System.DefaultWorkingDirectory)/TestFolder/ScreenShots.zip"

答案 2 :(得分:1)

我遇到了类似的问题,但我也想在随后的代理阶段使用 Artifacts

根据先前的答案,我创建了一个扩展程序,该扩展程序可以:

  • 将文件或文件夹上载到发布日志
  • 从先前上传的日志中自动下载 Artifact

上传任务正在使用前面提到的logging命令。然后,下载任务将查询Azure DevOps REST Api,以下载到目前为止收集的所有日志,尝试查找指定的工件并将其复制到特定位置。

如果有人感兴趣,可以在Marketplace

上找到

答案 3 :(得分:0)

我希望为寻求答案的人提供更多清晰度。接受的答案确实有效。

我有很多文件(浏览器屏幕截图)要添加到发布日志中。这就是我的所作所为:

如果您有大量文件,请将其存档为zip。 enter image description here

通过powershell将zip附加到日志文件。

enter image description here

下载日志

enter image description here

解压缩并享受!

enter image description here