diff --git a/releaser-core/src/main/java/releaser/internal/git/ProjectGitHandler.java b/releaser-core/src/main/java/releaser/internal/git/ProjectGitHandler.java index 3ae8a1c8..b98a3e43 100644 --- a/releaser-core/src/main/java/releaser/internal/git/ProjectGitHandler.java +++ b/releaser-core/src/main/java/releaser/internal/git/ProjectGitHandler.java @@ -279,22 +279,25 @@ public class ProjectGitHandler implements Closeable { } // let's go with convention... If fixed version contains e.g. - // 2.3.4.RELEASE of Sleuth, we will first check if `2.0.x` branch + // 2.3.4.RELEASE of Sleuth, we will first check if `2.3.x` branch // exists. If not, then we will assume that `master` contains it - private String branchFromVersion(String version) { + String branchFromVersion(String version) { // 2.3.4.RELEASE -> 2.3.4 // 2.3.4-RELEASE -> 2.3.4 // Camden.RELEASE -> Camden // Camden-SR -> Camden + // 2020.0.0-M1 -> 2020.0.x int indexOfDot = version.lastIndexOf("."); int indexOfDash = version.indexOf("-"); int indexToPick = indexOfDot > 0 ? indexOfDot : indexOfDash; String versionTillPatch = version.substring(0, indexToPick); // 2.3.4 -> [2,3,4] // Camden -> [Camden] + // 2020.0.0-M1 -> [2020, 0] String[] splitVersion = versionTillPatch.split("\\."); - if (splitVersion.length == 3) { + if (splitVersion.length > 1) { // [2,3,4] -> 2.3.x + // [2020, 0] -> 2020.0.x return splitVersion[0] + "." + splitVersion[1] + ".x"; } else if (splitVersion.length == 1) { diff --git a/releaser-core/src/test/java/releaser/internal/git/ProjectGitHandlerTests.java b/releaser-core/src/test/java/releaser/internal/git/ProjectGitHandlerTests.java index 78b8dda4..437d72e8 100644 --- a/releaser-core/src/test/java/releaser/internal/git/ProjectGitHandlerTests.java +++ b/releaser-core/src/test/java/releaser/internal/git/ProjectGitHandlerTests.java @@ -119,6 +119,13 @@ public class ProjectGitHandlerTests { then(this.gitRepo).should().pushCurrentBranch(); } + @Test + public void should_retrieve_version_from_branch_for_calver() { + String branch = this.updater.branchFromVersion("2020.0.0-M1"); + + BDDAssertions.then(branch).isEqualTo("2020.0.x"); + } + @Test public void should_throw_exception_when_no_fixed_version_passed_for_the_project() { BDDAssertions