#!/usr/bin/env groovy void call(Map config = [:], Closure body = { }) { Map defaults = [ saveArtifaces: false, buildRequires: 'Makefile', buildCmd: 'make all', stepName: 'Build' ] Map runConfig = defaults + config stage(runConfig.stepName) { printBanner(runConfig.stepName) if (runConfig.saveArtifacts) { assert runConfig.artifacts : 'Error: saveArtifacts is set to true; must specify artifacts!' } withEnv(["TAG=${runConfig.tag}", "HASH=${runConfig.hash}", "VERSION=${runConfig.version}"]) { if ( fileExists(runConfig.buildRequires)) { sh """ ${runConfig.buildCmd} """ } else { error("ERROR: File ${runConfig.buildRequires} does not exist in workspace.") } body() } if (runConfig.saveArtifacts) { artifactsList = runConfig.artifacts.join(',') archiveArtifacts artifacts: artifactsList, followSymlinks: false } body() } }