34 lines
1.1 KiB
Groovy
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, [ boxStyle : 'plain' ])
|
|
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()
|
|
}
|
|
}
|