Jenkins声明性管道参数

时间:2017-03-23 18:45:19

标签: jenkins jenkins-plugins jenkins-pipeline

有没有办法从组织文件夹而不是作业级别或全局级别将参数传递给Jenkins文件?

基本上我要做的就是有一个Jenkins文件可以处理我需要的任何情况,并且有多个组织文件夹可以发送参数。所以基本上我可以有一个组织文件夹来扫描和抓取所有的功能分支,当我运行其中一个作业时,它将它们合并开发。另一个抓住所有开发分支的人,当我运行其中一个工作时,它只是构建它们。等

我需要一些方法将参数传递给我的Jenkins文件来说"嘿我是这个文件夹,这就是你应该做的事情"。我无法找到办法。我想过制作多个Jenkins文件,但知道在每个回购邮件中放置哪一个会很困惑。我会更改Jenkinsfiles的名称,因此明显使用哪一个,但是我得到的唯一选项是" Project Recognizer"在配置中是" Pipeline Jenkinsfile"所以我不知道如何更改名称,组织文件夹仍然可以识别它。

我有什么遗失的东西吗?有没有办法从文件夹而不是全局级别向我的Jenkinsfile发送参数?或者是否有其他方法可以解决我的问题,并能够告诉我的Jenkinsfile该怎么做,取决于它在Jenkins内部的组织文件夹?

1 个答案:

答案 0 :(得分:1)

  

或者是否有其他方法可以解决我的问题并能够告诉我的Jenkins文件取决于Jenkins内部的组织文件夹该做什么?

检查构建组织文件夹作业的一种简单方法是从env.JOB_NAME参数解析它。例如:

作业层次结构:

feature/job1
feature/job2
production/job1
production/job2

使Jenkins Pipeline能够执行不同的功能,无论它们是在功能还是生产组织中:

def topFolder = env.JOB_NAME.split('/')[0]

// In code somewhere else:
if (topFolder == 'feature') {
    doSomething()
} else if (topFolder == 'production') {
    doOther()
}