詹金斯散装或多种触发释放Maven插件(Jenkins Bulk or Multi trigger

2019-10-17 15:04发布

我在詹金斯多个项目需要大容量触发行家发布插件。 它们不依赖对方,其中一些有模块。

在詹金斯您可以通过一个释放他们每个人一个,但是我正在寻找所有在一次触发并可能与版本号相同标记所有的方法。

Project A 
Project B 
... 
Project N

Maven Release (some select query) 
Next Snapshot version (1.1.0-SNAPSHOT)
Next release version (1.0.0)

然后项目A..N将与单个建造触发..类似的东西可被释放?

我知道的多和大宗插件,但他们似乎没有建立maven的释放。

/谢谢

Answer 1:

我一直在寻找下一个..似乎帮助.. https://dev.c-ware.de/confluence/display/PUBLIC/Developing+a+Jenkins+Plugin+for+the+Maven+Release+Plugin



Answer 2:

按照这个答案,你可以建立的就业机会和参数列表,然后并行运行的作业:

stage('testing') {
  def jobs = [:]

  [1,2,3,4,5].each{
    i -> jobs["Test${i}"] = {
        build job: 'Test', 
        parameters: [string(name: 'theparam', value: "${i}")],
        quietPeriod: 2
    }
  }
  parallel jobs
}

在那里,它是利用数字为名称,但可以使用任意名称。

你可以变得更加复杂和下载的作业发布到文件列表,并运行该文件中指定的工作:

stage ('download release spec') {
    dir('${WORKSPACE}') {
        sh 'curl -LO https://my.server.com/path/$MASTER_RELEASE/jobs.txt'
    }
}
stage('run jobs in spec') {
    dir('${WORKSPACE}') {
        // read our one line of jobs to run and split it into an array of jobs to run
        def fileData = readFile('jobs.txt')
        def names = fileData.tokenize( ',' )

        // short hand for creating an empty map
        def jobs = [:]

        // https://stackoverflow.com/a/51306175/329496
        names.each{
            i -> jobs["${i}"] = {
                println "parallel build job: $i"
                build job: "${i}"
            }
        }
        parallel jobs
    }
} 

第一代码片段展示了如何将参数传递给构建。 Groovy中对合并列表,如一些隐藏的功能转置 ,可以很容易地合并了“jobs.txt”和“params.txt”成,你可以运行一个列表.each到提取作业名称及其参数。 你可以把一些SED,AWK或Python进入第一阶段计算从结构化文档发布的所有文件。 这样,您的构建可以下载一个很好的格式化稿和Munge时间是成一束的工作和释放参数运行。



文章来源: Jenkins Bulk or Multi trigger for release maven plugin