public JobConfig(String planName) { this(new CaseInsensitiveString(planName), new ResourceConfigs(), new ArtifactConfigs()); }
private static void setArtifacts(JobConfig jobConfig) { ArtifactConfigs artifactConfigs = new ArtifactConfigs(); jsonReader.readArrayIfPresent("artifacts", artifacts -> { artifacts.forEach(artifact -> { artifactConfigs.add(ArtifactRepresenter.fromJSON(new JsonReader(artifact.getAsJsonObject()))); }); }); jobConfig.setArtifactConfigs(artifactConfigs); }
private static void setArtifacts(JobConfig jobConfig) { ArtifactConfigs artifactConfigs = new ArtifactConfigs(); jsonReader.readArrayIfPresent("artifacts", artifacts -> { artifacts.forEach(artifact -> { artifactConfigs.add(ArtifactRepresenter.fromJSON(new JsonReader(artifact.getAsJsonObject()))); }); }); jobConfig.setArtifactConfigs(artifactConfigs); }
public static JobConfigs jobConfigs(String... buildNames) { JobConfigs jobConfigs = new JobConfigs(); for (String buildName : buildNames) { jobConfigs.add(new JobConfig(new CaseInsensitiveString(buildName), new ResourceConfigs(), new ArtifactConfigs())); } return jobConfigs; }
public static JobConfigs withBuildPlans(String... jobConfigNames) { JobConfigs jobConfigs = new JobConfigs(); for (String planName : jobConfigNames) { jobConfigs.add(new JobConfig(new CaseInsensitiveString(planName), new ResourceConfigs(), new ArtifactConfigs())); } return jobConfigs; }
@Test public void shouldClearAllArtifactsWhenTheMapIsNull() { ArtifactConfigs artifactConfigs = new ArtifactConfigs(); artifactConfigs.add(new BuildArtifactConfig("src", "dest")); artifactConfigs.setConfigAttributes(null); assertThat(artifactConfigs.size(), is(0)); }
@Test public void shouldAddDuplicatedArtifactSoThatValidationKicksIn() throws Exception { final ArtifactConfigs artifactConfigs = new ArtifactConfigs(); assertThat(artifactConfigs.size(), is(0)); artifactConfigs.add(new BuildArtifactConfig("src", "dest")); artifactConfigs.add(new BuildArtifactConfig("src", "dest")); assertThat(artifactConfigs.size(), is(2)); }
@Test public void findByArtifactId_shouldReturnPluggableArtifactConfigs() { ArtifactConfigs allConfigs = new ArtifactConfigs(); allConfigs.add(new PluggableArtifactConfig("s3", "cd.go.s3")); allConfigs.add(new PluggableArtifactConfig("docker", "cd.go.docker")); final PluggableArtifactConfig s3 = allConfigs.findByArtifactId("s3"); assertThat(s3, is(new PluggableArtifactConfig("s3", "cd.go.s3"))); }
public static StageConfig oneBuildPlanWithResourcesAndMaterials(String stageName, String buildName) { JobConfigs jobConfigs = new JobConfigs(new JobConfig( new CaseInsensitiveString(buildName), new ResourceConfigs(new ResourceConfig("Windows"), new ResourceConfig(".NET")), new ArtifactConfigs())); return stageConfig(stageName, jobConfigs); }
public static JobConfig createJobConfigWithJobNameAndEmptyResources() { return new JobConfig(new CaseInsensitiveString("defaultJob"), new ResourceConfigs(new ResourceConfig("Linux"), new ResourceConfig()), new ArtifactConfigs()); }
public static StageConfig twoBuildPlansWithResourcesAndMaterials(String stageName) { JobConfig windoze = new JobConfig( new CaseInsensitiveString("WinBuild"), new ResourceConfigs(new ResourceConfig("Windows"), new ResourceConfig(".NET")), new ArtifactConfigs(Arrays.asList(new TestArtifactConfig("junit", "junit"))) ); JobConfig linux = new JobConfig( new CaseInsensitiveString("NixBuild"), new ResourceConfigs(new ResourceConfig("Linux"), new ResourceConfig("java")), new ArtifactConfigs(Arrays.asList(new TestArtifactConfig("junit", "junit"))) ); JobConfigs jobConfigs = new JobConfigs(windoze, linux); return stageConfig(stageName, jobConfigs); }
public static JobConfig createJobConfigWithResourceAndArtifactPlans() { return new JobConfig(new CaseInsensitiveString("defaultJob"), new ResourceConfigs(new ResourceConfig("Linux"), new ResourceConfig("Java")), new ArtifactConfigs(Arrays.asList(new BuildArtifactConfig("src", "dest")))); }
@Test public void findByArtifactId_shouldReturnNullWhenPluggableArtifactConfigNotExistWithGivenId() { ArtifactConfigs allConfigs = new ArtifactConfigs(); allConfigs.add(new PluggableArtifactConfig("s3", "cd.go.s3")); allConfigs.add(new PluggableArtifactConfig("docker", "cd.go.docker")); final PluggableArtifactConfig s3 = allConfigs.findByArtifactId("foo"); assertNull(s3); } }
@Test public void shouldReturnBuildInstance() { ArtifactConfigs artifactConfigs = new ArtifactConfigs(); JobConfig jobConfig = new JobConfig(new CaseInsensitiveString("test"), null, artifactConfigs); RunOnAllAgents.CounterBasedJobNameGenerator jobNameGenerator = new RunOnAllAgents.CounterBasedJobNameGenerator(CaseInsensitiveString.str(jobConfig.name())); JobInstances jobs = instanceFactory.createJobInstance(new CaseInsensitiveString("stage_foo"), jobConfig, new DefaultSchedulingContext(), new TimeProvider(), jobNameGenerator); JobInstance jobInstance = jobs.first(); assertThat(jobConfig.name(), is(new CaseInsensitiveString(jobInstance.getName()))); assertThat(jobInstance.getState(), is(JobState.Scheduled)); assertThat(jobInstance.getScheduledDate(), is(notNullValue())); }
@Test public void shouldCreateJobPlan() { ResourceConfigs resourceConfigs = new ResourceConfigs(); ArtifactConfigs artifactConfigs = new ArtifactConfigs(); JobConfig jobConfig = new JobConfig(new CaseInsensitiveString("test"), resourceConfigs, artifactConfigs); JobPlan plan = instanceFactory.createJobPlan(jobConfig, new DefaultSchedulingContext()); assertThat(plan, is(new DefaultJobPlan(new Resources(resourceConfigs), ArtifactPlan.toArtifactPlans(artifactConfigs), new ArrayList<>(), -1, new JobIdentifier(), null, new EnvironmentVariables(), new EnvironmentVariables(), null))); }
@Test public void getArtifactConfigs_shouldReturnBuiltinArtifactConfigs() { ArtifactConfigs allConfigs = new ArtifactConfigs(); allConfigs.add(new BuildArtifactConfig("src", "dest")); allConfigs.add(new BuildArtifactConfig("java", null)); allConfigs.add(new PluggableArtifactConfig("s3", "cd.go.s3")); allConfigs.add(new PluggableArtifactConfig("docker", "cd.go.docker")); final List<BuiltinArtifactConfig> artifactConfigs = allConfigs.getBuiltInArtifactConfigs(); assertThat(artifactConfigs, hasSize(2)); assertThat(artifactConfigs, containsInAnyOrder( new BuildArtifactConfig("src", "dest"), new BuildArtifactConfig("java", null) )); }
@Test public void shouldAddErrorTheMessageOnTheRightFieldOfTheRightElement() throws NoSuchFieldException { ResourceConfig resourceConfig = new ResourceConfig(); resourceConfig.setName("#{not-found}"); PipelineConfig pipelineConfig = PipelineConfigMother.createPipelineConfig("cruise", "dev", "ant"); pipelineConfig.setLabelTemplate("#a"); pipelineConfig.get(0).getJobs().addJobWithoutValidityAssertion(new JobConfig(new CaseInsensitiveString("another"), new ResourceConfigs(resourceConfig), new ArtifactConfigs())); new ParamResolver(new ParamSubstitutionHandlerFactory(params(param("foo", "pavan"), param("bar", "jj"))), fieldCache).resolve(pipelineConfig); assertThat(pipelineConfig.errors().on("labelTemplate"), is("Error when processing params for '#a' used in field 'labelTemplate', # must be followed by a parameter pattern or escaped by another #")); assertThat(resourceConfig.errors().on(JobConfig.RESOURCES), is("Parameter 'not-found' is not defined. All pipelines using this parameter directly or via a template must define it.")); }
@Test public void shouldValidateTree() { ArtifactConfigs artifactConfigs = new ArtifactConfigs(); artifactConfigs.add(new BuildArtifactConfig("src", "dest")); artifactConfigs.add(new BuildArtifactConfig("src", "dest")); artifactConfigs.add(new BuildArtifactConfig("src", "../a")); artifactConfigs.validateTree(null); assertThat(artifactConfigs.get(0).errors().on(BuiltinArtifactConfig.DEST), is("Duplicate artifacts defined.")); assertThat(artifactConfigs.get(0).errors().on(BuiltinArtifactConfig.SRC), is("Duplicate artifacts defined.")); assertThat(artifactConfigs.get(1).errors().on(BuiltinArtifactConfig.DEST), is("Duplicate artifacts defined.")); assertThat(artifactConfigs.get(1).errors().on(BuiltinArtifactConfig.SRC), is("Duplicate artifacts defined.")); assertThat(artifactConfigs.get(2).errors().on(BuiltinArtifactConfig.DEST), is("Invalid destination path. Destination path should match the pattern " + FilePathTypeValidator.PATH_PATTERN)); }
@Test public void shouldNotThrowExceptionIfNoRoleUsed() { StageConfig stage = new StageConfig(new CaseInsensitiveString("stage-foo"), new JobConfigs(new JobConfig(new CaseInsensitiveString("build-1"), new ResourceConfigs(), new ArtifactConfigs(), new Tasks(new ExecTask("ls", "-la", "work")) )) ); PipelineConfigs pipelinesConfig = new BasicPipelineConfigs("group", new Authorization(), new PipelineConfig(new CaseInsensitiveString("pipeline"), new MaterialConfigs(), stage)); CruiseConfig config = new BasicCruiseConfig(pipelinesConfig); config.server().security().addRole(new RoleConfig(new CaseInsensitiveString("role1"))); pipelinesConfig.validate(ConfigSaveValidationContext.forChain(config)); assertThat(pipelinesConfig.errors().isEmpty(), is(true)); }
public static StageConfig stageConfigWithArtifact(String stageName, String jobName, ArtifactType artifactType) { ArtifactConfigs artifactConfigsWithTests = new ArtifactConfigs(); artifactConfigsWithTests.add(createArtifactConfig(artifactType)); JobConfig job1 = new JobConfig(new CaseInsensitiveString(jobName), new ResourceConfigs("abc"), artifactConfigsWithTests); StageConfig stage = new StageConfig(new CaseInsensitiveString(stageName), new JobConfigs(job1)); return stage; }