每个分支用户轴

时间:2014-07-11 21:20:18

标签: git jenkins

假设我的分支master上有测试的用户轴:

  • TESTS = test_1,test_2,test_3

现在我创建了另一个分支feature并再添加一个测试:test_4。 当然我想在服务器上测试它。我不想直接修改jenkins上的项目 因为如果我有更多的分支,它就会变得容易出错。我正在寻找类似的东西 到.travis.yml配置文件。

更新

目前我正在使用matrix-project jenkins插件。这个插件允许我设置"用户自定义轴"测试类似:test_1test_2test_3但是对于所有项目整体来说(即Jenkins - >  MyProject - >配置)。现在我想仅为一个feature分支修改该轴(我想再向轴添加一个值:test_4)。我正在寻找允许我进行每个分支配置的插件(如.travis.yml,我已经提到过)。

3 个答案:

答案 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一样。