java - 从 Jenkins Scripted Pipeline 启动多个 jars
问题描述
我正在尝试在 Jeknins 中针对两个不同的 jar 运行一些集成测试。问题是我想从 Jenkis 脚本中操作 jars 的启动/停止,但我不知道具体如何。
目前我有这样的事情:
stage('Start ZZ&ZZT') {
dir('workingdir') {
sh 'java -jar zenzefiT.jar'
sh 'java -jar zenzefi.jar'
}
}
当第一个罐子启动然后挂起时,这不能正常工作。如果我做这样的事情,
stage('Start ZZ&ZZT') {
dir('workingdir') {
sh 'java -jar zenzefiT.jar &'
sh 'java -jar zenzefi.jar &'
}
}
罐子没有启动。
我想要一个启动 jars 的解决方案(可能就像等待 jars 正确启动然后继续),有另一个阶段我可以运行一些测试然后停止 jars(这可以通过我的端口终止进程来完成猜测)。我也尝试在机器上使用 shell 脚本。
请帮忙,谢谢。
解决方案
已经为感兴趣的人找到了解决方案。还添加了一项检查以确保应用程序正确启动。
stage('Start ZZ&ZZT') {
dir('workingdir') {
withEnv(['JENKINS_NODE_COOKIE=dontKill']) {
sh 'java -jar jar1.jar &'
sh 'java -jar jar2.jar &'
}
def isZZTrunning = sh(returnStatus:true, script: 'sudo lsof -t -i:62000')
while(isZZTrunning == 1) {
isZZTrunning = sh(returnStatus:true, script: 'sudo lsof -t -i:62000')
echo "Waiting for Jar1 to start"
sleep(time: 1, unit: "SECONDS")
}
def isZZrunning = sh(returnStatus:true, script: 'sudo lsof -t -i:61000')
while(isZZrunning == 1) {
isZZrunning = sh(returnStatus:true, script: 'sudo lsof -t -i:61000')
echo "Waiting for JAr2 to start"
sleep(time: 1, unit: "SECONDS")
}
}
}
推荐阅读
- kurento - Kurento 港口安全
- django - 如何在 django as_view() 方法中添加自己的属性?
- java - 从 xlsx 文件获取数据时无法从文本单元格获取数值
- arraylist - arrayList 处理与字符串处理的延迟
- julia - 在 Julia 中创建一个任意大小的 `nothing` 数组
- react-native - 长 Flatlist 中的视频使应用程序崩溃并且性能不佳
- json - Angular 8 JSON.parse 没有完全/公正地解析
- c# - IHostedService 可用于 Azure Functions 应用程序吗?
- amazon-sagemaker - 平台错误:SageMaker 管道通道超时
- raspberry-pi3 - SIM900 - 使用 Gammu 发送超过 160 个字符的短信