Skip to content

Commit f34ec00

Browse files
committed
Merge remote-tracking branch 'kamilszymanski/scm_type_column'
2 parents 6a8568c + d074e55 commit f34ec00

File tree

3 files changed

+26
-59
lines changed

3 files changed

+26
-59
lines changed

docs/Home.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ Browse the Jenkins issue tracker to see any [open issues](https://issues.jenkins
3030
* Fixed support for
3131
[Config File Provider Plugin](https://wiki.jenkins-ci.org/display/JENKINS/Config+File+Provider+Plugin)
3232
([JENKINS-40797](https://issues.jenkins-ci.org/browse/JENKINS-40797))
33+
* Enhanced support for the [Extra Columns Plugin](https://wiki.jenkins-ci.org/display/JENKINS/Extra+Columns+Plugin)
34+
([#978](https://github.com/jenkinsci/job-dsl-plugin/pull/978))
3335
* 1.55 (January 03 2016)
3436
* Updated optional
3537
[Config File Provider Plugin](https://wiki.jenkins-ci.org/display/JENKINS/Config+File+Provider+Plugin) dependency to

job-dsl-core/src/main/groovy/javaposse/jobdsl/dsl/views/ColumnsContext.groovy

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -277,4 +277,14 @@ class ColumnsContext extends AbstractExtensibleContext {
277277
triggerClass('hudson.triggers.SCMTrigger')
278278
}
279279
}
280+
281+
/**
282+
* Adds a column showing the type of source code management that is used in the project.
283+
*
284+
* @since 1.56
285+
*/
286+
@RequiresPlugin(id = 'extra-columns', minimumVersion = '1.4')
287+
void scmType() {
288+
columnNodes << new Node(null, 'jenkins.plugins.extracolumns.SCMTypeColumn')
289+
}
280290
}

job-dsl-core/src/test/groovy/javaposse/jobdsl/dsl/views/ListViewSpec.groovy

Lines changed: 14 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import javaposse.jobdsl.dsl.views.jobfilter.BuildStatusType
88
import javaposse.jobdsl.dsl.views.jobfilter.RegexMatchValue
99
import javaposse.jobdsl.dsl.views.jobfilter.Status
1010
import spock.lang.Specification
11+
import spock.lang.Unroll
1112

1213
import static javaposse.jobdsl.dsl.views.ListView.StatusFilter.ALL
1314
import static javaposse.jobdsl.dsl.views.ListView.StatusFilter.DISABLED
@@ -266,20 +267,6 @@ class ListViewSpec<T extends ListView> extends Specification {
266267
1 * jobManagement.requirePlugin('extra-columns')
267268
}
268269

269-
def 'last build node column'() {
270-
when:
271-
view.columns {
272-
lastBuildNode()
273-
}
274-
275-
then:
276-
Node root = view.node
277-
root.columns.size() == 1
278-
root.columns[0].value().size() == 1
279-
root.columns[0].value()[0].name() == 'jenkins.plugins.extracolumns.LastBuildNodeColumn'
280-
1 * jobManagement.requireMinimumPluginVersion('extra-columns', '1.16')
281-
}
282-
283270
def 'robotResults column'() {
284271
when:
285272
view.columns {
@@ -630,46 +617,28 @@ class ListViewSpec<T extends ListView> extends Specification {
630617
1 * jobManagement.requireMinimumPluginVersion('jacoco', '1.0.10')
631618
}
632619

633-
def 'slave or label column'() {
634-
when:
635-
view.columns {
636-
slaveOrLabel()
637-
}
638-
639-
then:
640-
Node root = view.node
641-
root.columns.size() == 1
642-
root.columns[0].value().size() == 1
643-
root.columns[0].value()[0].name() == 'jenkins.plugins.extracolumns.SlaveOrLabelColumn'
644-
1 * jobManagement.requireMinimumPluginVersion('extra-columns', '1.14')
645-
}
646-
647-
def 'user name column'() {
620+
@Unroll
621+
def '#type column'() {
648622
when:
649623
view.columns {
650-
userName()
624+
"$type"()
651625
}
652626

653627
then:
654628
Node root = view.node
655629
root.columns.size() == 1
656630
root.columns[0].value().size() == 1
657-
root.columns[0].value()[0].name() == 'jenkins.plugins.extracolumns.UserNameColumn'
658-
1 * jobManagement.requireMinimumPluginVersion('extra-columns', '1.16')
659-
}
660-
661-
def 'last configuration modification column'() {
662-
when:
663-
view.columns {
664-
lastConfigurationModification()
665-
}
631+
root.columns[0].value()[0].name() == "jenkins.plugins.extracolumns.$xmlType"
632+
1 * jobManagement.requireMinimumPluginVersion('extra-columns', minimumPluginVersion)
666633

667-
then:
668-
Node root = view.node
669-
root.columns.size() == 1
670-
root.columns[0].value().size() == 1
671-
root.columns[0].value()[0].name() == 'jenkins.plugins.extracolumns.LastJobConfigurationModificationColumn'
672-
1 * jobManagement.requireMinimumPluginVersion('extra-columns', '1.14')
634+
where:
635+
type | xmlType | minimumPluginVersion
636+
'lastBuildNode' | 'LastBuildNodeColumn' | '1.16'
637+
'slaveOrLabel' | 'SlaveOrLabelColumn' | '1.14'
638+
'userName' | 'UserNameColumn' | '1.16'
639+
'lastConfigurationModification' | 'LastJobConfigurationModificationColumn' | '1.14'
640+
'workspace' | 'WorkspaceColumn' | '1.15'
641+
'scmType' | 'SCMTypeColumn' | '1.4'
673642
}
674643

675644
def 'build parameters column'() {
@@ -712,20 +681,6 @@ class ListViewSpec<T extends ListView> extends Specification {
712681
1 * jobManagement.requireMinimumPluginVersion('extra-columns', '1.13')
713682
}
714683

715-
def 'workspace column'() {
716-
when:
717-
view.columns {
718-
workspace()
719-
}
720-
721-
then:
722-
Node root = view.node
723-
root.columns.size() == 1
724-
root.columns[0].value().size() == 1
725-
root.columns[0].value()[0].name() == 'jenkins.plugins.extracolumns.WorkspaceColumn'
726-
1 * jobManagement.requireMinimumPluginVersion('extra-columns', '1.15')
727-
}
728-
729684
def 'disable project column with button'() {
730685
when:
731686
view.columns {

0 commit comments

Comments
 (0)