作为批处理文件启动时,ElasticSearch在Jenkins管道中终止

时间:2019-03-14 16:37:42

标签: windows elasticsearch jenkins

我在Windows构建服务器上有一个Jenkins管道。我想在我的测试代理节点上将弹性搜索作为批处理文件(而不是Windows服务)运行,该弹性搜索应在整个管道运行期间运行。这就是我所拥有的

pipeline {
    agent none
    stages {
        stage('Preparing to start Elastic Search') {
            agent { node { label 'master' } }                        
            steps {
                stash includes: 'elasticsearch*/**', name: 'ElasticSearchStash'
                stash includes: 'Scripts/**', name: 'ScriptStash'
            }
        }
        stage('Start Elastic Search') {
            agent {node {label 'ElasticSearch'} }
            steps {
                dir('ElasticSearchLauncher') {                
                    unstash name: 'ElasticSearchStash'
                    unstash name: 'ScriptStash'
                    bat "cmd /C ${scripts_dir}\\StartElasticSearch.bat PID.txt"
                    sleep 120
                }
            }
        }  
        stage('Run Tests using Elastic Search') {
            steps {
                // here i rely on the Elastic Search service to be running on the test agent
            }
        }
    }
}

我注意到,一旦“开始弹性搜索”阶段结束,弹性搜索批处理将被终止。我认为这是因为当节点块存在时,会话结束了。这会导致我的测试失败。

所以,我的问题是

  1. 如何在管道的整个持续时间内保持该节点及其与测试代理的连接处于活动状态。可以使用复用节点吗?

https://jenkins.io/doc/book/pipeline/syntax/

  1. 是否有可能使用单独的管道构建作业+ waituntil组合。

这里的一些代码片段将非常有用

谢谢

0 个答案:

没有答案