Объединение параметров в Jenkins Job DSL

У меня есть pipeJob, определенный в Job DSL.

Он запускает конвейер/Jenkinsfile, который проверяется из git.

Я хочу, чтобы люди могли вводить ветку git, из которой можно вытащить Jenkinsfile - (т.е. в stringParam) - или, если они не ввели ветку, по умолчанию использовать ветку, которую я установил в selectionParam ( то есть это будет «разработка» или «мастер»)

Это не работает:

pipelineJob('some-job') {
  parameters {
    choiceParam('gitCreds', [gitCreds], 'Stash credential')
    stringParam('gitUrl', 'https://some-repo.git', 'URL for the Stash repo')
    stringParam('gitBranchOverride', '', 'Type in some feature branch here if you wish')
    choiceParam('gitBranch', ['develop'], '...otherwise the job should default to a branch here')
 }
  definition {
    cpsScm {
      scm {
        git {
          branch('$gitBranchOverride' ?: '$gitBranch')
          extensions {
            wipeOutWorkspace()
          }
          remote {
            credentials(gitCreds)
            url ('$gitUrl')
          }
        }
      }
    }
  }
}

Это работает, если я ввожу значение в gitBranchOverride, но если я этого не делаю, кажется, что он перечисляет все ветки и проверяет случайную, т.е. не учитывает значение в gitBranch


person Jaime    schedule 15.10.2019    source источник


Ответы (1)


Не знаю, правильно ли я понимаю вашу проблему, но вот как у меня есть код для создания конвейерных заданий:

def git_branch = getBinding().getVariable('GIT_BRANCH')
def gitrepo = "ssh://[email protected]/somerepo.git"
def credential_id = "awesomecredentials"
pipelineJob("MyAwesomeJob") {
    description("""This job is awesome\n\n__input__:\n* My parameter\n* Branch\n\n__branch__: ${git_branch}""")
    parameters {
        stringParam(name='MyParameter', description='AwesomeParameterHere')
        stringParam('branch', defaultValue='origin/develop', description='Branch to build')
    }
    definition {
        cpsScm {
            scm {
                git {
                    branch('$branch')
                    remote {
                        url("gitrepo")
                        credentials(credential_id)
                    }
                }
                scriptPath("jenkins/my_awesome_pipeline/Jenkinsfile")
            }
        }
    }
}

При этом моя работа создается с параметром для ветки с выбранным значением по умолчанию.

person Ikaro0    schedule 21.03.2020