我正在尝试执行shell脚本,如果构建通过或在Jenkins中进行后期构建后失败。我没有在post build中看到这个选项来执行一些shell脚本,除了运行目标。
答案 0 :(得分:63)
使用Post build task插件非常轻松。
答案 1 :(得分: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
}
(我们的命令将最后一个稳定的构建日期和当前时间作为参数,以便它可以调查谁可能已经破坏了构建,但您可以以类似的方式运行您喜欢的任何命令)
答案 2 :(得分:5)
如果我正确地阅读您的问题,您希望在构建的后期构建操作部分中运行脚本。
在构建存档工件和发布测试结果后,我自己使用PostBuildScript Plugin来运行git clean -fxd
。我的Jenkins奴隶有SSD磁盘,所以我没有房间在工作区中保存生成的文件。
答案 3 :(得分:3)
您应该可以使用Batch Task plugin。
执行此操作替代方案也可以是Post build task插件。
答案 4 :(得分:1)
您必须将构建后的shell脚本设置为单独的Jenkins作业,并将其作为构建后步骤触发。看起来您需要使用Parameterized Trigger Plugin作为标准“构建其他项目”选项仅在触发构建成功时才有效。