package it.dockins.dockerslaves;
import hudson.EnvVars;
import hudson.Extension;
import hudson.model.EnvironmentContributor;
import hudson.model.Job;
import hudson.model.Run;
import hudson.model.TaskListener;
import it.dockins.dockerslaves.spec.ContainerSetDefinition;
import it.dockins.dockerslaves.spec.SideContainerDefinition;
import javax.annotation.Nonnull;
import java.io.IOException;
/**
* @author <a href="mailto:nicolas.deloof@gmail.com">Nicolas De Loof</a>
*/
@Extension
public class ContainerSpecEnvironmentContributor extends EnvironmentContributor {
@Override
public void buildEnvironmentFor(@Nonnull Run r, @Nonnull EnvVars envs, @Nonnull TaskListener listener) throws IOException, InterruptedException {
final Job job = r.getParent();
final ContainerSetDefinition property = (ContainerSetDefinition) job.getProperty(ContainerSetDefinition.class);
if (property == null) return;
property.getBuildHostImage().setupEnvironment(envs);
for (SideContainerDefinition sidecar : property.getSideContainers()) {
sidecar.getSpec().setupEnvironment(envs);
}
}
}