public void add(String name, String value) { add(new EnvironmentVariable(name, value, false)); }
public static EnvironmentVariables toEnvironmentVariables(EnvironmentVariablesConfig environmentVariableConfigs) { final EnvironmentVariables environmentVariables = new EnvironmentVariables(); for (EnvironmentVariableConfig environmentVariableConfig : environmentVariableConfigs) { environmentVariables.add(new EnvironmentVariable(environmentVariableConfig)); } return environmentVariables; }
public void overrideWith(EnvironmentVariables other) { for (EnvironmentVariable variable : other) { this.removeIf(v -> v.getName().equalsIgnoreCase(variable.getName())); this.add(variable); } }
@Test public void shouldReplaceTheTemplateWithMultipleEnvironmentVariable() { EnvironmentVariables envVars = new EnvironmentVariables(); envVars.add("VAR1", "1"); envVars.add("VAR2", "2"); PipelineLabel label = PipelineLabel.create("release-${ENV:VAR1}, ${ENV:VAR2}", envVars); label.updateLabel(Collections.emptyMap(), 1); assertThat(label.toString(), is("release-1, 2")); }
@Test public void add_shouldAddEnvironmentVariable() { final EnvironmentVariables environmentVariables = new EnvironmentVariables(); assertThat(environmentVariables, hasSize(0)); environmentVariables.add("foo", "bar"); assertThat(environmentVariables, hasSize(1)); assertThat(environmentVariables, contains(new EnvironmentVariable("foo", "bar"))); }
@Test public void shouldInitializeEnvironmentContextFromJobPlanWithTriggerVariablesOverridingEnvVariablesFromJob() throws Exception { DefaultJobPlan defaultJobPlan = jobForPipeline("foo"); EnvironmentVariables triggerVariables = new EnvironmentVariables(); triggerVariables.add("key1", "override"); triggerVariables.add("key3", "value3"); EnvironmentVariables variables = new EnvironmentVariables(); variables.add("key1", "value1"); variables.add("key2", "value2"); defaultJobPlan.setTriggerVariables(triggerVariables); defaultJobPlan.setVariables(variables); BuildAssignment buildAssignment = BuildAssignment.create(defaultJobPlan, BuildCause.createManualForced(), new ArrayList<>(), null, null, new ArtifactStores()); EnvironmentVariableContext context = buildAssignment.initialEnvironmentVariableContext(); assertThat(context.getProperties().size(), is(9)); assertThat(context.getProperty("key1"), is("override")); assertThat(context.getProperty("key2"), is("value2")); }
@Test public void shouldInitializeEnvironmentContextFromJobPlan() throws Exception { DefaultJobPlan defaultJobPlan = jobForPipeline("foo"); EnvironmentVariables variables = new EnvironmentVariables(); variables.add("key1", "value1"); variables.add("key2", "value2"); defaultJobPlan.setVariables(variables); BuildAssignment buildAssignment = BuildAssignment.create(defaultJobPlan, BuildCause.createManualForced(), new ArrayList<>(), null, null, new ArtifactStores()); EnvironmentVariableContext context = buildAssignment.initialEnvironmentVariableContext(); assertThat(context.getProperties().size(), is(9)); assertThat(context.getProperty("key1"), is("value1")); assertThat(context.getProperty("key2"), is("value2")); }
@Test public void shouldReplaceTheTemplateWithEnvironmentVariable() { EnvironmentVariables envVars = new EnvironmentVariables(); envVars.add("VAR", "var_value"); PipelineLabel label = PipelineLabel.create("release-${ENV:VAR}", envVars); label.updateLabel(Collections.emptyMap(), 1); assertThat(label.toString(), is("release-var_value")); }
@Test public void shouldApplyEnvironmentVariablesWhenRunningTheJob() { EnvironmentVariables variables = new EnvironmentVariables(); variables.add("VARIABLE_NAME", "variable value"); DefaultJobPlan plan = new DefaultJobPlan(new Resources(), new ArrayList<>(), new ArrayList<>(), -1, null, null, variables, new EnvironmentVariables(), null); EnvironmentVariableContext variableContext = new EnvironmentVariableContext(); plan.applyTo(variableContext); assertThat(variableContext.getProperty("VARIABLE_NAME"), is("variable value")); }
@Test public void shouldIntializeEnvironmentContextWithJobPlanEnvironmentVariablesOveridingEnvVariablesFromTheEnvironment() throws Exception { DefaultJobPlan defaultJobPlan = jobForPipeline("foo"); EnvironmentVariables variables = new EnvironmentVariables(); variables.add("key1", "value_from_job_plan"); variables.add("key2", "value2"); defaultJobPlan.setVariables(variables); EnvironmentVariableContext contextFromEnvironment = new EnvironmentVariableContext("key1", "value_from_environment"); contextFromEnvironment.setProperty("key3", "value3", false); BuildAssignment buildAssignment = BuildAssignment.create(defaultJobPlan, BuildCause.createManualForced(), new ArrayList<>(), null, contextFromEnvironment, new ArtifactStores()); EnvironmentVariableContext context = buildAssignment.initialEnvironmentVariableContext(); assertThat(context.getProperties().size(), is(10)); assertThat(context.getProperty("key1"), is("value_from_job_plan")); assertThat(context.getProperty("key2"), is("value2")); assertThat(context.getProperty("key3"), is("value3")); }
@Test public void shouldReplaceTheTemplateCaseInsensitively() { EnvironmentVariables envVars = new EnvironmentVariables(); envVars.add("VAR", "var_value"); PipelineLabel label = PipelineLabel.create("release-${SVNMaterial}-${EnV:Var}", envVars); MaterialRevisions materialRevisions = ModificationsMother.oneUserOneFile(); label.updateLabel(materialRevisions.getNamedRevisions(), 1); assertThat(label.toString(), is("release-" + ModificationsMother.currentRevision() + "-var_value")); }
@Test public void shouldOverridePipelineEnvironmentVariablesFromBuildCauseForLabel() { StageConfig stageConfig = StageConfigMother.custom("stage", "foo", "bar"); MaterialConfigs materialConfigs = MaterialConfigsMother.defaultMaterialConfigs(); DefaultSchedulingContext context = new DefaultSchedulingContext("anonymous"); PipelineConfig pipelineConfig = new PipelineConfig(new CaseInsensitiveString("pipeline"), materialConfigs, stageConfig); pipelineConfig.addEnvironmentVariable("VAR", "value"); pipelineConfig.setLabelTemplate("${ENV:VAR}"); BuildCause buildCause = ModificationsMother.forceBuild(pipelineConfig); EnvironmentVariables overriddenVars = buildCause.getVariables(); overriddenVars.add("VAR", "overriddenValue"); buildCause.setVariables(overriddenVars); Pipeline instance = instanceFactory.createPipelineInstance(pipelineConfig, buildCause, context, "some-md5", new TimeProvider()); instance.updateCounter(1); assertThat(instance.getLabel(), is("overriddenValue")); }
public static JobPlan jobPlanWithAssociatedEntities(String jobName, long id, List<ArtifactPlan> artifactPlans, List<ArtifactPropertiesGenerator> artifactPropertiesGenerators) { ConfigurationProperty configurationProperty = new ConfigurationProperty(new ConfigurationKey("image"), new ConfigurationValue("elastic-agent")); ElasticProfile elasticProfile = new ElasticProfile("elastic", "plugin", configurationProperty); EnvironmentVariables variables = new EnvironmentVariables(); variables.add("some_var", "blah"); return new DefaultJobPlan(new Resources(new Resource("foo"), new Resource("bar")), artifactPlans, artifactPropertiesGenerators, id, defaultJobIdentifier(jobName), null, variables, new EnvironmentVariables(), elasticProfile); } }