小编Arc*_*n B的帖子

在节点上创建并行执行的多个阶段

我们的跨平台项目要求Jenkins在许多不同的平台上执行,并为每个平台进行适当的测试和打包.我能够结合使用parallel,node但只能在一个单独的,stage并得到这一点(见下文)

我希望能够将它分成多个阶段.我想创建的阶段是:

  • 构建:使用工件构建库/项目
  • UnitTest:构建并运行单元测试
  • TestApp:使用工件构建和运行测试应用程序
  • 输入阶段:想上传?
  • 上传:将工件上传到外部服务器

我会做以下事情:

  1. 在阶段之间复制一堆对象(使用stash)
  2. 需要保持node使用的一致性.(节点上生成的对象label应相应地标记在适当的节点上label).我需要为每个节点唯一标记每个存储.

这不是更低效吗?我会人为地复制大量数据,以便我可以创建阶段.

def checkoutAndBuild(Map args) {
    node("${args.nodeName}") {

        checkout([$class: 'GitSCM', 
                    branches: scm.branches,  
                    doGenerateSubmoduleConfigurations: scm.doGenerateSubmoduleConfigurations, 
                    extensions: scm.extensions + 
                                [[$class: 'SubmoduleOption', 
                                    disableSubmodules: false, 
                                    parentCredentials: false, 
                                    recursiveSubmodules: true, 
                                    reference: '', 
                                    trackingSubmodules: false]] +
                                [[$class: 'CleanCheckout']], 
                    userRemoteConfigs: scm.userRemoteConfigs
                ])

        step([$class: 'CopyArtifact', 
            filter: "AppCommon/*/**, cmake/**/*, core/**/*, thirdparty/prebuilt/${args.prebuiltDir}/**/*, tools/**/*", 
            fingerprintArtifacts: true, 
            projectName: "${args.engineDependency_Job}", 
            selector: [$class: 'SpecificBuildSelector', buildNumber: "${args.engineDependency_BuildNo}"], 
            target: 'engine'])

        dir("build/${args.buildDir}") {
            echo …
Run Code Online (Sandbox Code Playgroud)

jenkins jenkins-pipeline

6
推荐指数
1
解决办法
1541
查看次数

标签 统计

jenkins ×1

jenkins-pipeline ×1