我在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
}
}
}
}
我注意到,一旦“开始弹性搜索”阶段结束,弹性搜索批处理将被终止。我认为这是因为当节点块存在时,会话结束了。这会导致我的测试失败。
所以,我的问题是
https://jenkins.io/doc/book/pipeline/syntax/
这里的一些代码片段将非常有用
谢谢