-
Type:
Bug
-
Resolution: Cannot Reproduce
-
Priority:
Minor
-
Component/s: cmakebuilder-plugin
-
None
-
Environment:Jenkins version 2.164.3
cmake plugin version 2.6.1
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.