pipelineUtils/vars/packageStep.groovy
Jim Nicholson b76d3f0fc5 Revamp stages and restructure project (#1)
Reviewed-on: #1
Co-authored-by: Jim Nicholson <thejimnicholson@gmail.com>
Co-committed-by: Jim Nicholson <thejimnicholson@gmail.com>
2024-02-08 02:22:19 +00:00

34 lines
1.1 KiB
Groovy

#!/usr/bin/env groovy
void call(Map config = [:], Closure body = { }) {
Map defaults = [
name: env.BUILD_TAG,
archiveCmd: 'tar',
archiveParams: 'zcvf',
extension: 'tgz',
artifacts: [],
stepName: 'Package',
separator: '-'
]
Map runConfig = defaults + config
stage(runConfig.stepName) {
printBanner(runConfig.stepName)
if (runConfig.artifacts.size() < 1) {
assert runConfig.artifacts : 'Error: No named artifacts to package!'
}
archiveName = runConfig.name + runConfig.separator + runConfig.tag + runConfig.separator + runConfig.extension
echo "Will tag result as: ${archiveName}"
sh """
if command -v "${runConfig.archiveCmd}"; then
${runConfig.archiveCmd} ${runConfig.archiveParams} ${archiveName} ${runConfig.artifacts.join(' ')}
else
echo "Error: ${runConfig.archiveCmd} is not a valid executable!"
exit 2
fi
"""
archiveArtifacts artifacts: archiveName, followSymlinks: false
body()
}
}