一尘不染

如何在Jenkins多分支管道项目中为职位设置职位属性?

jenkins

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

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

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

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

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

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


我的总体目标是尝试制作一个Jenkinsfile,该文件动态允许多分支项目中的所有基础作业由其相关的上游构建触发。

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

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

问题仅涉及第1步,而第2步正是我要达到的目标。


阅读 287

收藏
2020-07-25

共1个答案

一尘不染

步骤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语法(在任何作业中)->选择属性:设置作业属性。

声明性管道示例如下:

#!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文件中触发另一个项目。请参阅上面的帖子部分,以使用参数触发该操作。

请让我知道您是否需要更多信息。

2020-07-25