Исходя из вывода, который вы разместили в комментарии, эта проблема:
sudo: sorry, you must have a tty to run sudo
Вариант 1 - решение visudo
(Это решение из OP):
Используйте visudo
, чтобы отредактировать файл sudoers
и закомментировать запись requiretty
Опция 2 - Решение плагинов Jenkins
Список функций плагина Publish Over SSH содержит следующий элемент:
Разрешить выполнение команды / сценария в псевдо-TTY
Вы можете включить это, добавив usePty: true
в блок sshTransfer
вашего издателя.Ваш шаг Jenkinsfile
должен выглядеть следующим образом:
stage('deploy'){
sshPublisher(publishers: [sshPublisherDesc(configName: 'fdpdeploy', transfers: [sshTransfer(excludes: '', execCommand: './deploy.sh', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: 'target', sourceFiles: 'target/fdp-0.0.1-SNAPSHOT.war', usePty: true)], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
}
Единственное отличие от вашего существующего шага - добавить , usePty: true
после sourceFiles: