Skip to content

Commit

Permalink
Merge pull request #1240 from dheid/bugfix/JENKINS-66189_postbuildscr…
Browse files Browse the repository at this point in the history
…ipt_removal

JENKINS-66189 Use dynamic DSL instead of outdated PostBuildScript syntax
  • Loading branch information
jamietanna committed Jul 18, 2022
2 parents a1b55f4 + cc5297b commit d47672c
Show file tree
Hide file tree
Showing 4 changed files with 0 additions and 205 deletions.

This file was deleted.

This file was deleted.

Expand Up @@ -9,7 +9,6 @@ import javaposse.jobdsl.dsl.Preconditions
import javaposse.jobdsl.dsl.RequiresPlugin
import javaposse.jobdsl.dsl.AbstractExtensibleContext
import javaposse.jobdsl.dsl.helpers.common.PublishOverSshContext
import javaposse.jobdsl.dsl.jobs.MatrixJob

import static javaposse.jobdsl.dsl.ContextHelper.toNamedNode
import static javaposse.jobdsl.dsl.Preconditions.checkArgument
Expand Down Expand Up @@ -1287,27 +1286,6 @@ class PublisherContext extends AbstractExtensibleContext {
}
}

/**
* Execute a set of scripts at the end of the build.
*
* @since 1.31
*/
@RequiresPlugin(id = 'postbuildscript', minimumVersion = '0.17')
void postBuildScripts(@DslContext(PostBuildScriptsContext) Closure closure) {
PostBuildScriptsContext context = new PostBuildScriptsContext(jobManagement, item)
ContextHelper.executeInContext(closure, context)

publisherNodes << new NodeBuilder().'org.jenkinsci.plugins.postbuildscript.PostBuildScript' {
buildSteps(context.stepContext.stepNodes)
scriptOnlyIfSuccess(context.onlyIfBuildSucceeds)
scriptOnlyIfFailure(context.onlyIfBuildFails)
markBuildUnstable(context.markBuildUnstable)
if (item instanceof MatrixJob) {
executeOn(context.executeOn)
}
}
}

/**
* Triggers SonarQube analysis.
*
Expand Down
Expand Up @@ -3527,105 +3527,6 @@ class PublisherContextSpec extends Specification {
e.message =~ 'can only be using in matrix jobs'
}

def 'call post build scripts with minimal options'() {
when:
context.postBuildScripts {
}

then:
with(context.publisherNodes[0]) {
name() == 'org.jenkinsci.plugins.postbuildscript.PostBuildScript'
children().size() == 4
buildSteps[0].children().size == 0
scriptOnlyIfSuccess[0].value() == true
scriptOnlyIfFailure[0].value() == false
markBuildUnstable[0].value() == false
}
1 * jobManagement.requireMinimumPluginVersion('postbuildscript', '0.17')
}

def 'call post build scripts with all options'() {
when:
context.postBuildScripts {
steps {
shell('echo TEST')
}
onlyIfBuildSucceeds(value)
onlyIfBuildFails(value)
markBuildUnstable(value)
}

then:
with(context.publisherNodes[0]) {
name() == 'org.jenkinsci.plugins.postbuildscript.PostBuildScript'
children().size() == 4
buildSteps[0].children().size == 1
buildSteps[0].children()[0].name() == 'hudson.tasks.Shell'
scriptOnlyIfSuccess[0].value() == value
scriptOnlyIfFailure[0].value() == value
markBuildUnstable[0].value() == value
}
1 * jobManagement.requireMinimumPluginVersion('postbuildscript', '0.17')

where:
value << [true, false]
}

def 'call post build scripts with minimal options and matrix job'() {
setup:
Item item = new MatrixJob(jobManagement, 'test')
PublisherContext context = new PublisherContext(jobManagement, item)

when:
context.postBuildScripts {
}

then:
with(context.publisherNodes[0]) {
name() == 'org.jenkinsci.plugins.postbuildscript.PostBuildScript'
children().size() == 5
buildSteps[0].children().size == 0
scriptOnlyIfSuccess[0].value() == true
scriptOnlyIfFailure[0].value() == false
markBuildUnstable[0].value() == false
executeOn[0].value() == 'BOTH'
}
1 * jobManagement.requireMinimumPluginVersion('postbuildscript', '0.17')
}

def 'call post build scripts with all options and matrix job'() {
setup:
Item item = new MatrixJob(jobManagement, 'test')
PublisherContext context = new PublisherContext(jobManagement, item)

when:
context.postBuildScripts {
steps {
shell('echo TEST')
}
onlyIfBuildSucceeds(false)
onlyIfBuildFails()
markBuildUnstable()
executeOn(mode)
}

then:
with(context.publisherNodes[0]) {
name() == 'org.jenkinsci.plugins.postbuildscript.PostBuildScript'
children().size() == 5
buildSteps[0].children().size == 1
buildSteps[0].children()[0].name() == 'hudson.tasks.Shell'
scriptOnlyIfSuccess[0].value() == false
scriptOnlyIfFailure[0].value() == true
markBuildUnstable[0].value() == true
executeOn[0].value() == mode
}
1 * jobManagement.requireMinimumPluginVersion('postbuildscript', '0.17')

where:
mode << ['MATRIX', 'AXES', 'BOTH']
}

def 'call sonar with no options'() {
when:
context.sonar()
Expand Down

0 comments on commit d47672c

Please sign in to comment.