上述两个连续阶段是否可能连续系列启动复制server1 stopservers server1在一行而不是每个阶段结束。我们有一种方法,复制停止服务器将有4个并行连续执行,除非在我们有4个并行执行的图像中,每个阶段在复制之前开始并在停止服务器之后结束.Below就是我正在寻找的情况
----------- --------------复制----------------------- stopservers
| |
| ---------- ----------- Server1的服务器1 ---------------- |
| |
| ---------- -----------服务器2服务器2 ---------------- |
| |
| ---------- ---------- server(服务器)server(服务器)----------------- |
| |
----------- ----------服务器4 -----------------服务器4
我的代码很简单,如下所示
node {
stage('copy'){
parallel 'server1': {
echo "server1"
},
'server2': {
echo "server2"
},
'server3': {
echo "server3"
},
'server4': {
echo "server4"
}
}
stage('stopServers'){
parallel 'server1': {
echo "server1"
},
'server2': {
echo "server2"
},
'server3': {
echo "server3"
},
'server4': {
echo "server4"
}
}
你可以告诉我有可能吗?
答案 0 :(得分:1)
听起来你只需要一个阶段,其中每个步骤都是copy
步骤的复合,然后是stopServer
步骤。
def copy(String server) {
echo "copy $server"
}
def stopServer(String server) {
echo "stopServer $server"
}
def servers = [ 'server1', 'server2', 'server3', 'server4' ]
node {
stage('copy and stopServer') {
// Construct the steps to run in parallel
def parallelSteps = [:]
def i = 0
servers.each { server ->
parallelSteps[server] = {
// This is just to show that we don't wait for all the copy steps
// before we start with stopServer
sleep i++
copy(server)
stopServer(server)
}
}
parallel parallelSteps
}
}