【问题标题】:How do I add the job status (success or failure) in the email notification?如何在电子邮件通知中添加作业状态(成功或失败)?
【发布时间】:2017-01-04 22:17:51
【问题描述】:

我想在 Octopus Deploy 的电子邮件通知的主题行中添加作业状态。您能告诉我要使用的系统变量或其他添加状态的方式吗?

【问题讨论】:

    标签: octopus-deploy


    【解决方案1】:

    作为一种解决方法,您可以使用两个步骤来发送“状态电子邮件”:

    1. 一步发送“成功”电子邮件。此步骤的“运行条件”应设置为“成功:仅在前面的步骤成功时运行”。
    2. 发送“失败”电子邮件的另一个步骤。此步骤应将“运行条件”设置为“失败:仅在上一步失败时运行”。

    可能是系统变量 Octopus.Deployment.Error Octopus.Deployment.ErrorDetail 也可能会有所帮助。

    【讨论】:

      【解决方案2】:

      跟踪部署状态

      在部署过程中,Octopus 提供了描述每个步骤状态的变量。

      其中 S 是步骤名称,八达通将设置:

      • Octopus.Step[S].Status.Code
      • Octopus.Step[S].Status.Error
      • Octopus.Step[S].Status.ErrorDetail

      状态代码包括待处理、已跳过、已放弃、已取消、正在运行、已成功和失败。

      来源:http://docs.octopusdeploy.com/display/OD/System+variables#Systemvariables-DeploymentStatusTrackingdeploymentstatus

      因此要将其应用于您的电子邮件主题(假设您使用的是内置的发送电子邮件步骤:

      仅供参考:带圆圈的框可让您快速访问变量列表。

      不过,您可能希望将值调整为更接近此值

      Deployment Status = #{Octopus.Step[Other Step Name].Status.Code}
      

      作为此答案的扩展;我猜你可以遍历所有步骤并输出它们的状态。

      此处的语法:http://docs.octopusdeploy.com/display/OD/Variable+Substitution+Syntax#VariableSubstitutionSyntax-Repetition(查找重复标题)

      Write-Host "Deployment Steps:"
      #{each step in Octopus.Step}
          Write-Host "- StepName=#{step}; Status=#{step.Status.Code};"
      #{/each}
      

      示例输出

      部署步骤:

      • StepName=第一步;状态=成功;

      • StepName=ThisStep;状态=正在运行;

      • StepName=YetToBeRun;状态=待处理;

      【讨论】:

      • 上述语法只会发送单个步骤的状态。在我的场景中,我的工作有 10 个步骤,当我在电子邮件主题行中添加这 10 个步骤的状态代码时,主题行会非常混乱。感谢您的回复。
      • 如果你想要整体的工作状态;然后在电子邮件发送阶段,状态将是“正在运行”,我怀疑它没有你想要的那么有用!您不能在发送电子邮件之前简单地添加步骤的状态吗?如果没有,也许您需要澄清您的要求。
      • @Mohammed 我已经更新了我的答案以包含迭代选项......但不确定这会给你想要的东西,但它可能会帮助你
      猜你喜欢
      • 1970-01-01
      • 2015-10-05
      • 2021-02-19
      • 2018-02-14
      • 1970-01-01
      • 1970-01-01
      • 2017-12-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多