Skip to content

Commit a40fd9f

Browse files
committed
allow integrationTest facet to be disabled when not needed
1 parent 435145e commit a40fd9f

File tree

3 files changed

+61
-17
lines changed

3 files changed

+61
-17
lines changed

gradle.lockfile

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,12 @@ com.netflix.nebula:gradle-java-cross-compile-plugin:8.0.0=compileClasspath,integ
4242
com.netflix.nebula:nebula-dependencies-comparison:0.2.1=integTestRuntimeClasspath,runtimeClasspath,testRuntimeClasspath
4343
com.netflix.nebula:nebula-gradle-interop:3.1.0=compileClasspath,integTestCompileClasspath,integTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
4444
com.netflix.nebula:nebula-oss-publishing-plugin:4.1.1=compileClasspath,integTestCompileClasspath,integTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
45-
com.netflix.nebula:nebula-project-plugin:12.0.0=compileClasspath,integTestCompileClasspath,integTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
45+
com.netflix.nebula:nebula-project-plugin:12.0.0=integTestCompileClasspath,integTestRuntimeClasspath
46+
com.netflix.nebula:nebula-project-plugin:12.1.0=compileClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
4647
com.netflix.nebula:nebula-publishing-plugin:22.1.0=compileClasspath,integTestCompileClasspath,integTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
4748
com.netflix.nebula:nebula-release-plugin:21.0.0=compileClasspath,integTestCompileClasspath,integTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
48-
com.netflix.nebula:nebula-test:11.7.1=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
49+
com.netflix.nebula:nebula-test:11.7.1=integTestCompileClasspath,integTestRuntimeClasspath
50+
com.netflix.nebula:nebula-test:11.8.0=testCompileClasspath,testRuntimeClasspath
4951
com.networknt:json-schema-validator:1.0.76=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
5052
com.nimbusds:nimbus-jose-jwt:9.28=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
5153
com.perforce:p4java:2015.2.1365273=integTestRuntimeClasspath,runtimeClasspath,testRuntimeClasspath
@@ -116,11 +118,11 @@ org.apache.commons:commons-text:1.10.0=integTestCompileClasspath,integTestRuntim
116118
org.apache.groovy:groovy:4.0.4=integTestCompileClasspath,integTestRuntimeClasspath
117119
org.apache.httpcomponents:httpclient:4.5.13=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
118120
org.apache.httpcomponents:httpcore:4.4.13=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
119-
org.apache.maven:maven-model:3.6.3=integTestRuntimeClasspath,runtimeClasspath,testRuntimeClasspath
121+
org.apache.maven:maven-model:3.6.3=compileClasspath,integTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
120122
org.apache.velocity.tools:velocity-tools-generic:3.1=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
121123
org.apache.velocity:velocity-engine-core:2.3=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
122124
org.apache.velocity:velocity-engine-scripting:2.3=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
123-
org.apiguardian:apiguardian-api:1.1.2=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
125+
org.apiguardian:apiguardian-api:1.1.2=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath
124126
org.assertj:assertj-core:3.27.3=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
125127
org.bouncycastle:bcpkix-jdk18on:1.72=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
126128
org.bouncycastle:bcprov-jdk18on:1.72=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
@@ -132,19 +134,25 @@ org.eclipse.jgit:org.eclipse.jgit:5.13.0.202109080827-r=integTestCompileClasspat
132134
org.hamcrest:hamcrest-core:2.2=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
133135
org.hamcrest:hamcrest:2.2=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
134136
org.jetbrains.kotlin:kotlin-reflect:2.2.0=compileClasspath,embeddedKotlin,integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
135-
org.jetbrains.kotlin:kotlin-stdlib-common:1.4.20=integTestRuntimeClasspath,runtimeClasspath,testRuntimeClasspath
137+
org.jetbrains.kotlin:kotlin-stdlib-common:1.4.20=integTestRuntimeClasspath
138+
org.jetbrains.kotlin:kotlin-stdlib-common:2.2.0=runtimeClasspath,testRuntimeClasspath
136139
org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0=compileClasspath,integTestCompileClasspath,integTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
137140
org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0=compileClasspath,integTestCompileClasspath,integTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
138141
org.jetbrains.kotlin:kotlin-stdlib:2.2.0=compileClasspath,embeddedKotlin,integTestCompileClasspath,integTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
139142
org.jetbrains:annotations:13.0=compileClasspath,embeddedKotlin,integTestCompileClasspath,integTestRuntimeClasspath,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
140143
org.jspecify:jspecify:1.0.0=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
141-
org.junit.jupiter:junit-jupiter-api:5.12.2=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
142-
org.junit.jupiter:junit-jupiter-engine:5.12.2=integTestRuntimeClasspath,testRuntimeClasspath
143-
org.junit.jupiter:junit-jupiter-params:5.12.2=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
144-
org.junit.jupiter:junit-jupiter:5.12.2=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
144+
org.junit.jupiter:junit-jupiter-api:5.12.2=integTestCompileClasspath,integTestRuntimeClasspath
145+
org.junit.jupiter:junit-jupiter-api:5.14.0=testCompileClasspath,testRuntimeClasspath
146+
org.junit.jupiter:junit-jupiter-engine:5.12.2=integTestRuntimeClasspath
147+
org.junit.jupiter:junit-jupiter-engine:5.14.0=testRuntimeClasspath
148+
org.junit.jupiter:junit-jupiter-params:5.12.2=integTestCompileClasspath,integTestRuntimeClasspath
149+
org.junit.jupiter:junit-jupiter-params:5.14.0=testCompileClasspath,testRuntimeClasspath
150+
org.junit.jupiter:junit-jupiter:5.12.2=integTestCompileClasspath,integTestRuntimeClasspath
151+
org.junit.jupiter:junit-jupiter:5.14.0=testCompileClasspath,testRuntimeClasspath
145152
org.junit.platform:junit-platform-commons:1.14.0=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
146153
org.junit.platform:junit-platform-engine:1.14.0=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
147154
org.junit.platform:junit-platform-launcher:1.14.0=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
155+
org.junit:junit-bom:5.14.0=testCompileClasspath,testRuntimeClasspath
148156
org.mock-server:mockserver-client-java:5.15.0=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
149157
org.mock-server:mockserver-core:5.15.0=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath
150158
org.mock-server:mockserver-netty:5.15.0=integTestCompileClasspath,integTestRuntimeClasspath,testCompileClasspath,testRuntimeClasspath

src/main/groovy/nebula/plugin/plugin/NebulaPluginPlugin.groovy

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,12 @@ package nebula.plugin.plugin
1717

1818
import io.github.gradlenexus.publishplugin.AbstractNexusStagingRepositoryTask
1919
import nebula.plugin.publishing.NebulaOssPublishingExtension
20-
import org.gradle.api.Action
2120
import org.gradle.api.Plugin
2221
import org.gradle.api.Project
2322
import org.gradle.api.plugins.JavaPluginExtension
2423
import org.gradle.api.provider.Provider
2524
import org.gradle.api.provider.ProviderFactory
2625
import org.gradle.api.publish.maven.tasks.PublishToMavenRepository
27-
import org.gradle.api.publish.tasks.GenerateModuleMetadata
2826
import org.gradle.api.tasks.TaskProvider
2927
import org.gradle.api.tasks.testing.Test
3028
import org.gradle.jvm.toolchain.JavaLanguageVersion
@@ -46,16 +44,16 @@ class NebulaPluginPlugin implements Plugin<Project> {
4644

4745
static final NEBULA_PLUGIN_IDS = ['com.netflix.nebula.contacts',
4846
'com.netflix.nebula.dependency-lock',
49-
'com.netflix.nebula.facet',
5047
'com.netflix.nebula.info',
5148
'com.netflix.nebula.javadoc-jar',
5249
'com.netflix.nebula.maven-apache-license',
5350
'com.netflix.nebula.maven-publish',
5451
'com.netflix.nebula.publish-verification',
5552
'com.netflix.nebula.release',
5653
'com.netflix.nebula.oss-publishing',
57-
'com.netflix.nebula.source-jar',
58-
'com.netflix.nebula.integtest']
54+
'com.netflix.nebula.source-jar']
55+
56+
static final OPTIONAL_TESTING_PLUGIN_IDS = ['com.netflix.nebula.facet', 'com.netflix.nebula.integtest']
5957

6058
static final PLUGIN_IDS = GRADLE_PLUGIN_IDS + NEBULA_PLUGIN_IDS
6159

