@Test public void shouldLoadJobProperties() throws Exception { String jobXml = "<job name=\"dev\">\n" + " <properties>\n" + " <property name=\"coverage\" src=\"reports/emma.html\" xpath=\"//coverage/class\" />\n" + " <property name=\"prop2\" src=\"test.xml\" xpath=\"//value\" />\n" + " </properties>\n" + "</job>"; CruiseConfig config = loader.loadConfigHolder(ConfigFileFixture.withJob(jobXml)).configForEdit; JobConfig jobConfig = config.pipelineConfigByName(new CaseInsensitiveString("pipeline1")).get(1).allBuildPlans().first(); assertThat(jobConfig.getProperties().first(), is(new ArtifactPropertyConfig("coverage", "reports/emma.html", "//coverage/class"))); assertThat(jobConfig.getProperties().get(1), is(new ArtifactPropertyConfig("prop2", "test.xml", "//value"))); }
public static void toJSON(OutputWriter jsonWriter, JobConfig jobConfig) { if (!jobConfig.errors().isEmpty()) { jsonWriter.addChild("errors", errorWriter -> { HashMap<String, String> errorMapping = new HashMap<>(); errorMapping.put("runType", "run_instance_count"); new ErrorGetter(errorMapping).toJSON(errorWriter, jobConfig); }); } jsonWriter.addIfNotNull("name", jobConfig.name()); addRunInstanceCount(jsonWriter, jobConfig); addTimeout(jsonWriter, jobConfig); jsonWriter.addIfNotNull("elastic_profile_id", jobConfig.getElasticProfileId()); jsonWriter.addChildList("environment_variables", envVarsWriter -> EnvironmentVariableRepresenter.toJSON(envVarsWriter, jobConfig.getVariables())); jsonWriter.addChildList("resources", getResourceNames(jobConfig)); jsonWriter.addChildList("tasks", tasksWriter -> TaskRepresenter.toJSONArray(tasksWriter, jobConfig.getTasks())); jsonWriter.addChildList("tabs", tabsWriter -> TabConfigRepresenter.toJSONArray(tabsWriter, jobConfig.getTabs())); jsonWriter.addChildList("artifacts", getArtifacts(jobConfig)); if (jobConfig.getProperties().isEmpty()) { jsonWriter.renderNull("properties"); } else { jsonWriter.addChildList("properties", propertiesWriter -> PropertyConfigRepresenter.toJSONArray(propertiesWriter, jobConfig.getProperties())); } }
public static void toJSON(OutputWriter jsonWriter, JobConfig jobConfig) { if (!jobConfig.errors().isEmpty()) { jsonWriter.addChild("errors", errorWriter -> { HashMap<String, String> errorMapping = new HashMap<>(); errorMapping.put("runType", "run_instance_count"); new ErrorGetter(errorMapping).toJSON(errorWriter, jobConfig); }); } jsonWriter.addIfNotNull("name", jobConfig.name()); addRunInstanceCount(jsonWriter, jobConfig); addTimeout(jsonWriter, jobConfig); jsonWriter.addIfNotNull("elastic_profile_id", jobConfig.getElasticProfileId()); jsonWriter.addChildList("environment_variables", envVarsWriter -> EnvironmentVariableRepresenter.toJSON(envVarsWriter, jobConfig.getVariables())); jsonWriter.addChildList("resources", getResourceNames(jobConfig)); jsonWriter.addChildList("tasks", tasksWriter -> TaskRepresenter.toJSONArray(tasksWriter, jobConfig.getTasks())); jsonWriter.addChildList("tabs", tabsWriter -> TabConfigRepresenter.toJSONArray(tabsWriter, jobConfig.getTabs())); jsonWriter.addChildList("artifacts", getArtifacts(jobConfig)); if (jobConfig.getProperties().isEmpty()) { jsonWriter.renderNull("properties"); } else { jsonWriter.addChildList("properties", propertiesWriter -> PropertyConfigRepresenter.toJSONArray(propertiesWriter, jobConfig.getProperties())); } }
public JobPlan createJobPlan(JobConfig config, SchedulingContext context) { JobIdentifier identifier = new JobIdentifier(); String elasticProfileId = config.getElasticProfileId(); ElasticProfile elasticProfile = null; if (elasticProfileId != null) { elasticProfile = context.getElasticProfile(elasticProfileId); } final EnvironmentVariables variables = EnvironmentVariables.toEnvironmentVariables(context.overrideEnvironmentVariables(config.getVariables()).getEnvironmentVariablesConfig()); return new DefaultJobPlan(new Resources(config.resourceConfigs()), ArtifactPlan.toArtifactPlans(config.artifactConfigs()), ArtifactPropertiesGenerator.toArtifactProperties(config.getProperties()), -1, identifier, null, variables, new EnvironmentVariables(), elasticProfile); } }
public static JobPlan createJobPlan(JobConfig jobConfig, JobIdentifier jobIdentifier, SchedulingContext schedulingContext) { final EnvironmentVariables environmentVariables = EnvironmentVariables.toEnvironmentVariables(schedulingContext.overrideEnvironmentVariables(jobConfig.getVariables()).getEnvironmentVariablesConfig()); final List<ArtifactPropertiesGenerator> artifactPropertiesGenerators = ArtifactPropertiesGenerator.toArtifactProperties(jobConfig.getProperties()); final List<ArtifactPlan> artifactPlans = ArtifactPlan.toArtifactPlans(jobConfig.artifactConfigs()); return new DefaultJobPlan(new Resources(jobConfig.resourceConfigs()), artifactPlans, artifactPropertiesGenerators, -1, jobIdentifier, null, environmentVariables, new EnvironmentVariables(), null); }
copyCollectionErrors(fromJob.artifactConfigs(), toJob.artifactConfigs()); copyCollectionErrors(fromJob.getTabs(), toJob.getTabs()); copyCollectionErrors(fromJob.getProperties(), toJob.getProperties()); copyCollectionErrors(fromJob.getVariables(), toJob.getVariables()); Tasks toTasks = toJob.getTasks();
public static JobConfig jobConfig() { JobConfig job = createJobConfigWithResourceAndArtifactPlans(); addTask(job); job.setTimeout("100"); job.setRunInstanceCount(3); job.artifactConfigs().clear(); job.artifactConfigs().add(new BuildArtifactConfig("target/dist.jar", "pkg")); job.artifactConfigs().add(new TestArtifactConfig("target/reports/**/*Test.xml", "reports")); job.addTab("coverage", "Jcoverage/index.html"); job.addTab("something", "something/path.html"); job.getProperties().add(new ArtifactPropertyConfig("coverage.class", "target/emma/coverage.xml", "substring-before(//report/data/all/coverage[starts-with(@type,'class')]/@value, '%')")); return job; }
CRJob jobToCRJob(JobConfig jobConfig) { CRJob job = new CRJob(); job.setName(jobConfig.name().toString()); job.setResources(jobConfig.resourceConfigs().resourceNames()); job.setElasticProfileId(jobConfig.getElasticProfileId()); for (EnvironmentVariableConfig var: jobConfig.getVariables()) { job.addEnvironmentVariable(environmentVariableConfigToCREnvironmentVariable(var)); } for (ArtifactPropertyConfig prop: jobConfig.getProperties()) { job.addProperty(new CRPropertyGenerator(prop.getName(), prop.getSrc(), prop.getXpath())); } for(Tab tab: jobConfig.getTabs()) { job.addTab(new CRTab(tab.getName(), tab.getPath())); } for (ArtifactConfig artifactConfig: jobConfig.artifactConfigs()) { job.addArtifact(artifactConfigToCRArtifact(artifactConfig)); } if (jobConfig.isRunOnAllAgents()) { job.setRunOnAllAgents(jobConfig.isRunOnAllAgents()); } else { job.setRunInstanceCount(jobConfig.getRunInstanceCountValue()); } for (Task task: jobConfig.tasks()) { job.addTask(taskToCRTask(task)); } if (jobConfig.getTimeout() != null) { job.setTimeout(Integer.valueOf(jobConfig.getTimeout())); } return job; }
ArtifactPropertiesConfig artifactPropertiesConfig = jobConfig.getProperties(); if (crJob.getArtifactPropertiesGenerators() != null) for (CRPropertyGenerator crPropertyGenerator : crJob.getArtifactPropertiesGenerators()) {