我试图在Jenkinsfile中执行多个步骤,这些步骤包含shell命令,这需要时间,直到我得到最终输出。
由于这些步骤相互依赖,我如何添加条件,如果第一个cmd的输出等于某个值(“会话已启动”),则执行第二个,如果不等于,则打印某个消息=(“字符串”)。
stage() {
agent {
docker {
label 'MyDocker',
image 'myIMG'
}
}
steps {
sh label: 'Creating container', script: 'docker run --privileged -d -p 4750:4723 --name mycontainer myimg'
sh label: 'Building ', script: 'docker exec -it mycontainer test'
}
}
1条答案
按热度按时间ohfgkhjo1#
如果在步骤级别需要这样的条件,则必须使用
script
步骤并编写一些Groovy代码。我添加了参数
returnStdout: true
,用于返回shell命令的输出。为了检查输出,我使用了一个子串搜索
output.indexOf
,以使代码更健壮。当然,你可以用output == 'session started'
代替它来进行1:1的比较。