Skip to content

Commit

Permalink
[JENKINS-41947] Adapt builders so that installation buildEnvVars coul…
Browse files Browse the repository at this point in the history
…d use EnvVar#put() method instead EnvVar#override() as described in ToolInstallation javadoc.
  • Loading branch information
nfalco79 committed Feb 14, 2017
1 parent f0b500b commit ede0367
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 4 deletions.
4 changes: 3 additions & 1 deletion src/main/java/jenkins/plugins/nodejs/NodeJSBuildWrapper.java
Expand Up @@ -111,8 +111,10 @@ public void setUp(final Context context, Run<?, ?> build, FilePath workspace, La
ni = ni.forEnvironment(initialEnvironment);
ni.buildEnvVars(new EnvVarsAdapter(context));

EnvVars env = initialEnvironment.overrideAll(context.getEnv());

// add npmrc config
FilePath configFile = NodeJSUtils.supplyConfig(configId, build, workspace, listener, initialEnvironment);
FilePath configFile = NodeJSUtils.supplyConfig(configId, build, workspace, listener, env);
if (configFile != null) {
context.env(NodeJSConstants.NPM_USERCONFIG, configFile.getRemote());
}
Expand Down
12 changes: 10 additions & 2 deletions src/main/java/jenkins/plugins/nodejs/NodeJSCommandInterpreter.java
Expand Up @@ -2,7 +2,6 @@

import java.io.IOException;
import java.util.Collection;

import javax.annotation.CheckForNull;

import org.jenkinsci.Symbol;
Expand All @@ -20,6 +19,7 @@
import hudson.model.AbstractBuild;
import hudson.model.AbstractProject;
import hudson.model.BuildListener;
import hudson.model.Environment;
import hudson.model.Node;
import hudson.tasks.BuildStepDescriptor;
import hudson.tasks.Builder;
Expand Down Expand Up @@ -94,9 +94,17 @@ public boolean perform(AbstractBuild<?, ?> build, Launcher launcher, BuildListen
throw new AbortException(Messages.NodeJSBuilders_nodeOffline());
}

final EnvVars niEnv = new EnvVars();

ni = ni.forNode(node, listener);
ni = ni.forEnvironment(env);
ni.buildEnvVars(env);
ni.buildEnvVars(niEnv);

// enhance env with installation environment because is passed to supplyConfig
env.overrideAll(niEnv);

// add an Environment so when the in super class is called build.getEnviroment() gets the enhanced env
build.getEnvironments().add(Environment.create(niEnv));

nodeExec = ni.getExecutable(launcher);
if (nodeExec == null) {
Expand Down
Expand Up @@ -104,7 +104,7 @@ public void buildEnvVars(EnvVars env) {
return;
}
env.put("NODEJS_HOME", home);
env.override("PATH+NODEJS", getBin());
env.put("PATH+NODEJS", getBin());
}

/**
Expand Down

0 comments on commit ede0367

Please sign in to comment.