Jenkins Pipeline Stash 可以合并文件吗?

问题描述 投票:0回答:1

我正在并行处理

integration
unit
测试。它们都在
target
目录下生成 JUnit 和代码覆盖率报告。每个的存储名称是
tests-build
,并且还提供了所包含的资源。

stage('Tests Execution') {
  parallel {
    stage('Execute Unit Tests') {
      steps {
        dockerExecuteBuildStage([ stageName: "unit-tests", dockerTargetDir: "/opt/build/target",
            stashIncludesPattern: "**/target/*", stashName: "tests-build"])
      }
    }

    stage('Execute Integration Tests') {
      when {
        expression { config.load().idpsIsEnabled == false }
      }
      steps {
        script {
          config.concurrentStash("tests-build", "intuit-paas-update.yml")
        }
        dockerExecuteBuildStage([ stageName: "integration-tests", dockerTargetDir: "/opt/build/target",
            stashIncludesPattern: "**/target/*", stashName: "tests-build"])
      }
    }
  }
}

考虑到它们将并行执行,并将使用

Jenkins Stash
临时存储报告以供以后处理,我得到以下行为:

问题

  • 并行执行时可以存储合并文件吗?
  • 有没有办法合并 2 个并行存储中的文件?如果名字不冲突?

行为

  • 在一个分支我得到了
    Safe stashing paas-update.yml in faf7dfb5d4a66b14d5acdae4c46a8b8771b57beb-tests-build...
  • 在另一个分支我得到了
    Warning: overwriting stash ‘faf7dfb5d4a66b14d5acdae4c46a8b8771b57beb-tests-build' Stashed 5 file(s)
jenkins jenkins-pipeline
1个回答
0
投票
  • 并行执行时 stash 可以合并文件吗?不。但是您可以使用多个储藏室。存储名称可以存储在列表或地图中。您可以稍后迭代。
  • 有没有办法合并 2 个并行存储中的文件?如果名字不冲突呢? Meeeh...您需要在每个上取消存储并再次存储 手术。通过并行执行,可以使用locks来确保不会错过任何东西。 还可以,但是不太漂亮
© www.soinside.com 2019 - 2024. All rights reserved.