有没有人知道在Jenkinsfile中设置作业属性的正确方法,特别是构建触发器? (声明性管道脚本,在多分支管道作业中)。
为了清楚起见,我需要为multibranch项目中的基础作业设置特定的构建触发器。我可以在GUI中配置总体多分支项目的触发器。
尝试过此处列出的方法: Jenkins multi-branch pipeline and specifying upstream projects
Jenkins: Trigger Multi-branch pipeline on upstream change
How do I use Jenkins Pipeline properties step?
我收到错误,说自从v0.8起我应该使用选项步骤: https://jenkins.io/doc/book/pipeline/syntax/#declarative-pipeline
但我无法看到其中列出的任何步骤允许在options指令中设置构建触发器。
服务器上的每个分支作业文件夹中都有一个config.xml,但我认为当我再次运行作业时,它会被覆盖,因为它们位于多分支作业下。
还有一个选项可以将不同的属性传递到不同的分支(为分支创建例外),但我看到的唯一选项是禁止SCM提交。
我的总体目标是尝试制作一个动态允许multibranch项目中所有底层作业的Jenkins文件,它们依赖于上游构建。
步骤1:完全了解如何设置属性:)
步骤2:使用上游依赖项属性动态填充每个构建,这意味着在某些构建完成时它们会被启动。
问题只涉及第1步,第2步就是我要去的地方。
答案 0 :(得分: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.
此外,您可以使用“管道语法”中的属性选项找到可以定义的所有属性。每个工作都可以使用。请naviagte到PIpeline语法(在任何工作中) - >选择proeprties:设置工作原则。
示例声明性管道可以如下:
#!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文件中触发另一个项目。命令。请参阅上面的帖子部分以触发相同的参数。
如果您需要更多信息,请告诉我。