Использование переключателя по параметру в конвейере Jenkins - PullRequest
0 голосов
/ 05 августа 2020

Я пытаюсь определить, куда загружать артефакты сборки, покупая с помощью переключателя, который зависит от параметра.

pipeline {
    agent any
    parameters{

    // Some other params..

    choice(name: 'DeployTo', choices: ['Diawi', 'GoogleDrive', 'None'], description: 'Whenever to upload build to diawi or google drive. Set to None if you do not want to upload build')

    }
    stages {

        // Some other stages..

        stage('Deploy') {
            steps {
                sh "echo 'Deploy build (${BUILD_NUMBER}) to ${params.DeployTo}'"
                switch(params.DeployTo) {
                    case "Diawi":
                    sh """
                        node ${params.DiawiUploadScriptPath} ${getBuildPath()} ${params.DiawiUploadToken}
                    """
                    break
                    case "GoogleDrive":
                    sh """
                        node ${params.GDriveUploadScriptPath} ${params.ProjectName} ${BUILD_NUMBER} ${getBuildPath()}
                    """
                    break
                    default:
                    break
                }
            }
        }
    }
}

Но получаю ошибку

WorkflowScript: 43: Expected a step @ line 43, column 5.
                switch(params.DeployTo) {

Итак, как выбрать шаги с помощью оператора switch и параметров строки / выбора?

Спасибо!

1 Ответ

0 голосов
/ 05 августа 2020

Вы не можете использовать switch или любой другой поток управления groovy в декларативном конвейере . Для этого вам нужно вместо этого использовать скриптовые конвейеры .

В декларативной пиелине вы можете использовать не более when шаг для простой логики потока управления c или оберните конвейер со сценарием в шаг script.

...