【问题标题】:How to make prestep system groovy script to interrupt jenkins build and set it to SUCCESS?如何制作 prestep system groovy 脚本来中断 jenkins 构建并将其设置为 SUCCESS?
【发布时间】:2012-07-05 13:03:48
【问题描述】:

假设我在 jenkins/hudson 有一个 maven2/3 项目,之前我在对应的 config.xml 文件中配置的 maven 项目上运行一些目标,我想运行一个系统 groovy 脚本( ref. system groovy plugin) 在 prestep 期间中断整个作业并在满足某些条件时将其设置为 SUCCESS (例如说我在前一个作业的日志文件中找到了一些东西)。 我不想让 MAVEN 开始执行目标

我试过了

import hudson.model.*
def thr = Thread.currentThread()
def build = thr?.executable
build.executor.interrupt(hudson.model.Result.SUCCESS)
out.print "HELLO"

但是什么都没有发生,甚至“HELLO”也打印在日志中。但随后构建被中止。

Parsing POMs
Discovered a new module ...
Modules changed, recalculating dependency graph
...
...jdk1.6.0_22/bin/java -Xmx512m -cp ...
<===[JENKINS REMOTING CAPACITY]===>Build was aborted

感谢您的宝贵时间。

【问题讨论】:

    标签: groovy continuous-integration hudson jenkins


    【解决方案1】:

    我不完全理解你想要什么,因为你在这里描述了一些解决方案,而不是你的确切问题。我知道三个插件,它们也可能对您的问题有用:

    • Fail the build 插件可让您设置作业结果,并停止进一步处理。可以设置任何状态,包括成功。
    • Conditional build step 插件允许您为其子构建步骤定义条件。如果条件满足,孩子就会跑。
    • m2 extra build steps - 让您在 jenkins 的 maven 作业中运行 maven 构建之前或之后的构建步骤。注意,最近这个插件是jenkins核心的一部分。

    所以基本思想是您可以在工作中添加条件构建步骤作为预构建步骤,而子步骤可能是一个失败的构建实例。见下图:

    【讨论】:

    • 这似乎不起作用,因为构建状态 SUCCESS 不会跳过 Maven 构建部分。它仍在执行。
    • 嗯。早些时候它停止了这项工作。也许这是构建插件失败的变化。感谢您的信息。
    猜你喜欢
    • 1970-01-01
    • 2018-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-16
    • 2018-07-17
    相关资源
    最近更新 更多