发布管道中的Azure Devops日志记录命令

kr98yfug  于 2022-11-25  发布在  其他
关注(0)|答案(2)|浏览(145)

我试图通过在任务中设置一些env变量来自定义我的pipeline版本的输出。我找到了以下链接:https://learn.microsoft.com/en-us/azure/devops/pipelines/scripts/logging-commands?view=azure-devops&tabs=powershell
然而,这似乎并不起作用。我所做的只是创建一个带有单个任务(bash或PS)的管道,并在那里通过任务的内联版本声明链接中指定的命令。
有没有人已经成功地设法让这些命令起作用了?我做错了什么和/或不完整吗?
有没有人有更好的方法来定制管道与相关的信息从一个任务?例如,通过发布名称,或描述和/或标签的具体版本?

  • 编辑:*
Write-Host "##vso[task.setvariable variable=sauce;]crushed tomatoes"
Write-Host "##vso[task.setvariable variable=secretSauce;issecret=true]crushed tomatoes with garlic"

Write-Host "Non-secrets automatically mapped in, sauce is $env:SAUCE"
Write-Host "Secrets are not automatically mapped in, secretSauce is $env:SECRETSAUCE"
Write-Host "You can use macro replacement to get secrets, and they'll be masked in the log: $(secretSauce)"

这是代码,复制并粘贴。现在我也尝试了脚本,它也不起作用。我使用托管的windows代理。

z0qdvdin

z0qdvdin1#

使用logging命令设置新变量时,该变量仅在nexttask中可用,而在同一task中不可用。
因此,将脚本拆分为2个任务,在第二个任务中放入最后3行,您将看到第一个任务工作正常:

qvk1mo1f

qvk1mo1f2#

这也让我困惑了一段时间,最后我发现如果你想修改$env:path,你可以通过使用特殊的日志命令语法,如“##vso[task.prependpath]local directory path”,调用名为task.prependpath的特殊任务。你可以从它们的源代码中找到更多这类特殊命令:https://github.com/microsoft/azure-pipelines-tasks/blob/master/docs/authoring/commands.md

相关问题