詹金斯;首次失败时执行脚本

时间:2017-11-29 19:13:11

标签: powershell jenkins plugins groovy build

我希望Jenkins在发生当前版本的“第一次失败”后执行Powershell脚本。 因此,在下一个后续的“失败”构建中可能不会触发该脚本。 只有当构建再次成功时,才能在第一次失败后再次触发powershell脚本。

我一直在groovy脚本中搜索,以确定第一次失败。但也许有人知道一个插件可以选择在“第一次失败”时执行脚本吗?

任何帮助表示感谢。

亲切的问候,

彼得

3 个答案:

答案 0 :(得分:0)

currentBuild对象指向上一个版本。当您的当前构建失败时,您可以使用currentBuild.previousBuild.result检查上一个构建的状态。如果成功,那么您知道这是第一次失败。我实际上没有尝试过YMMV。

答案 1 :(得分:0)

假设您可以使用curl(或类似名称),请尝试获取http.../jobname/lastSuccessfulBuild/buildNumberhttp.../jobname/lastFailedBuild/buildNumber的内容。如果lastSuccessfulBuild的结果大于lastFailedBuild,那么您在上次失败之前就已经取得了成功。

答案 2 :(得分:0)

我已执行以下设置:

  • 我在Windows Batch命令Build中启动了PowerShell。使用以下参数-BuildNr $ENV:BUILD_NUMBER
  • 在powershell中,我将计算以前的构建nr(简称-1 :))
  • 使用之前的构建版本,我从xml获得结果:

从PREVIOUS Jenkins工作中获得结果

$PreviousUrl         = "$($ProjectLink)/$($PreviousBuildNr)/api/xml"
[xml]$PreviousXML = Invoke-WebRequest $PreviousUrl -Method GET  -Headers 
$headers -UseBasicParsing
$PreviousResult = $PreviousXML.freeStyleBuild.result

从那时起,我可以在我的powershell脚本中进一步使用PreviousResult和(类似)currentResult