Red*_*har 2 groovy jenkins jenkins-pipeline
我试图在我的jenkins管道中的不同节点上运行不同的阶段,例如第1阶段是结帐,阶段2是构建,阶段3单元测试.例如 :
node ('linux1')
{
stage ('checkout')
..........
}
node ('linux2')
{
stage ('build')
........
}
node ('linux3')
{
stage ('unit testing')
...........
}
Run Code Online (Sandbox Code Playgroud)
如果我尝试这样做,我的问题是如果我在Linux1节点中签出代码,那么当签出的代码在node1中时,其他阶段如何在不同的节点中运行.
如何分发代码,如果我的理解不正确,我如何实现并行性并确保每个阶段可以并行并减少时间.
如果可能,请建议任何用于编写Jenkins管道的groovy管道文档.
要在不同节点之间传输工作空间,请使用stash/unstash.
node('linux1') {
stage('checkout') {
checkout(..)
stash 'name-of-the-stash'
}
}
node('linux2') {
stage('build') {
unstash 'name-of-the-stash'
sh 'make'
}
}
Run Code Online (Sandbox Code Playgroud)
由于存储和释放的这种开销,以及当执行程序繁忙时(下一个节点分配与其他构建竞争)可能更长的执行时间,我不建议过多的node分配.
相反,在一个node街区内尽可能多地做.你也可以混合和匹配node { stage {..}}与stage { node {..}}您的管道代码中.
按照设计(在Jenkins中,以及在连续交付的概念中),阶段不会并行执行.只有步骤中的单级并行执行.
如果您的舞台具有长时间运行的任务,请使用该parallel步骤.该文章可能有助于进一步了解此步骤.
| 归档时间: |
|
| 查看次数: |
6308 次 |
| 最近记录: |