Jenkins批量或多触发器发布maven插件
我需要在jenkins中为多个项目批量触发maven发布插件。它们互不依赖,其中一些具有模块 在jenkins中,您可以一个接一个地发布它们,但我正在寻找一种方法来一次性触发所有事件,并可能使用相同的发布号标记所有事件 例如 然后项目A..N将与单个构建触发器一起发布。。有类似的吗 我知道multi-and-bulk插件,但他们似乎没有构建maven版本Jenkins批量或多触发器发布maven插件,maven,jenkins,release-management,Maven,Jenkins,Release Management,我需要在jenkins中为多个项目批量触发maven发布插件。它们互不依赖,其中一些具有模块 在jenkins中,您可以一个接一个地发布它们,但我正在寻找一种方法来一次性触发所有事件,并可能使用相同的发布号标记所有事件 例如 然后项目A..N将与单个构建触发器一起发布。。有类似的吗 我知道multi-and-bulk插件,但他们似乎没有构建maven版本 /谢谢我正在看下面的一个。。似乎有帮助。。 我正在看下面的一个。。似乎有帮助。。 根据可以建立作业和参数列表,然后并行运行作业: stage(
/谢谢我正在看下面的一个。。似乎有帮助。。
我正在看下面的一个。。似乎有帮助。。 根据可以建立作业和参数列表,然后并行运行作业:
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合并到一个可以运行的列表中。每个函数都可以提取作业名称及其参数。您可以将一些sed、awk或python放入第一阶段,以计算结构化发布文档中的所有文件。这样,您的构建就可以下载一个格式良好的发布文档,并将其转换成一堆作业和发布参数来运行 根据可以构建作业和参数列表,然后并行运行作业:
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合并到一个可以运行的列表中。每个函数都可以提取作业名称及其参数。您可以将一些sed、awk或python放入第一阶段,以计算结构化发布文档中的所有文件。这样,您的构建就可以下载一个格式良好的发布文档,并将其转换成一堆作业和发布参数来运行