在Jenkins中进行后期构建后执行Shell脚本

kfo*_*rim 77 shell jenkins jenkins-plugins

我试图执行一个shell脚本,如果构建通过或在Jenkins后构建后失败.我在后期构建中看不到这个选项来执行一些shell脚本,除了运行目标.

Dan*_*son 63

使用Post build任务插件很容易完成.

Jenkins  -

  • 我建议使用[PostBuildScript插件](https://wiki.jenkins-ci.org/display/JENKINS/PostBuildScript+Plugin)来简单地运行脚本.如果您不需要条件化日志输出,它会更简单,更健壮.例如,它允许在构建后操作中运行任何构建步骤. (45认同)
  • 另请注意,Post Build Task插件将整个控制台输出放入内存以进行条件测试...如果有数百个作业产生大量输出,则会占用大量内存...我们的jenkins master刚刚崩溃到期这个插件...... (9认同)

cro*_*ers 9

您还可以使用Groovy Post Build运行任意命令- 这将使您可以在运行时进行大量控制等等.在构建失败或不稳定的情况下,我们使用它来运行"责备手指"shell脚本.

if (manager.build.result.isWorseThan(hudson.model.Result.SUCCESS)) {
  item = hudson.model.Hudson.instance.getItem("PROJECTNAMEHERE")
  lastStableBuild = item.getLastStableBuild()
  lastStableDate = lastStableBuild.getTime()
  formattedLastStableDate = lastStableDate.format("MM/dd/yyyy h:mm:ss a")
  now = new Date()
  formattedNow = now.format("MM/dd/yyyy h:mm:ss a")
  command = ['/appframe/jenkins/appframework/fob.ksh', "${formattedLastStableDate}", "${formattedNow}"]
  manager.listener.logger.println "FOB Command: ${command}"
  manager.listener.logger.println command.execute().text
}
Run Code Online (Sandbox Code Playgroud)

(我们的命令将最后一个稳定的构建日期和当前时间作为参数,因此它可以调查谁可能已经破坏了构建,但您可以以类似的方式运行您喜欢的任何命令)


sti*_*sti 5

如果我正确地阅读您的问题,您希望在构建的后期构建操作部分中运行脚本.

我自己用的PostBuildScript插件运行git clean -fxd构建已归档后的文物和公布的测试结果.我的Jenkins奴隶有SSD磁盘,所以我没有房间保持工作区中生成的文件.