如何在Jenkins的流水线中添加构建后操作

10

以下是我的管道脚本

node(Slave01) {
currentBuild.displayName = "${URL_Name}"
}
stage 'Pt2ctf process'
node(Slave01) {
build job: 'Pt2ctf_16_7', parameters: [string(name: 'URL_Name', value: "${URL_name}"), string(name: 'Display_Name', value: "${Display_Name}")]
}
stage 'add_fields'
node(Slave01) {
build job: 'add_fields_16_7', parameters: [string(name: 'URL_Name', value: "${URL_Name}")]
}

以上的Groovy脚本将按顺序触发多个构建。完成序列后,我有另一个构建需要运行。我在管道作业配置中没有看到任何后期构建选项。

我们可以像下面这样添加几行吗:

post
node(Slave01){
build job: 'testing_build'
}

还有其他选择吗?请提出建议。


各位,有人可以建议一下吗? - Subrat Sahoo
2
可能是 https://dev59.com/x1oV5IYBdhLWcg3wIb34 的重复问题。 - Tidhar Klein Orbach
2个回答

6

如果您使用申明性流水线,可以在管道脚本中简单地添加post操作。该操作的详细解释请参考Pipeline syntax reference。


1
@Vadim Kotov 你能给我提供一小段代码吗? 另一个任务(例如:job2)应该在管道完成所有内部构建后运行。不应该并行执行任何操作。我已经尝试过了,但是我得到了这个错误:java.lang.NoSuchMethodError: No such DSL method 'post' found among steps - Subrat Sahoo
@Vadim Kotov 针对pipeline:java.lang.NoSuchMethodError: 找不到名为'pipeline'的DSL方法我正在使用“Pipeline配置作业” - Subrat Sahoo
@SubratSahoo,这里有一段代码片段:https://jenkins.io/doc/book/pipeline/syntax/#post。也许你犯了一些语法错误,所以才会出现错误? - Olia
我已经按照正确的步骤进行了操作,但这并不符合我的要求。当我进行后期构建时,它会针对我传递的每个参数运行。谢谢。 - Subrat Sahoo

4
您可以在流水线中添加后构建阶段,以添加后构建操作:

你可以在流水线中增加一个post build阶段,用于添加后构建操作:

stage 'post-build'
node(Slave01){
build job: 'testing_build'
}

您可以将此阶段用作以下用途:
try {
    //Stages to be included in build
    ...
} catch {
    ...
} finally {
    stage 'post-build'
    ...
}

3
我需要为流水线添加一个后构建步骤,而不是另一个后构建阶段。后构建的目的是触发流水线外的另一个作业。 - Subrat Sahoo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接