如何为Jenkins多分支管道项目内的作业设置作业属性?

5

有人知道在Jenkinsfile中设置作业属性的正确方法吗?尤其是构建触发器。(声明式流水线脚本,在多分支管道作业中)。

为了清晰起见,我需要为多分支项目中的基础作业设置特定的构建触发器。对于总体多分支项目的触发器,我可以在GUI中进行配置。

已尝试此处列出的方法: Jenkins多分支管道和指定上游项目

Jenkins:在上游更改时触发多分支管道

如何使用Jenkins流水线属性步骤?

我收到错误消息,说从v0.8开始应该使用options步骤: https://jenkins.io/doc/book/pipeline/syntax/#declarative-pipeline

但是我看不到任何步骤列在那里,让我可以在选项指令中设置构建触发器。
服务器上每个分支作业文件夹中都有一个config.xml,但我认为当我再次运行作业时,这将被覆盖,因为它们位于多分支作业下面。
还有一个选项可以将不同的属性传递到不同的分支中(对分支进行例外处理),但我在那里看到的唯一选项是抑制SCM提交。
我的总体目标是尝试创建一个单一的Jenkinsfile,动态地允许多分支项目中所有底层作业通过其依赖的上游构建来触发。
步骤1:首先弄清楚如何设置属性:)
步骤2:动态填充每个构建的上游依赖属性,这意味着它们在某些构建完成时会被启动。
问题仅涉及步骤1,步骤2只是我想要达到的目标。
1个回答

6
步骤1:有许多属性可以定义。您特别要寻找的是下面列出的属性:
options{timestamps()}  --> Adds timestamp to console output
triggers{pollSCM('H/15 * * * *')} --> Polling SCM 
triggers{cron('H/15 * * * *')} --> Trigger build every 15 minutes. Similarly you can set the build trigger to any specific time to build it periodically.

此外,您可以在“Pipeline Syntax”中找到可使用属性选项定义的所有属性,并且该选项在每个作业中都可用。请导航到任何一个作业的Pipeline syntax-->选择properties: set job properties。
一个示例性的声明性Pipeline可能如下所示:
#!groovy
pipeline{
agent any
options{timestamps()}
triggers{pollSCM('H/15 * * * *')}
parameters{
 ..........
}
environment{
............
}
stages{
stage{
steps{
..............
}
}
}
post{
always{
build job: '/foldername/job1', parameters: [string(name: 'parameter1', value: "${params.parameter1}")] , propagate: false
}
}
}

步骤2:您可以使用“build”命令从Jenkins文件内部触发另一个项目。请参阅上面的“post section”以带参数触发相同的操作。

如果需要更多信息,请告知。


非常感谢!triggers{}指令就是我一直在寻找的。我已经成功地配置了上游依赖项,如下所示:triggers { upstream(upstreamProjects: "pipeline-multi/trunk%2F/project_X", threshold: hudson.model.Result.SUCCESS) } - Andrew McIntyre
看起来很不错。有没有办法知道有哪些可用选项(类似于管道语法中的属性)? - jhagege

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