Моя цель - собрать дюжину проектов, извлекая их код из git. Поскольку параметры git всех этих проектов похожи, представляется разумным создать функцию, минимизирующую дублирование кода.
def createGitParameter(projectName) {
return gitParameter (
name: "${projectName}_BRANCH_TAG",
description: "${projectName}",
useRepository: ".*${projectName}.git",
type: 'PT_BRANCH',
branchFilter: 'origin.*/(.*)',
defaultValue: 'master'
)
}
def createGitCheckout(projectName) {
checkout([
$class: 'GitSCM',
branches: [[name: getBinding().getVariable("params.${projectName}_BRANCH_TAG}")]],
doGenerateSubmoduleConfigurations: false,
extensions: [],
gitTool: 'Default',
submoduleCfg: [],
userRemoteConfigs: [[
url: "git@bitbucket.org:myCompany/${projectName}.git",
credentialsId: 'ssh-my-credential'
]]
])
}
pipeline {
agent any
parameters {
createGitParameter('project01')
createGitParameter('project02')
}
stages {
stage('Build') {
steps {
createGitCheckout('project01')
createGitCheckout('project02')
}
}
}
}
Проблема в том, что Дженкинс не распознает это как параметр:
WorkflowScript: 31: Invalid parameter type "createGitParameter". Valid parameter types: [booleanParam, choice, credentials, file, gitParameter, text, password, run, string] @ line 31, column 3.
createGitParameter('project01')