Как новичок в Jenkins, я играю вокруг, чтобы узнать, как использовать конвейеры Jenkins. Мой код написан на html и node.js. На этапе развертывания Jenkins в декларативном конвейере я копирую все необходимые файлы со сборочной машины (ubuntu) на целевую машину (ubuntu), используя плагин Jenkins «Publi sh over S SH». Работает все хорошо, также запускает мое приложение узла ("node express_01. js &" в сценарии оболочки), используя s sh Publisher sshTransfer execCommand. Но когда я запускаю http-Server (http-server -s -p 3131. &), Выполнение конвейера Jenkin зависает. Я испробовал все варианты, например, запустить http-сервер в сценарии Shell или даже на отдельной стадии Jenkins. Неважно, что и куда я положил, запустил http-сервер, Дженкинс зависает. Понятия не имею, что такого особенного в http-сервере и почему он вызывает зависание конвейера Дженкинса.
Здесь фрагмент кода конвейера, в котором запущен http-сервер.
stage('deploy') {
steps {
sshPublisher(
continueOnError: false,
failOnError: true,
publishers: [
sshPublisherDesc(
configName: "DeployOnEndor",
verbose: true,
transfers: [
sshTransfer( // stop all running http-server and express_01 node.js services with a sh script first
sourceFiles: "build/AAProdDeployStopServices.sh",
execCommand: "cd AngryAlpacaProd/build; chmod +x AAProdDeployStopServices.sh; ./AAProdDeployStopServices.sh"
),
sshTransfer( // then clean up the target production directories
execCommand: "rm -r AngryAlpacaProd/*"
),
sshTransfer( // then copy over all executable files and the service restart sh script and run it
sourceFiles: "webpages/**/*, node/**/*, build/AAProdDeployStartServices.sh"
),
sshTransfer( // make the (node server) start services script executable
execCommand: "chmod +x AngryAlpacaProd/build/AAProdDeployStartServices.sh"
),
sshTransfer( // run the (node server) start up process
execCommand: "./AngryAlpacaProd/build/AAProdDeployStartServices.sh"
)
]
)
]
)
}
}
stage('http-server restart') {
steps {
sshPublisher(
continueOnError: false,
failOnError: true,
publishers: [
sshPublisherDesc(
configName: "DeployOnEndor",
verbose: true,
transfers: [
sshTransfer(
execCommand: "http-server -s -p 3131 AngryAlpacaProd/webpages &"
)
]
)
]
)
}
}
Стадия «развертывание» работает нормально, однако этап «Перезапуск http-сервера» бесконечно зависает после успешного запуска http-сервера на целевой машине. Я должен прервать выполнение конвейера вручную.