Skip to content

Commit ef59544

Browse files
authored
Fix failure with configuration-as-code plugin when upgrading (#JENKINS-73843) (#495)
1 parent ccce526 commit ef59544

4 files changed

Lines changed: 99 additions & 0 deletions

File tree

build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ dependencies {
126126
testImplementation("org.jenkins-ci.main:jenkins-test-harness:2225.v04fa_3929c9b_5")
127127
testImplementation("org.jenkins-ci.main:jenkins-test-harness-tools:2.2")
128128
testImplementation("io.jenkins:configuration-as-code:1.4")
129+
testImplementation("io.jenkins.configuration-as-code:test-harness:1.4")
129130
testImplementation("org.jenkins-ci.plugins:timestamper")
130131
testImplementation("org.jenkins-ci.plugins:pipeline-stage-step")
131132
testImplementation("org.jenkins-ci.plugins:pipeline-maven:3.10.0")

src/main/java/hudson/plugins/gradle/injection/InjectionConfig.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,9 @@ public class InjectionConfig extends GlobalConfiguration {
102102
// Legacy property that is not used anymore
103103
private transient String injectionVcsRepositoryPatterns;
104104
private VcsRepositoryFilter parsedVcsRepositoryFilter = VcsRepositoryFilter.EMPTY;
105+
// Legacy properties, kept for reading old configurations
106+
private transient boolean injectMavenExtension;
107+
private transient boolean injectCcudExtension;
105108

106109
public InjectionConfig() {
107110
load();
@@ -367,6 +370,24 @@ public void setCheckForBuildAgentErrors(boolean checkForBuildAgentErrors) {
367370
this.checkForBuildAgentErrors = checkForBuildAgentErrors;
368371
}
369372

373+
public boolean isInjectCcudExtension() {
374+
return injectCcudExtension;
375+
}
376+
377+
@DataBoundSetter
378+
public void setInjectCcudExtension(boolean injectCcudExtension) {
379+
this.injectCcudExtension = injectCcudExtension;
380+
}
381+
382+
public boolean isInjectMavenExtension() {
383+
return injectMavenExtension;
384+
}
385+
386+
@DataBoundSetter
387+
public void setInjectMavenExtension(boolean injectMavenExtension) {
388+
this.injectMavenExtension = injectMavenExtension;
389+
}
390+
370391
/**
371392
* Required to display filter in the UI.
372393
*/
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package hudson.plugins.gradle.injection
2+
3+
4+
import hudson.plugins.gradle.AbstractIntegrationTest
5+
import io.jenkins.plugins.casc.misc.ConfiguredWithCode
6+
import io.jenkins.plugins.casc.misc.JenkinsConfiguredWithCodeRule
7+
import org.junit.Rule
8+
import org.junit.rules.RuleChain
9+
import spock.lang.Subject
10+
import spock.lang.Unroll
11+
12+
@Unroll
13+
@Subject(InjectionConfig.class)
14+
class InjectionConfigWithCasCTest extends AbstractIntegrationTest {
15+
@Rule
16+
public final RuleChain rules = RuleChain.outerRule(noSpaceInTmpDirs).around(new JenkinsConfiguredWithCodeRule())
17+
18+
@ConfiguredWithCode("injection-config.yml")
19+
def 'current configuration is readable with JCasC'() {
20+
expect:
21+
with(InjectionConfig.get()) {
22+
it.allowUntrusted == true
23+
it.ccudExtensionCustomCoordinates == "mycustom-ccud:ext"
24+
it.ccudExtensionVersion == "2.0.1"
25+
it.ccudPluginVersion == "2.0.2"
26+
it.checkForBuildAgentErrors == true
27+
it.enabled == true
28+
it.enforceUrl == true
29+
it.gradleCaptureTaskInputFiles == true
30+
it.gradleInjectionDisabledNodes*.label == ["non-gradle-node"]
31+
it.gradleInjectionEnabledNodes*.label == ["gradle-node"]
32+
it.gradlePluginRepositoryUrl == "https://plugins.gradle.org"
33+
it.gradlePluginVersion == "3.18.1"
34+
it.injectMavenExtension == true
35+
it.injectCcudExtension == true
36+
it.mavenCaptureGoalInputFiles == true
37+
it.mavenExtensionCustomCoordinates == "mycustom:ext"
38+
it.mavenExtensionRepositoryUrl == "https://repo1.maven.org/maven2"
39+
it.mavenExtensionVersion == "1.22.1"
40+
it.mavenInjectionDisabledNodes*.label == ["non-maven-node"]
41+
it.mavenInjectionEnabledNodes*.label == ["maven-node"]
42+
it.server == "http://localhost:5086"
43+
it.shortLivedTokenExpiry == 24
44+
it.vcsRepositoryFilter == "+:myrepo"
45+
}
46+
}
47+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
jenkins:
2+
unclassified:
3+
injectionConfig:
4+
allowUntrusted: true
5+
ccudExtensionCustomCoordinates: "mycustom-ccud:ext"
6+
ccudExtensionVersion: "2.0.1"
7+
ccudPluginVersion: "2.0.2"
8+
checkForBuildAgentErrors: true
9+
enabled: true
10+
enforceUrl: true
11+
gradleCaptureTaskInputFiles: true
12+
gradleInjectionDisabledNodes:
13+
- label: "non-gradle-node"
14+
gradleInjectionEnabledNodes:
15+
- label: "gradle-node"
16+
gradlePluginRepositoryUrl: "https://plugins.gradle.org"
17+
gradlePluginVersion: "3.18.1"
18+
injectMavenExtension: true
19+
injectCcudExtension: true
20+
mavenCaptureGoalInputFiles: true
21+
mavenExtensionCustomCoordinates: "mycustom:ext"
22+
mavenExtensionRepositoryUrl: "https://repo1.maven.org/maven2"
23+
mavenExtensionVersion: "1.22.1"
24+
mavenInjectionDisabledNodes:
25+
- label: "non-maven-node"
26+
mavenInjectionEnabledNodes:
27+
- label: "maven-node"
28+
server: "http://localhost:5086"
29+
shortLivedTokenExpiry: 24
30+
vcsRepositoryFilter: "+:myrepo"

0 commit comments

Comments
 (0)