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

And*_*yre 5 jenkins jenkins-pipeline multibranch-pipeline

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

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

尝试过这里列出的方法: Jenkins 多分支管道和指定上游项目

Jenkins:在上游变化时触发多分支管道

如何使用 Jenkins Pipeline 属性步骤?

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

但是我看不到那里列出的任何允许在 options 指令中设置构建触发器的步骤。

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

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


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

第 1 步:弄清楚如何设置属性:)

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

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

小智 5

第 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.
Run Code Online (Sandbox Code Playgroud)

此外,您可以找到可以使用“管道语法”中的属性选项定义的所有属性,该选项在每个作业中都可用。请导航到 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
}
}
}
Run Code Online (Sandbox Code Playgroud)

第 2 步:您可以使用 'build' 命令从 Jenkins 文件中触发另一个项目。请参阅上面的帖子部分以使用参数触发相同的内容。

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