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

2023-12-24

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

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

已尝试过此处列出的方法:Jenkins 多分支管道并指定上游项目 https://stackoverflow.com/questions/38448130/jenkins-multi-branch-pipeline-and-specifying-upstream-projects

Jenkins:在上游更改上触发多分支管道 https://stackoverflow.com/questions/36825103/jenkins-trigger-multi-branch-pipeline-on-upstream-change

如何使用 Jenkins Pipeline 属性步骤? https://stackoverflow.com/questions/35370810/how-do-i-use-jenkins-pipeline-properties-step?rq=1

我收到错误消息,说从 v0.8 开始我应该使用选项步骤:https://jenkins.io/doc/book/pipeline/syntax/#declarative-pipeline 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 语法(在任何作业中)--> 选择 proeprties:设置作业 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 文件中触发另一个项目。请参阅上面的帖子部分以使用参数触发相同的操作。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