JENKINS-37873# Self link fix for branch queue items (#460)
This commit is contained in:
parent
1d0ce63b2c
commit
a0d9e5a0b2
|
@ -34,6 +34,7 @@ import org.jvnet.hudson.test.MockFolder;
|
|||
import java.io.IOException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
@ -366,6 +367,26 @@ public class MultiBranchTest extends PipelineBaseTest {
|
|||
validateRun(b4, run.get(0));
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void startMultiBranchPipelineRuns() throws Exception {
|
||||
WorkflowMultiBranchProject mp = j.jenkins.createProject(WorkflowMultiBranchProject.class, "p");
|
||||
mp.getSourcesList().add(new BranchSource(new GitSCMSource(null, sampleRepo.toString(), "", "*", "", false),
|
||||
new DefaultBranchPropertyStrategy(new BranchProperty[0])));
|
||||
for (SCMSource source : mp.getSCMSources()) {
|
||||
assertEquals(mp, source.getOwner());
|
||||
}
|
||||
WorkflowJob p = scheduleAndFindBranchProject(mp, "feature%2Fux-1");
|
||||
j.waitUntilNoActivity();
|
||||
|
||||
Map resp = post("/organizations/jenkins/pipelines/p/branches/"+ Util.rawEncode("feature%2Fux-1")+"/runs/",
|
||||
Collections.EMPTY_MAP);
|
||||
String id = (String) resp.get("id");
|
||||
String link = getHrefFromLinks(resp, "self");
|
||||
Assert.assertEquals("/blue/rest/organizations/jenkins/pipelines/p/branches/feature%252Fux-1/queue/"+id+"/", link);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void getMultiBranchPipelineActivityRuns() throws Exception {
|
||||
WorkflowMultiBranchProject mp = j.jenkins.createProject(WorkflowMultiBranchProject.class, "p");
|
||||
|
|
|
@ -6,7 +6,7 @@ import hudson.model.Job;
|
|||
import hudson.model.Queue;
|
||||
import io.jenkins.blueocean.commons.ServiceException;
|
||||
import io.jenkins.blueocean.rest.hal.Link;
|
||||
import io.jenkins.blueocean.rest.model.BluePipeline;
|
||||
import io.jenkins.blueocean.rest.hal.LinkResolver;
|
||||
import io.jenkins.blueocean.rest.model.BlueQueueContainer;
|
||||
import io.jenkins.blueocean.rest.model.BlueQueueItem;
|
||||
import jenkins.model.Jenkins;
|
||||
|
@ -51,17 +51,17 @@ public class QueueContainerImpl extends BlueQueueContainer {
|
|||
* @return List of items newest first
|
||||
*/
|
||||
public static List<BlueQueueItem> getQueuedItems(Job job) {
|
||||
BluePipeline pipeline = new AbstractPipelineImpl(job);
|
||||
|
||||
Link pipelineLink = LinkResolver.resolveLink(job);
|
||||
if(job instanceof BuildableItem) {
|
||||
BuildableItem task = (BuildableItem)job;
|
||||
List<Queue.Item> items = Jenkins.getInstance().getQueue().getItems(task);
|
||||
List<BlueQueueItem> items2 = Lists.newArrayList();
|
||||
for (int i = 0; i < items.size(); i++) {
|
||||
Link self = pipelineLink.rel("queue").rel(Long.toString(items.get(i).getId()));
|
||||
items2.add(0, new QueueItemImpl(
|
||||
items.get(i),
|
||||
pipeline,
|
||||
(items.size() == 1 ? job.getNextBuildNumber() : job.getNextBuildNumber() + i)));
|
||||
job.getName(),
|
||||
(items.size() == 1 ? job.getNextBuildNumber() : job.getNextBuildNumber() + i), self));
|
||||
}
|
||||
|
||||
return items2;
|
||||
|
|
|
@ -74,7 +74,7 @@ public class RunContainerImpl extends BlueRunContainer {
|
|||
* support running multiple builds at the same time, return a reference to the existing
|
||||
* build.
|
||||
*
|
||||
* @return Qeueu item.
|
||||
* @return Queue item.
|
||||
*/
|
||||
@Override
|
||||
public BlueQueueItem create() {
|
||||
|
|
Loading…
Reference in New Issue