Skip to content

Commit

Permalink
JENKINS-22787 Broken placement of parallel stages
Browse files Browse the repository at this point in the history
  • Loading branch information
patbos committed Apr 28, 2014
1 parent b9a16f5 commit 5a458ce
Show file tree
Hide file tree
Showing 4 changed files with 123 additions and 8 deletions.
26 changes: 26 additions & 0 deletions examples/JENKINS-22787.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
- job:
name: 'JENKINS-22787-A'
builders:
- trigger-builds:
- project: 'JENKINS-22787-B,JENKINS-22787-E,JENKINS-22787-F'
- job:
name: 'JENKINS-22787-B'
builders:
- trigger-builds:
- project: 'JENKINS-22787-C,JENKINS-22787-D'
- job:
name: 'JENKINS-22787-C'

- job:
name: 'JENKINS-22787-D'

- job:
name: 'JENKINS-22787-E'
builders:
- trigger-builds:
- project: 'JENKINS-22787-G'
- job:
name: 'JENKINS-22787-F'

- job:
name: 'JENKINS-22787-G'
2 changes: 1 addition & 1 deletion examples/jenkins.sh
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
#!/bin/bash
jenkins-jobs --conf jenkins.ini update simple.yaml
jenkins-jobs --conf jenkins.ini update $1
9 changes: 2 additions & 7 deletions src/main/webapp/pipe.js
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,6 @@ function refreshPipelines(data, divNames, errorDiv, view, showAvatars, showChang

var row = 0;
var column = 0;
var maxColumn = 0;

html = html + '<div class="pipeline-row">';

Expand All @@ -102,11 +101,13 @@ function refreshPipelines(data, divNames, errorDiv, view, showAvatars, showChang

html = html + '</div><div class="pipeline-row-spacer"></div><div class="pipeline-row">';
column = 0;
row++;
}

if (stage.column > column) {
for (var as = column; as < stage.column; as++) {
html = html + '<div class="pipeline-cell"><div class="stage hide"></div></div>';
column++;
}

}
Expand Down Expand Up @@ -155,12 +156,6 @@ function refreshPipelines(data, divNames, errorDiv, view, showAvatars, showChang
html = html + "</div>";
html = html + '</div>';
column++;
if (stage.row > row) {
html = html + '</div>';
row++;
column = 0;
}

}
html = html + '</div>';

Expand Down
94 changes: 94 additions & 0 deletions src/test/java/se/diabol/jenkins/pipeline/domain/StageTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,100 @@ public void testSortByRowsCols() {

}

/**
* A --> B --> C --> D --> E --> F --> G
* | | |
* | -> H -
* |
* -> I --> J --> L --> M --> N
* | |
* -> K -
*
*/
@Test
public void testSortByRowsCols2() {
List<Stage> stages = new ArrayList<Stage>();
Stage stageA = new Stage("A", Collections.<Task>emptyList());
stageA.setRow(0);
stageA.setColumn(0);
Stage stageB = new Stage("B", Collections.<Task>emptyList());
stageB.setRow(0);
stageB.setColumn(1);
Stage stageC = new Stage("C", Collections.<Task>emptyList());
stageC.setRow(0);
stageC.setColumn(2);
Stage stageD = new Stage("D", Collections.<Task>emptyList());
stageD.setRow(0);
stageD.setColumn(3);
Stage stageE = new Stage("E", Collections.<Task>emptyList());
stageE.setRow(0);
stageE.setColumn(4);
Stage stageF = new Stage("F", Collections.<Task>emptyList());
stageF.setRow(0);
stageF.setColumn(5);
Stage stageG = new Stage("G", Collections.<Task>emptyList());
stageG.setRow(0);
stageG.setColumn(6);
Stage stageH = new Stage("H", Collections.<Task>emptyList());
stageH.setRow(1);
stageH.setColumn(3);
Stage stageI = new Stage("I", Collections.<Task>emptyList());
stageI.setRow(2);
stageI.setColumn(2);
Stage stageJ = new Stage("J", Collections.<Task>emptyList());
stageJ.setRow(2);
stageJ.setColumn(3);
Stage stageK = new Stage("K", Collections.<Task>emptyList());
stageK.setRow(3);
stageK.setColumn(3);
Stage stageL = new Stage("L", Collections.<Task>emptyList());
stageL.setRow(2);
stageL.setColumn(4);
Stage stageM = new Stage("M", Collections.<Task>emptyList());
stageM.setRow(2);
stageM.setColumn(5);
Stage stageN = new Stage("N", Collections.<Task>emptyList());
stageN.setRow(2);
stageN.setColumn(6);

stages.add(stageA);
stages.add(stageB);
stages.add(stageF);
stages.add(stageJ);
stages.add(stageK);
stages.add(stageL);
stages.add(stageM);
stages.add(stageN);
stages.add(stageG);
stages.add(stageH);
stages.add(stageI);
stages.add(stageC);
stages.add(stageD);
stages.add(stageE);



Stage.sortByRowsCols(stages);

assertEquals("A", stages.get(0).getName());
assertEquals("B", stages.get(1).getName());
assertEquals("C", stages.get(2).getName());
assertEquals("D", stages.get(3).getName());
assertEquals("E", stages.get(4).getName());
assertEquals("F", stages.get(5).getName());
assertEquals("G", stages.get(6).getName());
assertEquals("H", stages.get(7).getName());
assertEquals("I", stages.get(8).getName());
assertEquals("J", stages.get(9).getName());
assertEquals("L", stages.get(10).getName());
assertEquals("M", stages.get(11).getName());
assertEquals("N", stages.get(12).getName());
assertEquals("K", stages.get(13).getName());


}


@Test
public void testFindStageForJob() {
Task task1 = new Task("build", "Build", StatusFactory.idle(), null, Collections.<String>emptyList());
Expand Down

0 comments on commit 5a458ce

Please sign in to comment.