diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 4d1216a..1a50f19 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -9,10 +9,10 @@ jobs: steps: - uses: actions/checkout@v1 - - name: Set up JDK 1.8 + - name: Set up JDK 11 uses: actions/setup-java@v1 with: - java-version: 1.8 + java-version: 11 - name: Run unit tests run: ./gradlew test - name: Determine coverage diff --git a/build.gradle b/build.gradle index 10a9bde..d9f715b 100644 --- a/build.gradle +++ b/build.gradle @@ -86,7 +86,7 @@ gradle.projectsEvaluated { } dependencies { - implementation 'org.rundeck:rundeck-core:3.2.0-20191218' + implementation 'org.rundeck:rundeck-core:3.+' testImplementation group: 'junit', name: 'junit', version:'4.12' diff --git a/src/main/java/com/bioraft/rundeck/nexus/BranchOrVersion.java b/src/main/java/com/bioraft/rundeck/nexus/BranchOrVersion.java index f867cd8..0b90bc1 100644 --- a/src/main/java/com/bioraft/rundeck/nexus/BranchOrVersion.java +++ b/src/main/java/com/bioraft/rundeck/nexus/BranchOrVersion.java @@ -76,9 +76,15 @@ public String getVersion() { public BranchOrVersion(String path) { artifactId = component(path); String tag = tag(path); - build = tag.replaceFirst("^.*" + BUILD_SEPARATOR_REGEX + "([a-zA-Z0-9]+)$", "$1"); - versionOrBranch = tag.replaceFirst("^(.*)" + BUILD_SEPARATOR_REGEX + build + "$", "$1"); - sep = tag.replaceFirst("^.*(" + BUILD_SEPARATOR_REGEX + ")" + build + "$", "$1"); + if (tag.matches("^.+" + BUILD_SEPARATOR_REGEX + "[a-zA-Z0-9]+$")) { + build = tag.replaceFirst("^.+" + BUILD_SEPARATOR_REGEX + "([a-zA-Z0-9]+)$", "$1"); + versionOrBranch = tag.replaceFirst("^(.+)" + BUILD_SEPARATOR_REGEX + build + "$", "$1"); + sep = tag.replaceFirst("^.+(" + BUILD_SEPARATOR_REGEX + ")" + build + "$", "$1"); + } else { + build = ""; + versionOrBranch = tag; + sep = ""; + } this.parts = versionOrBranch.split("[.]"); } diff --git a/src/test/java/com/bioraft/rundeck/nexus/Nexus3OptionProviderTest.java b/src/test/java/com/bioraft/rundeck/nexus/Nexus3OptionProviderTest.java index 19e92a1..55c1781 100644 --- a/src/test/java/com/bioraft/rundeck/nexus/Nexus3OptionProviderTest.java +++ b/src/test/java/com/bioraft/rundeck/nexus/Nexus3OptionProviderTest.java @@ -299,6 +299,20 @@ public void returnsFourItemsForOneBranchAndTwoBareSemanticReleases() throws IOEx assertEquals("COMP_NAME:14.2.3-4", options.get(3).getName()); } + @Test + public void handlesTagsWithoutBuildSpecifier() throws IOException { + when(client.newCall(any())).thenReturn(call); + String json = "{\"items\":[" + item("v141.1") + "," + item("rc141.1raft4711a") + "]}"; + when(call.execute()).thenReturn(response(json)); + + Nexus3OptionProvider provider = new Nexus3OptionProvider(client); + List options = provider.getOptionValues(configuration); + + assertEquals(3, options.size()); + assertEquals("COMP_NAME:rc141.1raft4711a", options.get(1).getName()); + assertEquals("COMP_NAME:v141.1", options.get(0).getName()); + } + @Test public void sortsBuildNumbersNumerically() throws IOException { when(client.newCall(any())).thenReturn(call);