无法在循环中创建 freeStyleJob 作业 - 没有方法签名:script.freeStyleJob() 适用于参数类型:整数、闭包

Cannot create freeStyleJob jobs in a loop - No signature of method: script.freeStyleJob() is applicable for argument types: Integer, Closure

我正在尝试为 bitbucket 存储库中给出的许多分支创建许多 Jenkins 作业。 因此,目前我开发了一个 groovy 脚本来检索所有分支。 请注意,我正在使用 使用提供的 DSL 脚本,来做到这一点:

def project = "Test-Jobs"
def command = "git ls-remote -h $GIT_URL"

def proc = command.execute()
proc.waitFor()             

// trouver toutes les branches

def branches = proc.in.text.readLines().collect { 
    it.replaceAll(/[a-z0-9]*\trefs\/heads\//, '') 
}

println branches

这个return:

[feature/655, feature/BPDC-655, master, release/1.0.0, release/1.2.0, release/2.4.0]

然后,我尝试使用以下代码为每个分支创建一个名称作业:

def jobNames = branches.collect { it + "_test" }
println jobNames

这也很好。但是,我的问题是关于为每个分支创建 freeStyleJob :

for (ii = 0; ii < jobNames.size(); ii++)
{    
    
  freeStyleJob(ii) {
    logRotator(-1, 10)
    steps {
        shell ("echo first programm")
    }
        }
    } 

但这根本行不通。而且,我收到此错误:

ERROR: (script, line 26) No signature of method: script.freeStyleJob() is applicable for argument types: (java.lang.Integer, script$_run_closure3) values: [0, script$_run_closure3@4e08608d] Possible solutions: freeStyleJob(java.lang.String), freeStyleJob(java.lang.String, groovy.lang.Closure) Finished: FAILURE

事实上,我多次尝试遍历 jobNames 列表对象,但通常都会出错。谢谢你的帮助。

freeStyleJob 块需要一个字符串变量。 ii 保留一个整数。您必须将其转换为字符串。几个选项:

freeStyleJob(ii as String) {
freeStyleJob(Integer.toString(ii)) {
freeStyleJob("${ii}") {