From 732ce9e13ff45f9dae1dd3c505edf69371779dd5 Mon Sep 17 00:00:00 2001 From: kiehl Date: Tue, 24 Nov 2020 13:48:08 +0100 Subject: [PATCH 1/2] add allDependencyConstraints to config --- .../release/domain/SnapshotDependenciesChecker.groovy | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/groovy/pl/allegro/tech/build/axion/release/domain/SnapshotDependenciesChecker.groovy b/src/main/groovy/pl/allegro/tech/build/axion/release/domain/SnapshotDependenciesChecker.groovy index 4d0aefdf..42edca09 100644 --- a/src/main/groovy/pl/allegro/tech/build/axion/release/domain/SnapshotDependenciesChecker.groovy +++ b/src/main/groovy/pl/allegro/tech/build/axion/release/domain/SnapshotDependenciesChecker.groovy @@ -2,6 +2,7 @@ package pl.allegro.tech.build.axion.release.domain import org.gradle.api.Project import org.gradle.api.artifacts.Dependency +import org.gradle.api.artifacts.DependencyConstraint class SnapshotDependenciesChecker { @@ -9,7 +10,8 @@ class SnapshotDependenciesChecker { Collection projectVersions = project.allprojects.collect {toFullVersion(it)} Collection allDependenciesVersions = project.allprojects.collect { it.configurations.collect { config -> - config.allDependencies.findAll {isSnapshot(it)}.collect {toFullVersion(it)} + config.allDependencies.findAll {isSnapshot(it)}.collect {toFullVersion(it)}+ + config.allDependencyConstraints.findAll {isSnapshot(it)}.collect {toFullVersion(it)} } }.flatten().unique() @@ -20,6 +22,9 @@ class SnapshotDependenciesChecker { boolean isSnapshot(Dependency dependency) { dependency.version?.endsWith("-SNAPSHOT") } + boolean isSnapshot(DependencyConstraint dependency) { + dependency.version?.endsWith("-SNAPSHOT") + } String toFullVersion(it) { "${it.group}:${it.name}:${it.version}".toString() From 303f51855f326f2ceaa577f461475cf1079d5afb Mon Sep 17 00:00:00 2001 From: kiehl Date: Thu, 26 Nov 2020 13:51:06 +0100 Subject: [PATCH 2/2] add tests for SnapshotDependenciesChecker --- .../SnapshotDependenciesCheckerTest.groovy | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 src/test/groovy/pl/allegro/tech/build/axion/release/domain/SnapshotDependenciesCheckerTest.groovy diff --git a/src/test/groovy/pl/allegro/tech/build/axion/release/domain/SnapshotDependenciesCheckerTest.groovy b/src/test/groovy/pl/allegro/tech/build/axion/release/domain/SnapshotDependenciesCheckerTest.groovy new file mode 100644 index 00000000..2e4dee30 --- /dev/null +++ b/src/test/groovy/pl/allegro/tech/build/axion/release/domain/SnapshotDependenciesCheckerTest.groovy @@ -0,0 +1,43 @@ +package pl.allegro.tech.build.axion.release.domain + +import org.gradle.api.Project +import org.gradle.testfixtures.ProjectBuilder +import org.junit.Before +import org.junit.Test +import static org.junit.Assert.assertTrue + +class SnapshotDependenciesCheckerTest { + + SnapshotDependenciesChecker checker + Project project + + @Before + void setup(){ + ProjectBuilder builder = ProjectBuilder.builder() + project= builder.build() + project.configurations { implementation } + checker = new SnapshotDependenciesChecker(); + } + + @Test + void shouldDetectSnapshotVersions() { + + project.dependencies { + implementation group: 'cicd', name:'sample', version: '2.0.3-SNAPSHOT' + } + Collection snapshotVersions = checker.snapshotVersions(project) + assertTrue("SNAPSHOT dependency entry not detected",!snapshotVersions.isEmpty()) + } + + @Test + void shouldDetectConstraintsSnapshotVersions() { + + project.dependencies { + constraints{ + implementation group: 'cicd', name:'sample', version: '2.0.3-SNAPSHOT' + } + } + Collection snapshotVersions = checker.snapshotVersions(project) + assertTrue("SNAPSHOT dependency entry not detected",!snapshotVersions.isEmpty()) + } +}