diff --git a/vars/packageStep.groovy b/vars/packageStep.groovy index 53a8178..9c85ec4 100644 --- a/vars/packageStep.groovy +++ b/vars/packageStep.groovy @@ -3,20 +3,28 @@ void call(Map config = [:], Closure body) { Map defaults = [ name: env.BUILD_TAG, - archiveCmd: 'tar zcvf', + archiveCmd: 'tar', + archiveParams: 'zcvf', extension: 'tgz', - artifacts: [] + artifacts: [], + stepName: 'Package', + separator: '-' ] - Map runConfig = defaults + config stage(runConfig.stepName) { printBanner(runConfig.stepName) - String archiveName = "${runConfig.name}-${runConfig.tag}.${runConfig.extension}" - + if (runConfig.artifacts.size() < 1) { + assert runConfig.artifacts : 'Error: No named artifacts to package!' + } + archiveName = runConfig.name + separator + runConfig.tag + separator + runConfig.extension echo "Will tag result as: ${archiveName}" sh """ - ${runConfig.archiveCmd} ${archiveName} ${runConfig.artifacts.join(' ')} + if command -v "${runconfig.archiveCmd}"; then + ${runConfig.archiveCmd} ${archiveName} ${runConfig.artifacts.join(' ')} + else + echo "Error: ${runConfig.archiveCmd} is not a valid executable!" + exit 2 """ archiveArtifacts artifacts: archiveName, followSymlinks: false body()