@@ -79,6 +77,11 @@ class NebulaPluginPlugin implements Plugin<Project> {
7977
}
8078
project.with {
8179
PLUGIN_IDS.each { plugins.apply(it) }
80+
boolean integTest = !project.hasProperty("nebula.integTest") ||
81+
Boolean.parseBoolean(project.property("nebula.integTest").toString())
82+
if (integTest) {
83+
OPTIONAL_TESTING_PLUGIN_IDS.each { plugins.apply(it) }
84+
}
8285
tasks.withType(ValidatePlugins).configureEach {
8386
it.enableStricterValidation.set(true)
8487
}

src/test/kotlin/nebula/plugin/plugin/NebulaPluginPluginTest.kt

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,9 @@ internal class NebulaPluginPluginTest {
4040
}
4141

4242
private fun TestProjectBuilder.sampleSinglePluginSetup() {
43+
properties {
44+
gradleCache(true)
45+
}
4346
settings {
4447
name("test")
4548
}
@@ -77,6 +80,33 @@ gradlePlugin {
7780
}
7881
}
7982

83+
@Test
84+
fun `test integrationTest disabled`() {
85+
val runner = testProject(projectDir) {
86+
properties {
87+
property("nebula.integTest", "false")
88+
}
89+
sampleSinglePluginSetup()
90+
}
91+
92+
val result = runner.run("check", "--stacktrace")
93+
94+
assertThat(result.task(":integrationTest")).isNull()
95+
}
96+
97+
@Test
98+
fun `test integrationTest enabled by default`() {
99+
val runner = testProject(projectDir) {
100+
sampleSinglePluginSetup()
101+
}
102+
103+
val result = runner.run("check", "--stacktrace")
104+
105+
assertThat(result.task(":integrationTest"))
106+
.`as`("integTest facet enabled by default")
107+
.hasOutcome(TaskOutcome.NO_SOURCE)
108+
}
109+
80110
@Test
81111
fun `test candidate`() {
82112
val version = "0.0.1-rc.1"
@@ -116,14 +146,16 @@ gradlePlugin {
116146
"--stacktrace"
117147
)
118148

119-
assertThat(result.task(":javadoc")).hasOutcome(TaskOutcome.SUCCESS)
149+
assertThat(result.task(":javadoc"))
150+
.hasOutcome(TaskOutcome.SUCCESS, TaskOutcome.FROM_CACHE)
120151
assertThat(result.task(":generatePomFileForNebulaPublication"))
121152
.hasOutcome(TaskOutcome.SUCCESS)
122153
assertThat(result.task(":signPluginMavenPublication"))
123154
.hasOutcome(TaskOutcome.SUCCESS)
124155
assertThat(result.task(":signExamplePluginMarkerMavenPublication"))
125156
.hasOutcome(TaskOutcome.SUCCESS)
126-
assertThat(result.task(":validatePlugins")).hasOutcome(TaskOutcome.SUCCESS)
157+
assertThat(result.task(":validatePlugins"))
158+
.hasOutcome(TaskOutcome.SUCCESS, TaskOutcome.FROM_CACHE)
127159
assertThat(result.task(":publishExamplePluginMarkerMavenPublicationToNetflixOSSRepository"))
128160
.hasOutcome(TaskOutcome.SUCCESS)
129161
assertThat(result.task(":publishNebulaPublicationToNetflixOSSRepository"))
@@ -177,7 +209,8 @@ gradlePlugin {
177209
assertThat(result.task(":publishPluginMavenPublicationToSonatypeRepository"))
178210
.hasOutcome(TaskOutcome.SKIPPED)
179211

180-
assertThat(result.task(":validatePlugins")).hasOutcome(TaskOutcome.SUCCESS)
212+
assertThat(result.task(":validatePlugins"))
213+
.hasOutcome(TaskOutcome.SUCCESS, TaskOutcome.FROM_CACHE)
181214
assertThat(result.task(":publishPlugins")).hasOutcome(TaskOutcome.SUCCESS)
182215
assertThat(result.task(":postRelease")).hasOutcome(TaskOutcome.SUCCESS)
183216
assertThat(result.task(":final")).hasOutcome(TaskOutcome.SUCCESS)

0 commit comments

Comments
 (0)