From 51872f0b27bffa014666d504c947baa96b38cc09 Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Tue, 11 Apr 2017 09:44:21 +0200 Subject: [PATCH] Added a guard for rolling back step without this change we're not checking the current version in the pom. Regardless of that value we were doing rollbacks and version bumps. with this change we will not perform rollbacks and version bumps for snapshots fixes #18 --- .../cloud/release/internal/Releaser.java | 5 ++ .../cloud/release/internal/ReleaserTests.java | 46 +++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 spring-cloud-release-tools-core/src/test/java/org/springframework/cloud/release/internal/ReleaserTests.java diff --git a/spring-cloud-release-tools-core/src/main/java/org/springframework/cloud/release/internal/Releaser.java b/spring-cloud-release-tools-core/src/main/java/org/springframework/cloud/release/internal/Releaser.java index f3b02b6b..c1a16f36 100644 --- a/spring-cloud-release-tools-core/src/main/java/org/springframework/cloud/release/internal/Releaser.java +++ b/spring-cloud-release-tools-core/src/main/java/org/springframework/cloud/release/internal/Releaser.java @@ -55,6 +55,11 @@ public class Releaser { } public void rollbackReleaseVersion(File project, ProjectVersion originalVersion, ProjectVersion changedVersion) { + ProjectVersion version = new ProjectVersion(project); + if (version.isSnapshot()) { + log.info("\nCurrent pom contains snapshot version [{}]. Will not proceed with rollback", version.toString()); + return; + } this.projectGitUpdater.revertChangesIfApplicable(project, changedVersion); if (changedVersion.isRelease()) { this.projectBuilder.bumpVersions(originalVersion.bumpedVersion()); diff --git a/spring-cloud-release-tools-core/src/test/java/org/springframework/cloud/release/internal/ReleaserTests.java b/spring-cloud-release-tools-core/src/test/java/org/springframework/cloud/release/internal/ReleaserTests.java new file mode 100644 index 00000000..8983605a --- /dev/null +++ b/spring-cloud-release-tools-core/src/test/java/org/springframework/cloud/release/internal/ReleaserTests.java @@ -0,0 +1,46 @@ +package org.springframework.cloud.release.internal; + +import java.io.File; +import java.net.URI; +import java.net.URISyntaxException; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.runners.MockitoJUnitRunner; +import org.springframework.cloud.release.internal.git.ProjectGitUpdater; +import org.springframework.cloud.release.internal.pom.ProjectPomUpdater; +import org.springframework.cloud.release.internal.project.ProjectBuilder; + +import static org.mockito.Mockito.verifyZeroInteractions; + +/** + * @author Marcin Grzejszczak + */ +@RunWith(MockitoJUnitRunner.class) +public class ReleaserTests { + + @Mock ProjectPomUpdater projectPomUpdater; + @Mock ProjectBuilder projectBuilder; + @Mock ProjectGitUpdater projectGitUpdater; + @InjectMocks Releaser releaser; + File pom; + + @Before + public void setup() throws URISyntaxException { + URI pomUri = ReleaserTests.class.getResource("/projects/project/pom.xml").toURI(); + this.pom = new File(pomUri); + } + + @Test + public void rollbackReleaseVersion() throws Exception { + this.releaser.rollbackReleaseVersion(this.pom, null, null); + + verifyZeroInteractions(this.projectPomUpdater); + verifyZeroInteractions(this.projectBuilder); + verifyZeroInteractions(this.projectGitUpdater); + } + +} \ No newline at end of file