Как заполнить значения параметров сборки Jenkins из URL в декларативном конвейере Jenkins - PullRequest
0 голосов
/ 15 января 2020

Как мне заполнить параметр выбора из URL? Я могу загружать и сохранять значения внутри переменной среды, но если я пытаюсь использовать ее, я получаю ошибку: если я заменяю choicesFoo на choicesURL в разделе параметров, я получаю ошибку.

Вот мой конвейер:

def choicesFoo = ['x','y']

pipeline{
    agent { 
        node { 
            label 'LinuxOpt'
        } 
    }
    environment{
        choicesUrl = sh(script: "curl http://example.com/foo.txt", returnStdout: true)
    }
     parameters {
        choice(name: 'CHOICE', choices: choicesFoo, description: 'Pick an option')
    }
    stages {
        stage('Build') {
            steps {
                sh 'echo run build'
                 sh "echo ${choicesUrl}"
            }
        }
    }
}

1 Ответ

1 голос
/ 15 января 2020

Вы можете попробовать подготовить choices перед объявлением конвейера, например, так:

def choicesUrl 

node('Prepare Choices') {
    stage('Get Choices') {
        choicesUrl = sh(
            script: "curl http://example.com/foo.txt", 
            returnStdout: true).trim()
    }
}


pipeline{
    agent { node { label 'LinuxOpt' } }
    parameters {
        choice(name: 'CHOICE', choices: choicesUrl, description: 'Pick an option')
    }
    stages {
        stage('Build') {
            steps {
                sh 'echo run build'
                sh "echo ${choicesUrl}"
            }
        }
    }
}
...