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

How to set job properties for jobs within a Jenkins multi-branch pipeline project?

有谁知道从 Jenkinsfile 中设置作业属性(特别是构建触发器)的正确方法? (声明性管道脚本,在多分支管道作业中)。

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

尝试过此处列出的方法:

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

但我看不到任何允许在选项指令中设置构建触发器的步骤。

服务器上的每个分支作业文件夹中都有一个 config.xml,但我认为当我再次 运行 作业时这将被覆盖,因为它们位于多分支作业下.

还有一个选项可以将不同的属性传递到不同的分支(为分支设置例外),但我看到的唯一选项是抑制 SCM 提交。


我的总体目标是尝试制作一个 Jenkinsfile,动态地允许多分支项目中的所有底层作业由它们的依赖上游构建触发。

第 1 步:了解如何设置属性:)

第 2 步:使用上游依赖项属性动态填充每个构建,这意味着它们会在某些构建完成时启动。

问题仅涉及第 1 步,第 2 步正是我想要到达的地方。

第 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 语法(在任何作业中)--> select proeprties: set job proerpties.

声明性管道示例如下:

#!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 部分来触发相同的参数。

如果您需要更多信息,请告诉我。