Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-57502

Cmake arguments sometimes are added to path in parallel build

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Minor
    • Resolution: Cannot Reproduce
    • Component/s: cmakebuilder-plugin
    • Labels:
      None
    • Environment:
      Jenkins version 2.164.3
      cmake plugin version 2.6.1
    • Similar Issues:

      Description

      I'm trying to simulate matrix build using Pipeline

      Pipeline snippet

       

      def cmake_tasks(os_labels, configs, DL_on_off) {
          tasks = [:]
          def DL_dir_labels = ['ON': 'DL', 'OFF': 'noDL']
          for(int i = 0; i < os_labels.size(); i++) {
             def os = os_labels[i]
             for (int j = 0; j < configs.size(); j++) {
                for (int k = 0; k < DL_on_off.size(); k++) {
                   def config = configs[j]
                   def DL = DL_on_off[k]
                   def DL_dir_label = DL_dir_labels["${DL}"]
                   def generator = "Ninja"
                   def steps = [[withCmake: true]]
                   def cmakeArgs = "-Dsomevar=somevalue"
                   def cmake_inst = 'InSearchPath'
                   
                   tasks["${os}/${config}/${DL_dir_label}"] = {
                      node("build && ${os}") {
                         stage("${os}/${config}/${DL_dir_label}") {
                             if (os == "windows") {
                                 // does not matter
                             } else {
                                 cmakeBuild(buildDir: "build_${config}_${DL_dir_label}", 
                                            buildType: config, 
                                            cleanBuild: true, 
                                            cmakeArgs: cmakeArgs, 
                                            generator: generator, 
                                            installation: cmake_inst, 
                                            sourceDir: ".", 
                                            steps: steps)
                             }
                         }
                      }
                   }
                }
             }
          }
          return tasks
      }
      
      pipeline {
          agent none
          stages {
              stage('Configure & Build') {
                 steps {
                    script { 
                       def OSes = ["windows", "linux"] 
                       def configs = ["Release", "Debug"] 
                       def DL_inc = ["ON", "OFF"] 
                       parallel cmake_tasks(OSes, configs, DL_inc) 
                    }
                 }
              }
          }
      }
      
       
      

       

       

      Sometimes I see failed steps with the output similar to the following (please, note that "CMAKE_BUILD_TYPE=Debug" is concatenated with a path):

      Cleaning build dir /jenkins/workspace/project@7/build_Debug_DL ... [build_Debug_DL] $ cmake -G Ninja -D CMAKE_BUILD_TYPE=Debug -Dsomevar=somevalue /jenkins/workspace/project@7
      CMake Error: The source directory "/jenkins/workspace/project@7/build_Debug_DL/CMAKE_BUILD_TYPE=Debug" does not exist.
      Specify --help for usage, or press the help button on the CMake GUI.
      

        Attachments

          Activity

          Hide
          15knots Martin Weber added a comment -

          Sorry, cannot reproduce the error with Jenkins ver. 2.150.3 and cmake plugin 2.8.1.
          Does the problem still persist? If so, remove the

          sourceDir: ".", 

          specification from the script and re-try. If sourceDir is not specified, the workspace-root is used by default.

          Show
          15knots Martin Weber added a comment - Sorry, cannot reproduce the error with Jenkins ver. 2.150.3 and cmake plugin 2.8.1. Does the problem still persist? If so, remove the sourceDir: "." , specification from the script and re-try. If sourceDir is not specified, the workspace-root is used by default.
          Hide
          wl2776 Vladimir Eremeev added a comment -

          The problem has gone.

           

          Jenkins version was updated to 2.176.1

          Cmake plugin version is 2.6.1

          Cmake program version is 3.13

           

           

          Show
          wl2776 Vladimir Eremeev added a comment - The problem has gone.   Jenkins version was updated to 2.176.1 Cmake plugin version is 2.6.1 Cmake program version is 3.13    

            People

            • Assignee:
              15knots Martin Weber
              Reporter:
              wl2776 Vladimir Eremeev
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: