84

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

4

5 回答 5

69

使用后期构建任务插件很容易完成。

詹金斯 -

于 2012-10-11T11:03:45.600 回答
10

您还可以使用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
}

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

于 2012-10-03T16:23:51.960 回答
6

如果我没看错你的问题,你想在构建的构建后操作部分运行一个脚本。

我自己使用PostBuildScript 插件git clean -fxd在构建归档工件并发布测试结果后运行。我的 Jenkins 奴隶有 SSD 磁盘,所以我没有房间在工作区中保存生成的文件。

于 2012-06-26T18:27:48.617 回答
3

您应该可以使用Batch Task 插件来做到这一点。

  1. 在项目中创建批处理任务。
  2. 添加选择同一项目的“调用批处理任务”构建后选项。

替代方案也可以是Post build task插件。

于 2012-10-03T09:43:55.083 回答
2

您必须将构建后的 shell 脚本设置为单独的 Jenkins 作业,并将其作为构建后步骤触发。看起来您需要使用参数化触发器插件,因为标准的“构建其他项目”选项仅在您的触发构建成功时才有效。

于 2012-06-22T17:02:34.937 回答