Skip to content

Commit

Permalink
Extract conditional test directory creation to LegacyWorkaroundsPlugin
Browse files Browse the repository at this point in the history
  • Loading branch information
sghill committed May 27, 2020
1 parent 0a22f8b commit ab2b751
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 7 deletions.
Expand Up @@ -137,13 +137,6 @@ class JpiExtension {
throw new GradleException('The gradle-jpi-plugin requires Jenkins 1.420 or later')
}

// workarounds for JENKINS-26331
if (new VersionNumber(this.coreVersion) >= new VersionNumber('1.545') &&
new VersionNumber(this.coreVersion) < new VersionNumber('1.592')) {
project.tasks.test.doFirst {
project.file('target').mkdirs()
}
}
if (new VersionNumber(this.coreVersion) < new VersionNumber('1.598')) {
Delete clean = project.tasks.clean as Delete
clean.delete('target')
Expand Down
Expand Up @@ -49,6 +49,7 @@ import org.gradle.api.tasks.compile.JavaCompile
import org.gradle.api.tasks.testing.Test
import org.gradle.language.base.plugins.LifecycleBasePlugin
import org.gradle.util.GradleVersion
import org.jenkinsci.gradle.plugins.jpi.legacy.LegacyWorkaroundsPlugin
import org.jenkinsci.gradle.plugins.jpi.server.GenerateJenkinsServerHplTask

import org.jenkinsci.gradle.plugins.jpi.server.InstallJenkinsServerPluginsTask
Expand Down Expand Up @@ -96,6 +97,7 @@ class JpiPlugin implements Plugin<Project> {

gradleProject.plugins.apply(JavaLibraryPlugin)
gradleProject.plugins.apply(GroovyPlugin)
gradleProject.plugins.apply(LegacyWorkaroundsPlugin)

def ext = gradleProject.extensions.create('jenkinsPlugin', JpiExtension, gradleProject)

Expand Down
@@ -0,0 +1,29 @@
package org.jenkinsci.gradle.plugins.jpi.legacy

import groovy.transform.CompileStatic
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.Task
import org.gradle.util.GradleVersion
import org.jenkinsci.gradle.plugins.jpi.JpiExtension

@CompileStatic
class LegacyWorkaroundsPlugin implements Plugin<Project> {
@Override
void apply(Project project) {
// workarounds for JENKINS-26331
project.tasks.named('test').configure { Task t ->
def ext = project.extensions.getByType(JpiExtension)
if (isBetween(ext.coreVersion, '1.545', '1.592')) {
project.file('target').mkdirs()
}
}
}

private static boolean isBetween(String subject, String lowerBoundInclusive, String upperExclusive) {
def current = GradleVersion.version(subject)
def lower = GradleVersion.version(lowerBoundInclusive)
def upper = GradleVersion.version(upperExclusive)
current >= lower && current < upper
}
}

0 comments on commit ab2b751

Please sign in to comment.