diff --git a/vars/dockerExecute.groovy b/vars/dockerExecute.groovy index 8382a70dc..3c67a5334 100644 --- a/vars/dockerExecute.groovy +++ b/vars/dockerExecute.groovy @@ -5,36 +5,38 @@ def call(Map parameters = [:], body) { def STEP_NAME = 'dockerExecute' def PLUGIN_ID_DOCKER_WORKFLOW = 'docker-workflow' - handlePipelineStepErrors(stepName: STEP_NAME, stepParameters: parameters){ + handlePipelineStepErrors(stepName: STEP_NAME, stepParameters: parameters) { def dockerImage = parameters.dockerImage ?: '' Map dockerEnvVars = parameters.dockerEnvVars ?: [:] def dockerOptions = parameters.dockerOptions ?: '' Map dockerVolumeBind = parameters.dockerVolumeBind ?: [:] + def k8s = parameters.k8s ?: true + if (k8s) { + executeDocker parameters + } else if (dockerImage) { - if(dockerImage) { - - if (! isPluginActive(PLUGIN_ID_DOCKER_WORKFLOW) ) { + if (!isPluginActive(PLUGIN_ID_DOCKER_WORKFLOW)) { echo "[WARNING][${STEP_NAME}] Docker not supported. Plugin '${PLUGIN_ID_DOCKER_WORKFLOW}' is not installed or not active. Configured docker image '${dockerImage}' will not be used." dockerImage = null } def returnCode = sh script: 'which docker > /dev/null', returnStatus: true - if(returnCode != 0) { + if (returnCode != 0) { echo "[WARNING][${STEP_NAME}] No docker environment found (command 'which docker' did not return with '0'). Configured docker image '${dockerImage}' will not be used." dockerImage = null } returnCode = sh script: 'docker ps -q > /dev/null', returnStatus: true - if(returnCode != 0) { + if (returnCode != 0) { echo "[WARNING][$STEP_NAME] Cannot connect to docker daemon (command 'docker ps' did not return with '0'). Configured docker image '${dockerImage}' will not be used." dockerImage = null } } - if(!dockerImage){ + if (!dockerImage) { echo "[INFO][${STEP_NAME}] Running on local environment." body() - }else{ + } else { def image = docker.image(dockerImage) image.pull() image.inside(getDockerOptions(dockerEnvVars, dockerVolumeBind, dockerOptions)) { @@ -45,7 +47,7 @@ def call(Map parameters = [:], body) { } @NonCPS -private isPluginActive(String pluginId){ +private isPluginActive(String pluginId) { return Jenkins.instance.pluginManager.plugins.find { p -> p.isActive() && p.getShortName() == pluginId } } @@ -57,14 +59,12 @@ private isPluginActive(String pluginId){ */ @NonCPS private getDockerOptions(Map dockerEnvVars, Map dockerVolumeBind, def dockerOptions) { - def specialEnvironments = [ - 'http_proxy', - 'https_proxy', - 'no_proxy', - 'HTTP_PROXY', - 'HTTPS_PROXY', - 'NO_PROXY' - ] + def specialEnvironments = ['http_proxy', + 'https_proxy', + 'no_proxy', + 'HTTP_PROXY', + 'HTTPS_PROXY', + 'NO_PROXY'] def options = [] if (dockerEnvVars) { for (String k : dockerEnvVars.keySet()) {