Skip to content

Commit

Permalink
#112 only apply the Reckon-Plugin on CI environments
Browse files Browse the repository at this point in the history
Signed-off-by: Klaus Lehner <172195+klu2@users.noreply.github.com>
  • Loading branch information
klu2 committed Nov 8, 2022
1 parent 834ec2f commit 9fa6f01
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 9 deletions.
Original file line number Diff line number Diff line change
@@ -1,18 +1,29 @@
package io.cloudflight.gradle.autoconfigure

import io.cloudflight.ci.info.CI
import org.ajoberstar.reckon.gradle.ReckonExtension
import org.ajoberstar.reckon.gradle.ReckonSettingsPlugin
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.initialization.Settings

class AutoConfigureSettingsPlugin : Plugin<Settings> {
override fun apply(settings: Settings) {
settings.plugins.apply(ReckonSettingsPlugin::class.java)
settings.extensions.getByType(ReckonExtension::class.java).apply {
stages("rc", "final")
setStageCalc(calcStageFromProp())
setScopeCalc(calcScopeFromProp())
setDefaultInferredScope("patch")
if (CI.isCI) {
settings.plugins.apply(ReckonSettingsPlugin::class.java)
settings.extensions.getByType(ReckonExtension::class.java).apply {
stages("rc", "final")
setStageCalc(calcStageFromProp())
setScopeCalc(calcScopeFromProp())
setDefaultInferredScope("patch")
}
} else if (!settings.plugins.hasPlugin(ReckonSettingsPlugin::class.java)) {
// if the ReckonSettingsPlugin hasn't yet been applied by the user,
// (i.e. it is intendend that it is applied i.e. also on non-CI-environments)
// then set the version number here
settings.gradle.allprojects { prj: Project ->
prj.version = "1.0.0-SNAPSHOT"
}
}
settings.gradle.projectsLoaded {
it.rootProject.plugins.apply(AutoConfigureGradlePlugin::class.java)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ class AutoConfigureSettingsPluginTest {
@ParameterizedTest
@MethodSource("autoConfigureSettingsArguments")
fun `AutoConfigureSettings plugin is applied correctly`(options: TestOptions): Unit =
autoConfigureSettingsFixture(options.fixtureName) {
autoConfigureSettingsFixture(options.fixtureName, environment = CI_ENV) {
val result = runCleanBuild()
assertThat(result.normalizedOutput).contains("Reckoned version")
assertThat(
Expand All @@ -26,12 +26,22 @@ class AutoConfigureSettingsPluginTest {
}

@Test
fun `print version number`(): Unit =
autoConfigureSettingsFixture("single-java-module-default") {
fun `print version number on CI server`(): Unit =
autoConfigureSettingsFixture("single-java-module-default", environment = CI_ENV) {
val result = run("-q", "clfPrintVersion", infoLoggerEnabled = false)
// we are just checking that there is just one line here, the content itself is determined by the reckon plugin
assertThat(result.normalizedOutput.trim())
.hasLineCount(1)
.isNotEqualTo("1.0.0-SNAPSHOT")
}

@Test
fun `print version number locally`(): Unit =
autoConfigureSettingsFixture("single-java-module-default") {
val result = run("-q", "clfPrintVersion", infoLoggerEnabled = false)
assertThat(result.normalizedOutput.trim())
.hasLineCount(1)
.isEqualTo("1.0.0-SNAPSHOT")
}

companion object {
Expand All @@ -55,6 +65,8 @@ class AutoConfigureSettingsPluginTest {
)
)
}

val CI_ENV = mapOf("GITLAB_CI" to "true")
}

data class TestOptions(
Expand Down

0 comments on commit 9fa6f01

Please sign in to comment.