DAOS-19247 build: Support running Bullseye - #528
Conversation
In order to support Bullseye code coverage stages, provide additional groovy function parameters including options to override values obtained through the parseStageInfo script. Signed-off-by: Phil Henderson <phillip.henderson@hpe.com>
Signed-off-by: Phil Henderson <phillip.henderson@hpe.com>
Signed-off-by: Phil Henderson <phillip.henderson@hpe.com>
Signed-off-by: Phil Henderson <phillip.henderson@hpe.com>
Signed-off-by: Phil Henderson <phillip.henderson@hpe.com>
Signed-off-by: Phil Henderson <phillip.henderson@hpe.com>
Signed-off-by: Phil Henderson <phillip.henderson@hpe.com>
|
Resolving reason for cb6b602 revert here: pipeline-lib/vars/buildRpmPost.groovy Lines 99 to 102 in d4fafee |
Signed-off-by: Phil Henderson <phillip.henderson@hpe.com>
| String deps_dir = 'artifacts/' + target + '/deps' | ||
| if (fileExists(deps_dir)) { | ||
| publishToRepository product: 'deps', | ||
| Map<String, String> productArtifacts = [:] |
There was a problem hiding this comment.
So config['productArtifacts'] is a list but we are also defining this local variable of the same name, but it is a map?
Should we change config['productArtifacts'] -> config['productNames'] so productArtifacts is not overloaded?
| includes: rpm_version_file | ||
| } | ||
|
|
||
| List<String> productNames = config.get('productArtifacts', []) |
There was a problem hiding this comment.
This also suggests to me that it should be config['productNames']
| String name = kwargs.get('name', '') | ||
| Boolean runStage = kwargs.get('runStage', true) | ||
| Map jobStatus = kwargs.get('jobStatus', null) ?: [:] | ||
| String dockerTag = kwargs.get('dockerTag', 'unknown-docker-tag') |
There was a problem hiding this comment.
Should this instead error? Is it even valid to pass unknown-docker-tag?
| */ | ||
| /* groovylint-disable-next-line MethodSize */ | ||
| Map call(Map kwargs = [:]) { | ||
| String name = kwargs.get('name', '') |
There was a problem hiding this comment.
For string params, why use empty string instead of null?
| if (installScript) { | ||
| println("[${name}] Running installScript") | ||
| sh label: 'Install RPMs', | ||
| script: "${installScript}" | ||
| } | ||
| if (buildScript) { | ||
| println("[${name}] Running buildScript") | ||
| sh label: 'Build deps', | ||
| script: "${buildScript}" | ||
| } | ||
| println("[${name}] Running stepMethod: ${stepMethod?.getClass()?.name}") | ||
| jobStatusUpdate(jobStatus, name, stepMethod.call(stepMethodArgs)) | ||
| if (valgrindSconsBuildArgs) { | ||
| println("[${name}] Running valgrind build for NLT") | ||
| // For non-release builds, create a separate build with the valgrind | ||
| // tag for NLT memcheck testing. This is necessary to avoid problems | ||
| // caused by valgrind being confused by the Go runtime. We don't want | ||
| // to use the valgrind build for normal testing because it is much | ||
| // slower. BUILD_TYPE=dev is set for PR/dev builds in sconsArgs(), and | ||
| // TARGET_TYPE=release is used to select pre-built cached prerequisites. | ||
| jobStatusUpdate(jobStatus, name, sconsBuild(valgrindSconsBuildArgs)) | ||
| sh label: 'Stash valgrind install tree for NLT', | ||
| script: 'tar -C / -cf opt-daos-valgrind.tar opt/daos' | ||
| stash(name: 'opt-daos-valgrind', includes: 'opt-daos-valgrind.tar') | ||
| } | ||
| if (generateRpmsScript) { | ||
| println("[${name}] Running generateRpmsScript") | ||
| sh label: 'Generate RPMs', | ||
| script: "${generateRpmsScript}" | ||
| } | ||
| if (buildRpmPostArgs) { | ||
| println("[${name}] Running buildRpmPost()") | ||
| buildRpmPost(buildRpmPostArgs) | ||
| } |
There was a problem hiding this comment.
IMO this kind of logic means this is not a "docker" stage. But specifically it is a "build DAOS in docker" stage. And it's not really a library function but more so the entire definition of the stage, which seems more appropriate in the daos repo
Signed-off-by: Phil Henderson <phillip.henderson@hpe.com>
Signed-off-by: Phil Henderson <phillip.henderson@hpe.com>
In order to support Bullseye code coverage stages, provide additional groovy function parameters including options to override values obtained through the parseStageInfo script.