【问题标题】:Azure Devops logging commands in release pipeline发布管道中的 Azure Devops 日志记录命令
【发布时间】:2019-06-25 07:42:46
【问题描述】:

我正在尝试通过将一些环境变量设置到任务中来自定义我的管道发布的输出。 我找到了以下链接: https://docs.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 代理。

【问题讨论】:

  • 我以前用过它们,它们可以工作,你只需要正确的语法。例如语法中的; 非常重要。你到底在执行什么?
  • 确保您按照文档中的说明进行操作,Write-Host "##vso[task.setvariable variable=testvar;]testvalue" 而不是 Write-Host "##vso[task.setvariable testvar=testvalue;]"
  • 你能分享你的 bash/PS 脚本吗
  • 我只是复制并粘贴了文档中的内容。为了清楚起见,我确实直接内联编写所有内容,而不上传任何 bash/PS 脚本。如果您成功使用脚本,那么这可能是关键的区别
  • @ShaykiAbramczyk 我插入了代码。如果您有任何其他提示,请告诉我。

标签: azure azure-devops azure-pipelines azure-pipelines-release-pipeline


【解决方案1】:

当您使用日志记录命令设置新变量时,该变量仅在下一个任务中可用,而不是在同一任务中。

因此,将您的脚本拆分为 2 个任务,在第二个任务中放入最后 3 行,您将看到第一个任务有效:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多