pipeline {
agent none
stages {
stage('Server') {
agent{
node {
label "xxx"
customWorkspace "/home/xxx/server"
}
}
steps {
sh 'node server.js &'
//start server
}
}
stage('RunCase') {
agent{
node {
label 'clientServer'
customWorkspace "/home/xxx/CITest"
}
}
steps{
sh 'start test'
sh 'run case here'
}
}
}
}

我创建了Jenkins管道。我想做的是:
1.在服务器节点启动服务器
2.在测试节点开始测试。
但是,我发现第二阶段启动时服务器进程将关闭。
那么如何保持服务器启动直到我的第二阶段测试工作完成。我尝试使用&
,仍然无法正常工作。它似乎会杀死我在第一阶段开始的所有过程。
答案 0 :(得分:1)
一种解决方案是尝试以“并行”模式启动两个阶段。有关更多信息,请参阅以下两个文件:parallel-declarative-blog jenkins-pipeline-syntax。但要小心,因为没有确保,第一阶段在第二阶段开始之前开始。也许您需要等待测试。以下是Jenkinsfile的一个示例:
pipeline {
agent none
stages {
stage('Run Tests') {
parallel {
stage('Start Server') {
steps {
sh 'node server.js &'
}
}
stage('Run Tests) {
steps {
sh 'run case here'
}
}
}
}
}
}