@Override public Action getAction(AbstractBuild<?,?> build, TaskListener listener) { SubversionTagAction tagAction = build.getAction(SubversionTagAction.class); RevisionParameterAction revisionAction = build.getAction(RevisionParameterAction.class); List<SvnInfo> infos = new ArrayList<SvnInfo>(); if (tagAction == null ) { listener.getLogger().println( Plugin.LOG_TAG + " no SubversionTagAction found -- is this project an SVN project ?"); } else { infos.addAll(tagAction.getTags().keySet()); } if(includeUpstreamParameters == true) { if (revisionAction == null ) { listener.getLogger().println( Plugin.LOG_TAG + " no RevisionParameterAction found -- project did not have SVN parameters passed to it?"); } else { infos.addAll(revisionAction.getRevisions()); } } //if infos is empty don't return an action. return (infos.size() == 0 ) ? null : new RevisionParameterAction(infos); }
/** * Tests a checkout triggered from the post-commit hook */ @Test @Ignore("TODO use docker-fixtures for a reproducible test case") public void postCommitTriggerMultipleSvnLocations() throws Exception { FreeStyleProject p = createPostCommitTriggerJobMultipleSvnLocations(); FreeStyleBuild b = sendCommitTriggerMultipleSvnLocations(p, true); assertTrue(getActualRevision(b, "https://svn.jenkins-ci.org/trunk/hudson/test-projects/trivial-ant") <= 18075); Long actualRevision = getActualRevision(b, "https://svn.jenkins-ci.org/trunk/hudson/test-projects/trivial-maven"); assertEquals(Long.valueOf(18075), actualRevision); List<RevisionParameterAction> actions = b.getActions(RevisionParameterAction.class); assertEquals(1, actions.size()); RevisionParameterAction action = actions.get(0); assertEquals(2, action.getRevisions().size()); }