提交 36b84a5d 编写于 作者: K Kohsuke Kawaguchi

moving the logic from core to an extension point implementation

上级 55965667
......@@ -1878,33 +1878,6 @@ public abstract class Run <JobT extends Job<JobT,RunT>,RunT extends Run<JobT,Run
*/
public EnvVars getEnvironment(TaskListener log) throws IOException, InterruptedException {
EnvVars env = getCharacteristicEnvVars();
Computer c = Computer.currentComputer();
if (c!=null)
env = c.getEnvironment().overrideAll(env);
String rootUrl = Jenkins.getInstance().getRootUrl();
if(rootUrl!=null) {
env.put("JENKINS_URL", rootUrl);
env.put("HUDSON_URL", rootUrl); // Legacy compatibility
env.put("BUILD_URL", rootUrl+getUrl());
env.put("JOB_URL", rootUrl+getParent().getUrl());
}
env.put("JENKINS_HOME", Jenkins.getInstance().getRootDir().getPath() );
env.put("HUDSON_HOME", Jenkins.getInstance().getRootDir().getPath() ); // legacy compatibility
Thread t = Thread.currentThread();
if (t instanceof Executor) {
Executor e = (Executor) t;
env.put("EXECUTOR_NUMBER",String.valueOf(e.getNumber()));
if(e.getOwner() instanceof MasterComputer) {
env.put("NODE_NAME", "master");
} else {
env.put("NODE_NAME",e.getOwner().getName());
}
Node n = e.getOwner().getNode();
if (n!=null)
env.put("NODE_LABELS",Util.join(n.getAssignedLabels()," "));
}
for (EnvironmentContributor ec : EnvironmentContributor.all())
ec.buildEnvironmentFor(this,env,log);
......
package jenkins.model;
import hudson.EnvVars;
import hudson.Extension;
import hudson.Util;
import hudson.model.Computer;
import hudson.model.EnvironmentContributor;
import hudson.model.Executor;
import hudson.model.Node;
import hudson.model.Run;
import hudson.model.TaskListener;
import jenkins.model.Jenkins.MasterComputer;
import java.io.IOException;
/**
* {@link EnvironmentContributor} that adds the basic set of environment variables that
* we've been exposing historically.
*
* @author Kohsuke Kawaguchi
*/
@Extension(ordinal=-100)
public class CoreEnvironmentContributor extends EnvironmentContributor {
@Override
public void buildEnvironmentFor(Run r, EnvVars env, TaskListener listener) throws IOException, InterruptedException {
Computer c = Computer.currentComputer();
if (c!=null)
c.getEnvironment().overrideAll(env);
Jenkins j = Jenkins.getInstance();
String rootUrl = j.getRootUrl();
if(rootUrl!=null) {
env.put("JENKINS_URL", rootUrl);
env.put("HUDSON_URL", rootUrl); // Legacy compatibility
env.put("BUILD_URL", rootUrl+r.getUrl());
env.put("JOB_URL", rootUrl+r.getParent().getUrl());
}
String root = j.getRootDir().getPath();
env.put("JENKINS_HOME", root);
env.put("HUDSON_HOME", root); // legacy compatibility
Thread t = Thread.currentThread();
if (t instanceof Executor) {
Executor e = (Executor) t;
env.put("EXECUTOR_NUMBER", String.valueOf(e.getNumber()));
if (e.getOwner() instanceof MasterComputer) {
env.put("NODE_NAME", "master");
} else {
env.put("NODE_NAME", e.getOwner().getName());
}
Node n = e.getOwner().getNode();
if (n != null)
env.put("NODE_LABELS", Util.join(n.getAssignedLabels(), " "));
}
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册