Skip to content

Commit

Permalink
Merge branch 'JENKINS-28851'
Browse files Browse the repository at this point in the history
  • Loading branch information
daspilker committed Jun 17, 2015
2 parents 8f0aa1e + 702efe4 commit 43bbb2c
Show file tree
Hide file tree
Showing 5 changed files with 84 additions and 1 deletion.
2 changes: 2 additions & 0 deletions docs/Home.md
Expand Up @@ -17,6 +17,8 @@ Have a look at the [Jenkins Job DSL Gradle example](https://github.com/sheehan/j

## Release Notes
* 1.35 (unreleased)
* Added support for the [Build Flow Test Aggregator Plugin](https://wiki.jenkins-ci.org/display/JENKINS/Build+Flow+Test+Aggregator+Plugin)
([JENKINS-28851](https://issues.jenkins-ci.org/browse/JENKINS-28851))
* Added closure method for logRotator
* Allow to extend the trigger context
([JENKINS-28562](https://issues.jenkins-ci.org/browse/JENKINS-28562))
Expand Down
26 changes: 25 additions & 1 deletion docs/Job-reference.md
Expand Up @@ -195,6 +195,7 @@ freeStyleJob(String name) { // since 1.30
vSphereRevertToSnapshot(String server, String vm, String snapshot)
}
publishers {
aggregateBuildFlowTests() // since 1.35
aggregateDownstreamTestResults(String jobs = null,
boolean includeFailedBuilds = false) // since 1.19
allowBrokenBuildClaiming()
Expand Down Expand Up @@ -4658,7 +4659,30 @@ publishers {
}
```
(Since 1.19)
(since 1.19)
### Aggregate Build Flow Test Results
```groovy
buildFlowJob {
publishers {
aggregateBuildFlowTests()
}
}
```
Aggregates test results from builds started dynamically by build flow jobs. Requires the
[Build Flow Test Aggregator Plugin](https://wiki.jenkins-ci.org/display/JENKINS/Build+Flow+Test+Aggregator+Plugin).
```groovy
buildFlowJob('example') {
publishers {
aggregateBuildFlowTests()
}
}
```
(since 1.35)
### Aggregate Downstream Test Results
Expand Down
@@ -0,0 +1,19 @@
package javaposse.jobdsl.dsl.helpers.publisher

import javaposse.jobdsl.dsl.Item
import javaposse.jobdsl.dsl.JobManagement
import javaposse.jobdsl.dsl.RequiresPlugin

class BuildFlowPublisherContext extends PublisherContext {
BuildFlowPublisherContext(JobManagement jobManagement, Item item) {
super(jobManagement, item)
}

/**
* @since 1.35
*/
@RequiresPlugin(id = 'build-flow-test-aggregator', minimumVersion = '1.1')
void aggregateBuildFlowTests() {
publisherNodes << new NodeBuilder().'org.zeroturnaround.jenkins.flowbuildtestaggregator.FlowTestAggregator'()
}
}
@@ -1,8 +1,11 @@
package javaposse.jobdsl.dsl.jobs

import javaposse.jobdsl.dsl.ContextHelper
import javaposse.jobdsl.dsl.DslContext
import javaposse.jobdsl.dsl.Job
import javaposse.jobdsl.dsl.JobManagement
import javaposse.jobdsl.dsl.WithXmlAction
import javaposse.jobdsl.dsl.helpers.publisher.BuildFlowPublisherContext

class BuildFlowJob extends Job {
BuildFlowJob(JobManagement jobManagement) {
Expand All @@ -14,4 +17,16 @@ class BuildFlowJob extends Job {
project / dsl(buildFlowText)
}
}

@Override
void publishers(@DslContext(BuildFlowPublisherContext) Closure closure) {
BuildFlowPublisherContext context = new BuildFlowPublisherContext(jobManagement, this)
ContextHelper.executeInContext(closure, context)

withXmlActions << WithXmlAction.create { Node project ->
context.publisherNodes.each {
project / 'publishers' << it
}
}
}
}
@@ -0,0 +1,23 @@
package javaposse.jobdsl.dsl.helpers.publisher

import javaposse.jobdsl.dsl.Item
import javaposse.jobdsl.dsl.JobManagement
import spock.lang.Specification

class BuildFlowPublisherContextSpec extends Specification {
JobManagement jobManagement = Mock(JobManagement)
Item item = Mock(Item)
BuildFlowPublisherContext context = new BuildFlowPublisherContext(jobManagement, item)

def 'call aggregateBuildFlowTests'() {
when:
context.aggregateBuildFlowTests()

then:
with(context.publisherNodes[0]) {
name() == 'org.zeroturnaround.jenkins.flowbuildtestaggregator.FlowTestAggregator'
children().size() == 0
}
1 * jobManagement.requireMinimumPluginVersion('build-flow-test-aggregator', '1.1')
}
}

0 comments on commit 43bbb2c

Please sign in to comment.