private FreeStyleBuild getBuild() throws ExecutionException, InterruptedException { return project.scheduleBuild2(0).get(); } }
@Test public void testNoParameterBuild() throws Exception { addBuildStep(); FreeStyleBuild build = p.scheduleBuild2(0).get(); Result result = build.getResult(); assertSuccessfulBuild(result); }
/** * Tests the "URL@HEAD" format in the SVN URL */ @Test public void headRevisionCheckout() throws Exception { File testRepo = new CopyExisting(getClass().getResource("two-revisions.zip")).allocate(); SubversionSCM scm = new SubversionSCM("file://" + testRepo.toURI().toURL().getPath() + "@HEAD"); FreeStyleProject p = r.createFreeStyleProject(); p.setScm(scm); FreeStyleBuild b = p.scheduleBuild2(0, new Cause.UserIdCause()).get(); System.out.println(b.getLog(LOG_LIMIT)); r.assertLogContains("At revision 2", b); r.assertBuildStatus(Result.SUCCESS,b); }
@Test public void disableFolder() throws Exception { SampleComputedFolder d = r.jenkins.createProject(SampleComputedFolder.class, "d"); d.recompute(Result.SUCCESS); d.assertItemNames(1); d.kids.addAll(Arrays.asList("A", "B", "C")); d.recompute(Result.SUCCESS); d.assertItemNames(2, "A", "B", "C"); assertThat(d.getItem("A").scheduleBuild2(0), not(nullValue())); d.makeDisabled(true); assertThat(d.scheduleBuild2(0), is(nullValue())); assertThat(d.getItem("A").scheduleBuild2(0), is(nullValue())); d.assertItemNames(2, "A", "B", "C"); d.makeDisabled(false); d.recompute(Result.SUCCESS); assertThat(d.getItem("A").scheduleBuild2(0), not(nullValue())); d.assertItemNames(3, "A", "B", "C"); }
/** * Tests that event is properly removed if only one project is triggered * which is cancelled while in the queue. * * @throws Exception if something goes wrong */ @Test public void testCancelledQueueItemIsOnlyTriggeredProject() throws Exception { FreeStyleProject project = jenkinsRule.createFreeStyleProject(); PatchsetCreated event = Setup.createPatchsetCreated(); final GerritCause gerritCause = new GerritCause(event, false); ToGerritRunListener runListener = ToGerritRunListener.getInstance(); runListener.onTriggered(project, event); project.scheduleBuild2(QUIET_PERIOD, gerritCause); Item item = waitForBlockedItem(project, TIMEOUT_SECONDS); Queue queue = jenkinsRule.getInstance().getQueue(); queue.doCancelItem(item.getId()); assertThat(queue.isEmpty(), equalTo(true)); assertThat(project.getBuilds().size(), equalTo(0)); assertThat(runListener.isBuilding(event), equalTo(false)); }
private FreeStyleBuild configureTestBuild(String projectName) throws Exception { FreeStyleProject p = projectName == null ? rule.createFreeStyleProject() : rule.createFreeStyleProject(projectName); p.getBuildersList().add(new TestBuilder() { public boolean perform(AbstractBuild<?, ?> build, Launcher launcher, BuildListener listener) throws InterruptedException, IOException { build.getWorkspace().child("junit.xml").copyFrom( getClass().getResource("junit-report-20090516.xml")); return true; } }); p.getPublishersList().add(new JUnitResultArchiver("*.xml")); return rule.assertBuildStatus(Result.UNSTABLE, p.scheduleBuild2(0).get()); }
private int checkoutWithFormat(int format) throws Exception { super.configureSvnWorkspaceFormat(format); FreeStyleProject project = r.jenkins.createProject(FreeStyleProject.class, "svntest" + format); SubversionSCM subversionSCM = new SubversionSCM("https://svn.jenkins-ci.org/trunk/hudson/test-projects/trivial-ant"); project.setScm(subversionSCM); r.assertBuildStatusSuccess(project.scheduleBuild2(0)); // Create a status client and get the working copy format. SVNClientManager testWCVerseion = SVNClientManager.newInstance(null, "testWCVerseion", null); File path = new File(project.getWorkspace().getRemote()); return testWCVerseion.getStatusClient().doStatus(path, true).getWorkingCopyFormat(); } }
/** * Manufactures commits including metadata * @return */ private void createWorkingCopy(SubversionSCM scm) throws Exception { FreeStyleProject forCommit = r.createFreeStyleProject(); forCommit.setScm(scm); forCommit.setAssignedLabel(r.jenkins.getSelfLabel()); FreeStyleBuild b = r.assertBuildStatusSuccess(forCommit.scheduleBuild2(0).get()); workingcopy = b.getWorkspace(); }
@Test public void testNoParametersBuild() throws Exception { addBuildStep(); FreeStyleBuild build = p.scheduleBuild2(0).get(); Result result = build.getResult(); assertSuccessfulBuild(result); }
/** * This is more of a test of the core, but make sure the triggers resolve between ourselves. */ @Test public void trigger() throws Exception { Folder f = createFolder(); FreeStyleProject a = f.createProject(FreeStyleProject.class, "a"); FreeStyleProject b = f.createProject(FreeStyleProject.class, "b"); a.getPublishersList().add(new BuildTrigger("b",false)); FreeStyleBuild a1 = r.assertBuildStatusSuccess(a.scheduleBuild2(0)); for (int i=0; i<10 && b.getLastBuild()==null; i++) { Thread.sleep(100); } // make sue that a build of B happens }
private FreeStyleBuild getBuild() throws ExecutionException, InterruptedException { return project.scheduleBuild2(0).get(); } }
/** * Creates a freestyle project & build with UNSTABLE status * containing a test report from: /hudson/tasks/junit/junit-report-20090516.xml */ private FreeStyleBuild configureTestBuild(String projectName) throws Exception { FreeStyleProject p = j.createFreeStyleProject(projectName); p.getBuildersList().add(new TestBuilder() { @Override @SuppressWarnings("null") public boolean perform(AbstractBuild<?, ?> build, Launcher launcher, BuildListener listener) throws InterruptedException, IOException { build.getWorkspace().child("junit.xml").copyFrom( getClass().getResource("/hudson/tasks/junit/junit-report-20090516.xml")); return true; } }); p.getPublishersList().add(new JUnitResultArchiver("*.xml")); return j.assertBuildStatus(Result.UNSTABLE, p.scheduleBuild2(0).get()); } }
/** * Control case for {@link #changelogOnClone()}. */ @Test public void changelogOnUpdate() throws Exception { AbstractBuild<?, ?> b; FreeStyleProject p = j.createFreeStyleProject(); p.setScm(new MercurialSCM(hgInstallation(), repo.getPath(), null, null, null, null, false)); m.hg(repo, "init"); m.touchAndCommit(repo, "dir1/f1"); b = p.scheduleBuild2(0).get(); assertTrue(b.getChangeSet().isEmptySet()); m.touchAndCommit(repo, "dir2/f1"); b = p.scheduleBuild2(0).get(); assertChangeSetPaths( Collections.singletonList(Collections.singleton("dir2/f1")), b); m.touchAndCommit(repo, "dir3/f1"); b = p.scheduleBuild2(0).get(); assertChangeSetPaths( Collections.singletonList(Collections.singleton("dir3/f1")), b); }
@Test public void testBuildNoConduit() throws Exception { addBuildStep(); TestUtils.setDefaultBuildEnvironment(j); FreeStyleBuild build = p.scheduleBuild2(0).get(); assertFailureWithMessage("No credentials configured", build); }
/** Verify that running branch projects are not deleted even after an organization folder reindex. */ @Issue("JENKINS-25240") @Test public void runningBuildMeta() throws Exception { SecondOrderComputedFolder org = r.jenkins.createProject(SecondOrderComputedFolder.class, "org"); org.metakids.add(Arrays.asList("A", "B")); org.metakids.add(Arrays.asList("C", "D")); org.assertItemNames("A+B", "C+D"); FreeStyleProject b = r.jenkins.getItemByFullName("org/A+B/B", FreeStyleProject.class); b.getBuildersList().add(new SleepBuilder(Long.MAX_VALUE)); FreeStyleBuild b1 = b.scheduleBuild2(0).waitForStart(); org.metakids.remove(0); org.assertItemNames("A+B", "C+D"); assertTrue(b1.isBuilding()); b1.doStop(); r.assertBuildStatus(Result.ABORTED, r.waitForCompletion(b1)); org.assertItemNames("C+D"); }
protected FreeStyleBuild buildWithCommit(JSONObject sendMessageResponse) throws Exception { Map<String, JSONObject> responses = new HashMap<String, JSONObject>(); responses.put("harbormaster.sendmessage", sendMessageResponse); responses.put("harbormaster.createartifact", new JSONObject()); conduit = new FakeConduit(responses); TestUtils.addValidCredentials(conduit); addBuildStep(); TestUtils.setDefaultBuildEnvironmentForCommits(j); return p.scheduleBuild2(0).get(); }
@Test public void emptyDirectoryAllowEmptyResult() throws Exception { JUnitResultArchiver a = new JUnitResultArchiver("TEST-*.xml"); a.setAllowEmptyResults(true); FreeStyleProject freeStyleProject = j.createFreeStyleProject(); freeStyleProject.getPublishersList().add(a); j.assertBuildStatus(Result.SUCCESS, freeStyleProject.scheduleBuild2(0).get()); }
@Test public void testNoCredentials() throws Exception { addBuildStep(); TestUtils.setDefaultBuildEnvironment(j); FreeStyleBuild build = p.scheduleBuild2(0).get(); assertFailureWithMessage("No credentials configured for conduit", build); }
protected FreeStyleBuild buildWithConduit( JSONObject queryDiffsResponse, JSONObject postCommentResponse, JSONObject sendMessageResponse, boolean harbormaster) throws Exception { Map<String, JSONObject> responses = new HashMap<String, JSONObject>(); if (queryDiffsResponse != null) { responses.put("differential.querydiffs", queryDiffsResponse); } if (postCommentResponse != null) { responses.put("differential.createcomment", postCommentResponse); } if (sendMessageResponse != null) { responses.put("harbormaster.sendmessage", sendMessageResponse); } responses.put("differential.getcommitmessage", new JSONObject().element("result", "commit message")); conduit = new FakeConduit(responses); TestUtils.addValidCredentials(conduit); addBuildStep(); TestUtils.setDefaultBuildEnvironment(j, harbormaster); return p.scheduleBuild2(0).get(); }
@Bug(11460) @Test public void trailingUrlWhitespace() throws Exception { FreeStyleProject p = j.createFreeStyleProject(); p.setScm(new MercurialSCM(hgInstallation(), repo.getPath() + " ", null, null, null, null, false)); m.hg(repo, "init"); m.touchAndCommit(repo, "dir1/f1"); AbstractBuild<?, ?> b = p.scheduleBuild2(0).get(); assertEquals(Result.SUCCESS, b.getResult()); }