gpt4 book ai didi

powershell - 在 VSTS 中发布失败时向所有开发人员发送通知(上一个 VSO)

转载 作者:行者123 更新时间:2023-12-03 16:32:27 28 4
gpt4 key购买 nike

我正在使用 Visual Studio Team Services (VSTS),以前称为 Visual Studio Online (VSO) 来构建持续交付管道。我的目标是尽可能接近 Continuous Delivery Jez Humble 和 David Farley 的书。

我希望当一个阶段(在 VSTS 中命名为 Environment)失败时,会向 发送通知(一封电子邮件)此版本中涉及的每个开发人员 .此通知会说:

  • 你打破了阶段(回归)
  • 舞台已经坏了(失败)
  • 你修好了舞台。 (固定)

  • 目前,只有手动创建发布的人(或通过推送触发构建的提交,然后发布)才会收到这封电子邮件,并且没有我想要的信息。

    我玩过一些 VSTS API,并且可以获得给定构建(但不是给定版本)的相关提交(和开发人员电子邮件):

    $token = "vsts token"
    $endpoint = "https://acme.visualstudio.com/DefaultCollection/MyProject/_apis/build/builds/42/changes?api-version=2.0"

    $b64creds = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes("$($token):a"))
    $changes = Invoke-RestMethod -Headers @{Authorization="Basic $b64creds"} $endpoint

    $changes.value | ForEach-Object { $_.author.uniqueName }

    我已经看到在 VSTS 界面中,您可以看到在 2 个版本之间添加了哪些提交。即使我没有在 API 中找到这些信息,它也非常接近我想要的。但即使有这些信息,我项目的所有分支都使用相同的发布定义,因此例如 Release-26 将是一个功能分支,而 Release-27 将被开发。比较这两个版本没有意义。

    我知道我可以在发布阶段从环境变量中获取构建 ID,然后使用我上面的脚本并创建一个 PowerShell 任务或插入 VSTS 的 Web 服务。但它只有在为每个构建触发发布时才有效,但情况并非总是如此。

    您知道使用 VSTS 发送此通知的(更好)方法吗?
    我是否使用正确的工具来处理这类事情?

    最佳答案

    您只能向“Environment owner”和“Release creator”发送邮件提醒,目前无法自定义邮件提醒中的内容,您可以在VSTS User Voice上提交功能请求。 .

    Rest API 是获取这些信息的好工具。但是您提到您对所有分支使用相同的发布定义。这根本不符合逻辑。不同的分支指的是你项目的不同版本,你为什么要在一个发布管道中部署所有分支?如果您将工作流配置为每个分支一个发布定义,解决方案会更容易。您只需要获取先前版本的构建 ID,然后在构建之后获取更改。您还可以添加一个 powershell 任务来为当前发布版本的 TFVC/Git 存储库创建标签/标签,以便您可以获得标签/标签之间的更改。

    关于powershell - 在 VSTS 中发布失败时向所有开发人员发送通知(上一个 VSO),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37815468/

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