假设我的分支master
上有测试的用户轴:
现在我创建了另一个分支feature
并再添加一个测试:test_4
。
当然我想在服务器上测试它。我不想直接修改jenkins上的项目
因为如果我有更多的分支,它就会变得容易出错。我正在寻找类似的东西
到.travis.yml配置文件。
目前我正在使用matrix-project jenkins插件。这个插件允许我设置"用户自定义轴"测试类似:test_1
,test_2
,test_3
但是对于所有项目整体来说(即Jenkins - >
MyProject - >配置)。现在我想仅为一个feature
分支修改该轴(我想再向轴添加一个值:test_4
)。我正在寻找允许我进行每个分支配置的插件(如.travis.yml,我已经提到过)。
答案 0 :(得分:2)
您可以使用job-dsl插件重建项目。这个插件现在supports matrix jobs directly
您需要的是一个单独的作业,具有(groovy)job-dsl步骤来重建矩阵。如果使用模板作业,则所有现有配置都可以驻留在那里。就个人而言,我喜欢将它全部保留在job-dsl步骤中,因为逻辑可以在版本控制之下。
def branches = ['a','b','c']
job(type: Matrix) {
name ('existingJob')
using ('myTemplateJob')
axes {
label('label', branches)
}
}
我会使用JsonSlurper来加载git branches
EDIT 我把这个脚本放在一起来演示在job-dsl repo
中构建(3)分支的轴def gitURL = new URL("https://api.github.com/repos/jenkinsci/job-dsl-plugin/branches")
def branches = new groovy.json.JsonSlurper().parse(gitURL.newReader())
def names = []
branches.each{ names << it.name }
job(type: Matrix) {
name 'git-matrix'
description 'Matrix Job of my git repo'
axes{
text('branch', names )
}
}
答案 1 :(得分:1)
我找到的最接近的解决方案是literate plugin。
例如,分支master
:
# Build
echo "This is the master branch"
如果您创建分支feature-1
,则可以更改消息:
# Build
echo "this is a feature-1 branch"
但不幸的是,AFAIK没有用户定义的自定义变量。
此功能为planned。 尼斯!
答案 2 :(得分:1)
recipe builder插件可让您添加.jenkins.yml
文件,就像使用Jenkins一样。