Как создать функцию в jenkinsfile для создания параметров - PullRequest
0 голосов
/ 25 марта 2020

Моя цель - собрать дюжину проектов, извлекая их код из 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')
...