2014-09-25 54 views
4

作业dsl是否有办法配置postBuildSteps,只有在构建成功时才能执行Maven作业。我看到有postSuccessfulBuildSteps只适用于发布工作。作业DSL - 如何配置postBuildSteps Maven只有在构建成功时才启动

+0

你实际上是说要动态地重新配置工作,而它运行?你想运行“maven”步骤,如果成功触发dsl添加随后运行的后续步骤? – 2015-02-17 11:10:11

+0

没有。詹金斯只有在构建成功的情况下才提供后期构建操作的方法 – Pushkar 2015-02-24 18:09:02

+0

好吧我想我明白了;你想用Job-DSL创建一个PostBuildAction的maven作业。 PostBuildAction部分必须配置为仅在maven步骤成功时才运行。 – 2015-02-24 23:15:54

回答

4

您必须使用“配置”块“定制” <runPostStepsIfResult>设置追加到config.xml中

这个工作对我来说:如果你需要添加XML

job(type: Maven) { 
    name('MyMavenJob') 
    goals('install') 

    preBuildSteps { 
     shell('#!/bin/bash\n' + 
       'echo "PRE BUILD SCRIPT"\n' + 
       'env | sort\n' + 
       'echo "PRE BUILD END"\n') 
    } 

    postBuildSteps { 
     shell('#!/bin/bash\n' + 
       'echo "POST BUILD SCRIPT"\n' + 
       'env | sort\n' + 
       'echo "POST BUILD END"\n') 
    } 

    // Append <runPostStepsIfResult> at the end of the xml 
    // (which will be just after the closing </postbuilders> tag) 
    // "it" is a groovy.util.Node representing the 
    // root <project> element of config.xml. 
    configure { it << 
     'runPostStepsIfResult' { 
      name('SUCCESS') 
     } 
    } 
} 

一般来说其不受Job DSL支持,您可以通过在Jenkins中手动配置作业来查找所需的内容,然后在Jenkins-主磁盘上查看结果​​3210。这通常位于${JENKINS_HOME}/jobs/job-name/config.xml

http://job-dsl.herokuapp.com/作业-DSL操场是测试修改,直到你得到它匹配手动设置什么时候做詹金斯在作业/作业名称/ config.xml文件的东西有用的地方。

+1

这很奇怪,但它不适用于'postBuilders',但开始使用'postbuilders'(小写)。我在jenkins-1.596.2 – 2015-04-02 16:20:39

+0

@Slava上测试过它你说得对,应该是小写,我也是1.596.2。 我注意到“Run only if build succeeded”无线电不再设置,“runPostStepsIfResult”块实际上应该在标签之后附加,而不是在它之后。我已经相应地修改了这个例子。 – 2015-04-11 12:58:17

1

这工作:

postBuildSteps("SUCCESS") { 
    ... 
} 
+0

这是2017年的正确答案。 – 2017-10-16 13:06:52

相关问题