在Jenkinsfile中的一个并行块中按顺序运行多个步骤
我正在尝试优化我的管道。我正在使用管道生成和部署一些文档。最后,我清除我的文档根目录,并将新生成的文档写入文档根目录。我并行地做了几个阶段在Jenkinsfile中的一个并行块中按顺序运行多个步骤,jenkins,jenkins-pipeline,jenkins-groovy,Jenkins,Jenkins Pipeline,Jenkins Groovy,我正在尝试优化我的管道。我正在使用管道生成和部署一些文档。最后,我清除我的文档根目录,并将新生成的文档写入文档根目录。我并行地做了几个阶段 o-----o-----o--+--o--+---+--o--+-----o | | | | +--o--+ +--o--+ | | | | +--o--+ +--o--+ 这是平行级的管道
o-----o-----o--+--o--+---+--o--+-----o
| | | |
+--o--+ +--o--+
| | | |
+--o--+ +--o--+
这是平行级的管道
stage("clear nfs directory") {
steps {
parallel(
test: {
sh "rm -rf /mnt/nfs/test/docs/$pipelineParams.groupname"
sh "mkdir /mnt/nfs/test/docs/$pipelineParams.groupname"
},
rele: {
sh "rm -rf /mnt/nfs/rele/docs/$pipelineParams.groupname"
sh "mkdir /mnt/nfs/rele/docs/$pipelineParams.groupname"
},
prod: {
sh "rm -rf /mnt/nfs/prod/docs/$pipelineParams.groupname"
sh "mkdir /mnt/nfs/prod/docs/$pipelineParams.groupname"
}
)
}
}
stage("copy generated docs to nfs directory") {
steps {
parallel(
test: {
dir("target/public") {
sh "cp -r * /mnt/nfs/test/docs/$pipelineParams.groupname"
}
},
rele: {
dir("target/public") {
sh "cp -r * /mnt/nfs/rele/docs/$pipelineParams.groupname"
}
},
prod: {
dir("target/public") {
sh "cp -r * /mnt/nfs/prod/docs/$pipelineParams.groupname"
}
}
)
}
}
由于clear和write应该相互依赖,因此我希望将管道重构为一种更为有序的设计(以更少的并行步骤按顺序运行多个步骤)
我不知道如何在同一并行块中运行多个步骤。。。谁能给我一个提示吗?谢谢大家请参阅下面的参考资料,它将允许您在同一并行块中运行多个步骤。
您需要使用顺序阶段,它将给出以下输出:
有关更多信息,请参阅:-
下面的链接给出了参考示例:
这对你有用吗是的,这正是我需要的。。。谢谢
o-----o-----o--+--o---o--+-----o
| |
+--o---o--+
| |
+--o---o--+
o-----o-----o--+--o---o--+-----o
| |
+--o---o--+
| |
+--o---o--+
pipeline {
agent { label 'master' }
stages {
stage('Build and Test') {
parallel {
stage("Build and Test Linux") {
stages {
stage("Build (Linux)") {
agent any
steps {
echo "Inside for loop 1"
}
}
stage("Test (Linux)") {
agent any
steps {
echo "Inside for loop 2"
}
}
}
}
stage("Build and Test Windows") {
stages {
stage("Build (Windows)") {
agent any
steps {
echo "Inside for loop 3"
}
}
stage("Test (Windows)") {
agent any
steps {
echo "Inside for loop 4"
}
}
}
}
}
}
}
}