Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 4b2dc1d

Browse files
committedMar 17, 2025
CI: switch Windows/msvc build tasks to new Docker toolchain
1 parent 82ab83d commit 4b2dc1d

File tree

1 file changed

+24
-25
lines changed

1 file changed

+24
-25
lines changed
 

‎Jenkinsfile

+24-25
Original file line numberDiff line numberDiff line change
@@ -26,27 +26,28 @@ import com.esri.zrh.jenkins.psl.UploadTrackingPsl
2626

2727
@Field final List CONFIGS_CHECKOUT = [ [ ba: PSL.BA_CHECKOUT ] ]
2828
@Field final Map DOCKER_IMAGE_LINUX_CONFIG = [ ba: PSL.BA_LINUX_DOCKER, containerId: "build_tools/ce-tc-prt:almalinux8-gcc11-v2", containerWorkspace: "/tmp/app" ]
29+
@Field final Map DOCKER_IMAGE_WINDOWS_CONFIG = [ ba: 'win19-64-d', containerId: 'palladio/palladio-tc:win19-vc1437-v1', containerWorkspace: 'c:/tmp/work' ]
2930

3031
@Field final List CONFIGS_TEST = [
3132
DOCKER_IMAGE_LINUX_CONFIG + [ os: CEPL.CFG_OS_RHEL8, bc: CEPL.CFG_BC_REL, tc: CEPL.CFG_TC_GCC112, cc: CEPL.CFG_CC_OPT, arch: CEPL.CFG_ARCH_X86_64 ],
32-
[ os: CEPL.CFG_OS_WIN10, bc: CEPL.CFG_BC_REL, tc: CEPL.CFG_TC_VC1437, cc: CEPL.CFG_CC_OPT, arch: CEPL.CFG_ARCH_X86_64 ],
33+
DOCKER_IMAGE_WINDOWS_CONFIG + [ os: CEPL.CFG_OS_WIN10, bc: CEPL.CFG_BC_REL, tc: CEPL.CFG_TC_VC1437, cc: CEPL.CFG_CC_OPT, arch: CEPL.CFG_ARCH_X86_64 ],
3334
]
3435

3536
@Field final List CONFIGS_HOUDINI_190 = [
3637
DOCKER_IMAGE_LINUX_CONFIG + [ os: CEPL.CFG_OS_RHEL8, bc: CEPL.CFG_BC_REL, tc: CEPL.CFG_TC_GCC112, cc: CEPL.CFG_CC_OPT, arch: CEPL.CFG_ARCH_X86_64, houdini: '19.0' ],
37-
[ os: CEPL.CFG_OS_WIN10, bc: CEPL.CFG_BC_REL, tc: CEPL.CFG_TC_VC1437, cc: CEPL.CFG_CC_OPT, arch: CEPL.CFG_ARCH_X86_64, houdini: '19.0' ],
38+
DOCKER_IMAGE_WINDOWS_CONFIG + [ os: CEPL.CFG_OS_WIN10, bc: CEPL.CFG_BC_REL, tc: CEPL.CFG_TC_VC1437, cc: CEPL.CFG_CC_OPT, arch: CEPL.CFG_ARCH_X86_64, houdini: '19.0' ],
3839
]
3940

4041
@Field final List CONFIGS_HOUDINI_195 = [
4142
DOCKER_IMAGE_LINUX_CONFIG + [ os: CEPL.CFG_OS_RHEL8, bc: CEPL.CFG_BC_REL, tc: CEPL.CFG_TC_GCC112, cc: CEPL.CFG_CC_OPT, arch: CEPL.CFG_ARCH_X86_64, houdini: '19.5' ],
42-
[ os: CEPL.CFG_OS_WIN10, bc: CEPL.CFG_BC_REL, tc: CEPL.CFG_TC_VC1437, cc: CEPL.CFG_CC_OPT, arch: CEPL.CFG_ARCH_X86_64, houdini: '19.5' ],
43+
DOCKER_IMAGE_WINDOWS_CONFIG + [ os: CEPL.CFG_OS_WIN10, bc: CEPL.CFG_BC_REL, tc: CEPL.CFG_TC_VC1437, cc: CEPL.CFG_CC_OPT, arch: CEPL.CFG_ARCH_X86_64, houdini: '19.5' ],
4344
]
4445

