logger.info(jobName + " is buildable: " + job.details().isBuildable()); int lastBuildNumber = job.details().getLastBuild().getNumber(); int nextBuildNumber = job.details().getNextBuildNumber(); while(job.details().isInQueue()){ waitFor++; logger.info("Job in queue"); JobWithDetails jobWithDetails =job.details(); if(job.details().getBuildByNumber(nextBuildNumber).details().isBuilding()) { logger.info("Jenkins job "+ jobName +" is building with Build Number: " + nextBuildNumber); return "Jenkins job "+ jobName +" is building with Build Number: " + nextBuildNumber;
public Void call() throws InterruptedException, IOException { while(true) { Thread.sleep(500); JobWithDetails jwd = server.getJobs().get(jobName).details(); try { // Throws NPE until the first build succeeds jwd.getLastSuccessfulBuild(); } catch (NullPointerException e) { continue; } // build succeeded return null; } } }
@Test public void testQueryJobTask() { Map<String, Job> map = jenkinsService.getJobs(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) { Map.Entry entry = (Map.Entry) iter.next(); String key = (String)entry.getKey(); Job job = (Job)entry.getValue(); System.err.println(job.getName()); try{ List<Artifact> as= job.details().getLastBuild().details().getArtifacts(); for(Artifact artifact :as){ System.err.println( artifact.getDisplayPath()); System.err.println( artifact.getFileName()); System.err.println( artifact.getRelativePath()); } }catch (IOException ie){ } } }
@Test public void shouldReturnBuildsForJob() throws Exception { JobWithDetails job = server.getJobs().get("trunk").details(); assertEquals(5, job.getBuilds().get(0).getNumber()); }
@Test public void testCreateJob() throws Exception { final String sourceJob = "pr"; final String jobName = "test-job-" + UUID.randomUUID().toString(); String sourceXml = server.getJobXml(sourceJob); server.createJob(jobName, sourceXml); Map<String, Job> jobs = server.getJobs(); assertTrue(jobs.containsKey(jobName)); JobWithDetails thisJob = jobs.get(jobName).details(); assertNotNull(thisJob); assertTrue(thisJob.getBuilds().size() == 0); thisJob.build(ImmutableMap.of("foo_param", "MUST_PROVIDE_VALUES_DEFAULTS_DONT_WORK")); // wait to see if the job finishes, but with a timeout Future<Void> future = executor.submit(new PerformPollingTest(server, jobName)); // If this times out, either jenkins is slow or our test failed! // IME, usually takes about 10-15 seconds future.get(30, TimeUnit.SECONDS); Build b = server.getJobs().get(jobName).details().getLastSuccessfulBuild(); assertTrue(b != null); }
@Test public void shouldReturnBuildStatusForBuild() throws Exception { JobWithDetails job = server.getJobs().get("pr").details(); BuildWithDetails build = job.getBuilds().get(0).details(); assertEquals(BuildResult.SUCCESS, build.getResult()); assertEquals("foobar", build.getParameters().get("REVISION")); }
JobWithDetails jobWithDetails = job.details(); Build build = jobWithDetails.getLastBuild(); BuildWithDetails buildWithDetails = build.details();