Skip to content

Commit

Permalink
Merge pull request #800 from daspilker/JENKINS-29678
Browse files Browse the repository at this point in the history
[JENKINS-29678] added support for newer version of the Priority Sorter plugin
  • Loading branch information
daspilker committed Mar 24, 2016
2 parents 3260a70 + 5c187c3 commit 9eea45c
Show file tree
Hide file tree
Showing 7 changed files with 65 additions and 0 deletions.
5 changes: 5 additions & 0 deletions docs/Home.md
Expand Up @@ -42,6 +42,8 @@ Browse the Jenkins issue tracker to see any [open issues](https://issues.jenkins
([#782](https://github.com/jenkinsci/job-dsl-plugin/pull/782))
* Enhanced support for the [Git Plugin](https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin)
([#790](https://github.com/jenkinsci/job-dsl-plugin/pull/790))
* Enhanced support for the [Priority Sorter Plugin](https://wiki.jenkins-ci.org/display/JENKINS/Priority+Sorter+Plugin)
([JENKINS-29678](https://issues.jenkins-ci.org/browse/JENKINS-29678))
* Enhanced support for the [CloudBees Docker Build and Publish
Plugin](https://wiki.jenkins-ci.org/display/JENKINS/CloudBees+Docker+Build+and+Publish+plugin)
([JENKINS-33439](https://issues.jenkins-ci.org/browse/JENKINS-33439))
Expand All @@ -54,6 +56,9 @@ Browse the Jenkins issue tracker to see any [open issues](https://issues.jenkins
[Migration](Migration#migrating-to-145)
* Support for [Build Node Column Plugin](https://wiki.jenkins-ci.org/display/JENKINS/Build+Node+Column+Plugin) is
deprecated, see [Migration](Migration#migrating-to-145)
* Support for the older versions of the
[Priority Sorter Plugin](https://wiki.jenkins-ci.org/display/JENKINS/Priority+Sorter+Plugin) is deprecated, see
[Migration](Migration#migrating-to-145)
* Enhanced support for the [EnvInject Plugin](https://wiki.jenkins-ci.org/display/JENKINS/EnvInject+Plugin)
([#747](https://github.com/jenkinsci/job-dsl-plugin/pull/747))
* Deprecated a method for the [EnvInject Plugin](https://wiki.jenkins-ci.org/display/JENKINS/EnvInject+Plugin), see
Expand Down
24 changes: 24 additions & 0 deletions docs/Migration.md
Expand Up @@ -37,6 +37,30 @@ job('example') {
}
```

### Priority Sorter

Support for versions older than 3.4 of the
[Priority Sorter Plugin](https://wiki.jenkins-ci.org/display/JENKINS/Priority+Sorter+Plugin) is
[[deprecated|Deprecation-Policy]] and will be removed. The top-level `priority` method is deprecated and only supports
plugin version prior to 3.0. A new `priority` method has been added to the `properties` context which will support
plugin versions starting from 3.4.

DSL prior to 1.45
```groovy
job('example') {
priority(5)
}
```

DSL since 1.45
```groovy
job('example') {
properties {
priority(5)
}
}
```

### Build Node Column

The [Build Node Column Plugin](https://wiki.jenkins-ci.org/display/JENKINS/Build+Node+Column+Plugin) is deprecated and
Expand Down
@@ -0,0 +1,5 @@
job('example') {
properties {
priority(5)
}
}
3 changes: 3 additions & 0 deletions job-dsl-core/src/main/groovy/javaposse/jobdsl/dsl/Job.groovy
Expand Up @@ -301,7 +301,10 @@ abstract class Job extends Item {
* @since 1.15
*/
@RequiresPlugin(id = 'PrioritySorter')
@Deprecated
void priority(int value) {
jobManagement.logDeprecationWarning()

configure { Node project ->
Node node = new Node(project / 'properties', 'hudson.queueSorter.PrioritySorterJobProperty')
node.appendNode('priority', value)
Expand Down
Expand Up @@ -137,4 +137,17 @@ class PropertiesContext extends AbstractExtensibleContext {
doNotScan(!scan)
}
}

/**
* Sets the priority of the job.
*
* @since 1.45
*/
@RequiresPlugin(id = 'PrioritySorter', minimumVersion = '3.4')
void priority(int value) {
propertiesNodes << new NodeBuilder().'jenkins.advancedqueue.priority.strategy.PriorityJobProperty' {
useJobPriority(true)
delegate.priority(value)
}
}
}
Expand Up @@ -748,6 +748,7 @@ class JobSpec extends Specification {
then:
job.node.properties.'hudson.queueSorter.PrioritySorterJobProperty'.priority[0].value() == 99
1 * jobManagement.requirePlugin('PrioritySorter')
1 * jobManagement.logDeprecationWarning()
}

def 'add a quiet period'() {
Expand Down
Expand Up @@ -232,4 +232,18 @@ class PropertiesContextSpec extends Specification {
where:
scan << [true, false]
}

def 'priority'() {
when:
context.priority(5)

then:
with(context.propertiesNodes[0]) {
name() == 'jenkins.advancedqueue.priority.strategy.PriorityJobProperty'
children().size() == 2
useJobPriority[0].value() == true
priority[0].value() == 5
}
1 * jobManagement.requireMinimumPluginVersion('PrioritySorter', '3.4')
}
}

0 comments on commit 9eea45c

Please sign in to comment.