4546
@Field final List CONFIGS_HOUDINI_200 = [
4647
DOCKER_IMAGE_LINUX_CONFIG + [ os: CEPL.CFG_OS_RHEL8, bc: CEPL.CFG_BC_REL, tc: CEPL.CFG_TC_GCC112, cc: CEPL.CFG_CC_OPT, arch: CEPL.CFG_ARCH_X86_64, houdini: '20.0' ],
47-
[ os: CEPL.CFG_OS_WIN10, bc: CEPL.CFG_BC_REL, tc: CEPL.CFG_TC_VC1437, cc: CEPL.CFG_CC_OPT, arch: CEPL.CFG_ARCH_X86_64, houdini: '20.0' ],
48+
DOCKER_IMAGE_WINDOWS_CONFIG + [ os: CEPL.CFG_OS_WIN10, bc: CEPL.CFG_BC_REL, tc: CEPL.CFG_TC_VC1437, cc: CEPL.CFG_CC_OPT, arch: CEPL.CFG_ARCH_X86_64, houdini: '20.0' ],
4849
DOCKER_IMAGE_LINUX_CONFIG + [ grp: 'cesdkLatest', os: CEPL.CFG_OS_RHEL8, bc: CEPL.CFG_BC_REL, tc: CEPL.CFG_TC_GCC112, cc: CEPL.CFG_CC_OPT, arch: CEPL.CFG_ARCH_X86_64, houdini: '20.0', cesdk: PAPL.Dependencies.CESDK_LATEST ],
49-
[ grp: 'cesdkLatest', os: CEPL.CFG_OS_WIN10, bc: CEPL.CFG_BC_REL, tc: CEPL.CFG_TC_VC1438, cc: CEPL.CFG_CC_OPT, arch: CEPL.CFG_ARCH_X86_64, houdini: '20.0', cesdk: PAPL.Dependencies.CESDK_LATEST ],
50+
DOCKER_IMAGE_WINDOWS_CONFIG + [ grp: 'cesdkLatest', os: CEPL.CFG_OS_WIN10, bc: CEPL.CFG_BC_REL, tc: CEPL.CFG_TC_VC1438, cc: CEPL.CFG_CC_OPT, arch: CEPL.CFG_ARCH_X86_64, houdini: '20.0', cesdk: PAPL.Dependencies.CESDK_LATEST ],
5051
]
5152

5253

@@ -59,7 +60,7 @@ properties([ disableConcurrentBuilds() ])
5960

6061
// -- PIPELINE
6162

62-
stage('prepare'){
63+
stage('prepare') {
6364
cepl.runParallel(taskGenCheckout())
6465
}
6566

@@ -122,10 +123,7 @@ def taskBuildPalladio(cfg) {
122123
[ key: 'PLD_HOUDINI_VERSION', val: cfg.houdini]
123124
]
124125

125-
final String stdOut = buildPalladio(cfg, defs, BUILD_TARGET)
126-
if(!papl.runsOnDocker(cfg)) {
127-
scanAndPublishBuildIssues(cfg, stdOut)
128-
}
126+
buildPalladio(cfg, defs, BUILD_TARGET)
129127

130128
def versionExtractor = { p ->
131129
def vers = (p =~ /.*palladio-(.*)\.hdn.*/)
@@ -139,11 +137,14 @@ def taskBuildPalladio(cfg) {
139137
}
140138

141139
def buildPalladio(cfg, defs, target) {
140+
final Map dirMap = [ "${env.WORKSPACE}" : cfg.containerWorkspace ]
141+
final String src = "${cfg.containerWorkspace}/${SOURCE}";
142+
final String bld = "${cfg.containerWorkspace}/build";
143+
final Map envMap = [ WORKSPACE: cfg.containerWorkspace ]
144+
145+
String cmd = ''
142146
if(cfg.os == CEPL.CFG_OS_RHEL8) {
143-
Map dirMap = [ "${env.WORKSPACE}" : cfg.containerWorkspace ]
144-
Map envMap = [ DEFAULT_UID: '$(id -u)', DEFAULT_GID: '$(id -g)', WORKSPACE: cfg.containerWorkspace ]
145-
String src = "${cfg.containerWorkspace}/${SOURCE}";
146-
String bld = "${cfg.containerWorkspace}/build";
147+
envMap << [ DEFAULT_UID: '$(id -u)', DEFAULT_GID: '$(id -g)' ]
147148

148149
cmd = "cd ${src}"
149150
cmd += "\npython3 -m ensurepip"
@@ -153,18 +154,16 @@ def buildPalladio(cfg, defs, target) {
153154
cmd += "\ncd ${cfg.containerWorkspace}"
154155
cmd += "\nsource \${PYVENV}/bin/activate"
155156
cmd += "\nconan remote add --force --insert=0 zrh-conan ${psl.CONAN_REMOTE_URL}"
156-
157-
cmd += "\ncmake -G Ninja -DCMAKE_BUILD_TYPE=Release "
158-
defs.each { d -> cmd += " -D${d.key}=${ (d.val instanceof Closure) ? d.val.call(cfg) : d.val }" }
159-
cmd +=" -S ${src} -B ${bld}"
160-
161-
cmd += "\ncmake --build ${bld} --target ${target}"
162-
String stdOut = psl.runDockerCmd(cfg.containerId, cfg.containerWorkspace, cmd, dirMap, envMap)
163-
echo(stdOut)
164-
return stdOut
165-
} else {
166-
return papl.runCMakeBuild(SOURCE, 'build', target, cfg, defs)
167157
}
158+
159+
String cmd = "cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -S ${src} -B ${bld}"
160+
defs.each { d ->
161+
String val = (d.val instanceof Closure) ? d.val.call(cfg) : d.val
162+
val = val.replace('%', '%%') // Windows: defer expansion of env vars to container run time
163+
cmd += " -D${d.key}=${val}"
164+
}
165+
cmd += " && cmake --build ${bld} --target ${target}"
166+
psl.runDockerCmd(cfg.containerId, cfg.containerWorkspace, cmd, dirMap, envMap)
168167
}
169168

170169
def scanAndPublishBuildIssues(Map cfg, String consoleOut) {

0 commit comments

Comments
 (0)
Please sign in to comment.