Ниже приведен фрагмент кода Jenkinsfile (сценарий конвейера) для выбора репозитория Git в режиме просмотра:
userInput = input(id: 'userInput',
message: 'Do you want to build?',
parameters: [
[$class: 'ChoiceParameterDefinition', choices: "repo_1\nNone", name: 'Env']
]
)
if (userInput.Env == "repo_1") {
print 'selected repo_1'
}
просит пользователя выбрать репозиторий и нажать Proceed
При нажатии на кнопку Proceed
выдает ошибку jenkins:
groovy.lang.MissingPropertyException: No such property: Env for class: java.lang.String
Ручная сборка разрешена только для repo_1
Остальные репозитории предполагают автоматическое срабатывание
Edit:
После внесения следующих изменений,
node('worker_node'){
def userIdCause = currentBuild.getBuildCauses('hudson.model.Cause$UserIdCause')
def manualBuild = userIdCause.size()
stage("Auth-build") {
timeout(2) {
if (manualBuild) {
userInput = input(id: 'userInput',
message: 'Please select the repository',
parameters: [
[$class: 'ChoiceParameterDefinition', choices: "repo_1\nNone", name: 'Env']
]
)
if (userInput == "None") {
error('Error output')
}
repositoryName = 'repo_1'
}else if( !manualBuild && (repositoryName == 'repo_1')){
error('error output')
}
}
}
}
Я не получаю пользовательский интерфейс после нажатия BuildNow
, мне пришлось выполнить следующий процесс:
1) Почему userInput.Env
выдает ошибку исключения отсутствующего свойства?
2) input()
api требуется минута для визуализации мастера ввода. Можем ли мы оптимизировать?