public Tabs getCustomizedTabs(String pipelineName, String stageName, String buildName) { try { JobConfig plan = getCurrentConfig().jobConfigByName(pipelineName, stageName, buildName, false); return plan.getTabs(); } catch (Exception e) { return new Tabs(); } }
public static List<Builder> createBuildersAssumingAllExecTasks(CruiseConfig config, String pipelineName, String stageName, String jobName) { Tasks tasks = config.jobConfigByName(pipelineName, stageName, jobName, true).getTasks(); ArrayList<Builder> builders = new ArrayList<>(); for (Task task : tasks) { builders.add(builderFor((ExecTask) task)); } return builders; }
private void setupJobWithTasks(CruiseConfig config, Task... tasks) throws Exception { goConfigMother.addPipeline(config, "cruise", "dev", "linux-firefox"); JobConfig job = config.jobConfigByName("cruise", "dev", "linux-firefox", true); for (Task task : tasks) { job.addTask(task); } }
private JobPlan toPlan(final CruiseConfig config) throws Exception { JobConfig plan = config.jobConfigByName(PIPELINE_NAME, STAGE_NAME, JOB_PLAN_NAME, true); return JobInstanceMother.createJobPlan(plan, new JobIdentifier(PIPELINE_NAME, PIPELINE_LABEL, STAGE_NAME, "1", JOB_PLAN_NAME), new DefaultSchedulingContext()); } }
@Test public void shouldGetJobConfigByName() { goConfigMother.addPipeline(cruiseConfig, "cruise", "dev", "linux-firefox"); JobConfig job = cruiseConfig.jobConfigByName("cruise", "dev", "linux-firefox", true); assertNotNull(job); }
@Test public void shouldFindBuildPlanWithStages() throws Exception { try { cruiseConfig.jobConfigByName("cetaceans", "whales", "right whale", true); fail("Expected not to find right whale in stage whales in pipeline cetaceans"); } catch (RuntimeException ex) { // ignore } addPipeline("cetaceans", "whales", jobConfig("whale")); try { cruiseConfig.jobConfigByName("cetaceans", "whales", "dolphin", true); } catch (Exception e) { assertThat(e.getMessage(), is("Job [dolphin] is not found in pipeline [cetaceans] stage [whales].")); } try { cruiseConfig.jobConfigByName("primates", "whales", "dolphin", true); fail("Expected not to find primates in stage whales in pipeline cetaceans"); } catch (RuntimeException ex) { // ignore } JobConfig plan = jobConfig("baboon"); addPipeline("primates", "apes", plan); assertThat(cruiseConfig.jobConfigByName("primates", "apes", "baboon", true), is(plan)); }
@Test public void shouldLoadRakeBuilderWithEmptyOnCancel() throws Exception { CruiseConfig cruiseConfig = ConfigMigrator.loadWithMigration(CONFIG_WITH_NANT_AND_EXEC_BUILDER).config; JobConfig plan = cruiseConfig.jobConfigByName("pipeline1", "mingle", "cardlist", true); RakeTask builder = (RakeTask) plan.tasks().findFirstByType(RakeTask.class); assertThat(builder, notNullValue()); }
@Test public void shouldMigrateAnArtifactSourceWithJustWhitespaceToStar() throws Exception { GoConfigHolder holder = ConfigMigrator.loadWithMigration(configWithArtifactSourceAs(" \t ")); CruiseConfig cruiseConfig = holder.config; JobConfig plan = cruiseConfig.jobConfigByName("pipeline", "stage", "job", true); assertThat(plan.artifactConfigs().getBuiltInArtifactConfigs().get(0).getSource(), is("*")); }
@Test public void shouldRetainArtifactSourceThatIsNotWhitespace() throws Exception { GoConfigHolder holder = ConfigMigrator.loadWithMigration(configWithArtifactSourceAs("t ")); CruiseConfig cruiseConfig = holder.config; JobConfig plan = cruiseConfig.jobConfigByName("pipeline", "stage", "job", true); assertThat(plan.artifactConfigs().getBuiltInArtifactConfigs().get(0).getSource(), is("t ")); }
@Test public void shouldMigrateAnEmptyArtifactSourceToStar() throws Exception { GoConfigHolder holder = ConfigMigrator.loadWithMigration(configWithArtifactSourceAs("")); CruiseConfig cruiseConfig = holder.config; JobConfig plan = cruiseConfig.jobConfigByName("pipeline", "stage", "job", true); assertThat(plan.artifactConfigs().getBuiltInArtifactConfigs().get(0).getSource(), is("*")); }
@Test public void shouldLoadNAntBuilder() throws Exception { CruiseConfig cruiseConfig = ConfigMigrator.loadWithMigration( CONFIG_WITH_NANT_AND_EXEC_BUILDER).config; JobConfig plan = cruiseConfig.jobConfigByName("pipeline1", "mingle", "cardlist", true); BuildTask builder = (BuildTask) plan.tasks().findFirstByType(NantTask.class); assertThat(builder.getTarget(), is("all")); }
@Test public void shouldLoadAntBuilder() throws Exception { CruiseConfig cruiseConfig = xmlLoader.loadConfigHolder(CONFIG_WITH_ANT_BUILDER).config; JobConfig plan = cruiseConfig.jobConfigByName("pipeline1", "mingle", "cardlist", true); assertThat(plan.tasks(), iterableWithSize(1)); AntTask builder = (AntTask) plan.tasks().first(); assertThat(builder.getTarget(), is("all")); final ArtifactConfigs cardListArtifacts = cruiseConfig.jobConfigByName("pipeline1", "mingle", "cardlist", true).artifactConfigs(); assertThat(cardListArtifacts.size(), is(1)); ArtifactConfig artifactConfigPlan = cardListArtifacts.get(0); assertThat(artifactConfigPlan.getArtifactType(), is(ArtifactType.test)); }
@Test public void shouldLoadExecBuilder() throws Exception { CruiseConfig cruiseConfig = ConfigMigrator.loadWithMigration(CONFIG_WITH_NANT_AND_EXEC_BUILDER).config; JobConfig plan = cruiseConfig.jobConfigByName("pipeline1", "mingle", "cardlist", true); ExecTask builder = (ExecTask) plan.tasks().findFirstByType(ExecTask.class); assertThat(builder, is(new ExecTask("ls", "-la", "workdir"))); builder = (ExecTask) plan.tasks().get(2); assertThat(builder, is(new ExecTask("ls", "", (String) null))); }
@Test public void shouldLoadTasksWithOnCancel() throws Exception { CruiseConfig config = ConfigMigrator.loadWithMigration(TASKS_WITH_ON_CANCEL).config; JobConfig job = config.jobConfigByName("pipeline1", "mingle", "cardlist", true); Task task = job.tasks().findFirstByType(AntTask.class); assertThat(task.hasCancelTask(), is(true)); assertThat(task.cancelTask(), is(new ExecTask("kill.rb", "", "utils"))); Task task2 = job.tasks().findFirstByType(ExecTask.class); assertThat(task2.hasCancelTask(), is(false)); }
@Test public void shouldWriteConfigWithTaskExecutionConditions() throws Exception { CruiseConfig cruiseConfig = ConfigMigrator.load(ConfigFileFixture.TASKS_WITH_CONDITION); xmlWriter.write(cruiseConfig, output, false); final ByteArrayInputStream inputStream = new ByteArrayInputStream(output.toByteArray()); CruiseConfig config = xmlLoader.loadConfigHolder(IOUtils.toString(inputStream, UTF_8)).config; JobConfig job = config.jobConfigByName("pipeline1", "mingle", "cardlist", true); assertThat(job.tasks().size(), is(2)); assertThat(job.tasks().findFirstByType(AntTask.class).getConditions().get(0), is(new RunIfConfig("failed"))); RunIfConfigs conditions = job.tasks().findFirstByType(NantTask.class).getConditions(); assertThat(conditions.get(0), is(new RunIfConfig("failed"))); assertThat(conditions.get(1), is(new RunIfConfig("any"))); assertThat(conditions.get(2), is(new RunIfConfig("passed"))); }
@Test public void shouldLoadTasksWithExecutionCondition() throws Exception { CruiseConfig config = ConfigMigrator.loadWithMigration(TASKS_WITH_CONDITION).config; JobConfig job = config.jobConfigByName("pipeline1", "mingle", "cardlist", true); assertThat(job.tasks().size(), is(2)); assertThat(job.tasks().findFirstByType(AntTask.class).getConditions().get(0), is(new RunIfConfig("failed"))); RunIfConfigs conditions = job.tasks().findFirstByType(NantTask.class).getConditions(); assertThat(conditions.get(0), is(new RunIfConfig("failed"))); assertThat(conditions.get(1), is(new RunIfConfig("any"))); assertThat(conditions.get(2), is(new RunIfConfig("passed"))); }