当前位置: 首页 > 面试题库 >

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

班泽语
2023-03-14
问题内容

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

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

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

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

服务器上的每个分支作业文件夹中都有一个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语法(在任何作业中)->选择属性:设置作业属性。

声明性管道示例如下:

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

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



 类似资料:
  • 我在Jenkins 2中有一个多分支管道作业,连接到GitHub存储库(此处可用)。GitHub存储库中的每个pull请求都会在Jenkins中创建一个新的“作业”,但是该作业会从pull请求编号中继承其名称(即作业被称为PR-1、PR-2等等),这在Jenkins上下文中是没有意义的。是否有可能(以及如何)配置job或Jenkinsfile来为每个pull请求添加一个作业描述?

  • 是否有人知道从文件中设置作业属性(特别是构建触发器)的正确方法?(多分支管道作业中的声明性管道脚本)。 为了清晰起见,我需要为多分支项目中的底层作业设置特定的构建触发器。我可以在GUI中配置总体多分支项目的触发器。 尝试过这里列出的方法:Jenkins多分支管道和指定上游项目 詹金斯:在上游更改时触发多分支管道 如何使用Jenkins管道属性步骤? 从v0开始,我就听到这样的错误。8我应该使用选项

  • 问题内容: 在职位描述中,您可以使用Html标签。我有类似的东西: 但似乎在某处被擦洗了。还有另一种方法吗?关于支持什么和不支持什么的任何文档? 问题答案: Jenkins允许您使用各种标记语言来编写职位描述;插件可以定义如何通过接口解析描述。 默认情况下,使用,它应用HTML 清除策略(来自OWASP AntiSamy Project )-Myspace 策略。 在Myspace策略中,您将看到

  • 问题内容: 我想获得所有上游作业,就像在控制台输出中一样: 我已经尝试使用以下命令进行groovy postbuild: 但是我只能得到“分配”,而不是“开始”工作。 我也尝试过 但这是空的… 有任何想法吗? 问题答案: 您已接近第一个解决方案。 实际上,您需要做的就是根据其类型对它的祖先进行迭代。 这是一个示例代码片段,可以帮助您入门: 您可能需要参考文档来处理所有类型:http : //jav

  • 摘要:当使用并行构建时,Groovy中的工作区路径与shell不同。如何从DSL或Groovy获取实际工作区? 细节: 我们的工作区是通过定义的。 我试图使用一个相对路径,简单地,在当前目录中打开该文件,该目录通常是工作区根目录。当运行为shell,它工作正常,我可以阅读没有任何问题。 但是使用Groovy: 请注意然后它将无法声明

  • 问题内容: 以下“执行系统Groovy脚本”构建任务将更新构建描述,以添加一个按钮,该按钮将提交另一个已参数化的Jenkins作业: 但是,单击“继续”按钮后,该请求将返回400 Bad Request。看起来是因为构建参数未正确传递(如果我从另一个作业中删除构建参数并且不传递参数,则一切正常)。 我不确定问题是否是由于引用错误或通过构建参数发送方式引起的。 问题答案: 您需要使用JSON。请参阅