如何在詹金斯流水线的各个阶段之间共享文件?

时间:2020-07-17 15:21:34

标签: jenkins jenkins-pipeline

我有一个jenkins管道,该管道有两个阶段,两个阶段需要从代码中克隆代码并并行运行不同的代理,如何在这些阶段中共享代码?

stages {
    parallel("a":
    node('label1'){
     stage("Source"){
      git 'xxx'
     }
    }
   ,
   "b":node('label2'){
     stage("Source"){
      git 'xxx'
     }
    }
  }
}

1 个答案:

答案 0 :(得分:0)

我想您是在问是否可以让两个不同的代理并行处理同一代码副本,而不是它们都从git中检出自己的副本。因为代理实际上是不同的机器(或VM等),所以我想到的唯一方法是在两个代理都挂载的网络文件系统上签出代码。

但是...这听起来是个坏主意。如果a正在写入文件而b正在写入同一文件怎么办,谁将获胜?您无法通过源代码树预测两者的工作顺序。您可能会得到不可预测的结果。