public class PublishEnvVarAction extends InvisibleAction implements EnvironmentContributingAction {
private final Map<String, String> envOverrides;
public PublishEnvVarAction(final Map<String, String> env) {
this.envOverrides = env;
}
@NonCPS
@Override
public void buildEnvironment(Run<?, ?> run, EnvVars env) {
if (env != null && envOverrides != null){
env.putAllNonNull(envOverrides);
}
}
}
def publishEnv(Map config) {
currentBuild.getRawBuild().addAction(new PublishEnvVarAction(config.collectEntries{ k, v -> [(k.toString()) : v.toString()] }))
}
Quick update: I've noticed that build_agent_name is correctly set to 'master' when a job is running on the master, but if a job runs on any of the slaves it is null.