浏览代码

Antora prerelease: true for milestone and rc

Rob Winch 3 年之前
父节点
当前提交
d5483f7cbb

+ 17 - 7
buildSrc/src/main/java/org/springframework/gradle/antora/CheckAntoraVersionPlugin.java

@@ -38,14 +38,20 @@ public class CheckAntoraVersionPlugin implements Plugin<Project> {
 
 	private static String getDefaultAntoraVersion(Project project) {
 		String projectVersion = getProjectVersion(project);
-		int preReleaseIndex = getPreReleaseIndex(projectVersion);
-		return isPreRelease(projectVersion) ? projectVersion.substring(0, preReleaseIndex) : projectVersion;
+		int preReleaseIndex = getSnapshotIndex(projectVersion);
+		return isSnapshot(projectVersion) ? projectVersion.substring(0, preReleaseIndex) : projectVersion;
 	}
 
 	private static String getDefaultAntoraPrerelease(Project project) {
 		String projectVersion = getProjectVersion(project);
-		int preReleaseIndex = getPreReleaseIndex(projectVersion);
-		return isPreRelease(projectVersion) ? projectVersion.substring(preReleaseIndex) : null;
+		if (isSnapshot(projectVersion)) {
+			int preReleaseIndex = getSnapshotIndex(projectVersion);
+			return projectVersion.substring(preReleaseIndex);
+		}
+		if (isPreRelease(projectVersion)) {
+			return Boolean.TRUE.toString();
+		}
+		return null;
 	}
 
 	private static String getProjectVersion(Project project) {
@@ -56,11 +62,15 @@ public class CheckAntoraVersionPlugin implements Plugin<Project> {
 		return String.valueOf(projectVersion);
 	}
 
-	private static int getPreReleaseIndex(String projectVersion) {
-		return projectVersion.lastIndexOf("-");
+	private static boolean isSnapshot(String projectVersion) {
+		return getSnapshotIndex(projectVersion) >= 0;
+	}
+
+	private static int getSnapshotIndex(String projectVersion) {
+		return projectVersion.lastIndexOf("-SNAPSHOT");
 	}
 
 	private static boolean isPreRelease(String projectVersion) {
-		return getPreReleaseIndex(projectVersion) >= 0;
+		return projectVersion.lastIndexOf("-") >= 0;
 	}
 }

+ 6 - 6
buildSrc/src/test/java/org/springframework/gradle/antora/CheckAntoraVersionPluginTests.java

@@ -46,8 +46,8 @@ class CheckAntoraVersionPluginTests {
 		assertThat(task).isInstanceOf(CheckAntoraVersionTask.class);
 
 		CheckAntoraVersionTask checkAntoraVersionTask = (CheckAntoraVersionTask) task;
-		assertThat(checkAntoraVersionTask.getAntoraVersion().get()).isEqualTo("1.0.0");
-		assertThat(checkAntoraVersionTask.getAntoraPrerelease().get()).isEqualTo("-M1");
+		assertThat(checkAntoraVersionTask.getAntoraVersion().get()).isEqualTo("1.0.0-M1");
+		assertThat(checkAntoraVersionTask.getAntoraPrerelease().get()).isEqualTo("true");
 		assertThat(checkAntoraVersionTask.getAntoraYmlFile().getAsFile().get()).isEqualTo(project.file("antora.yml"));
 	}
 
@@ -63,8 +63,8 @@ class CheckAntoraVersionPluginTests {
 		assertThat(task).isInstanceOf(CheckAntoraVersionTask.class);
 
 		CheckAntoraVersionTask checkAntoraVersionTask = (CheckAntoraVersionTask) task;
-		assertThat(checkAntoraVersionTask.getAntoraVersion().get()).isEqualTo("1.0.0");
-		assertThat(checkAntoraVersionTask.getAntoraPrerelease().get()).isEqualTo("-RC1");
+		assertThat(checkAntoraVersionTask.getAntoraVersion().get()).isEqualTo("1.0.0-RC1");
+		assertThat(checkAntoraVersionTask.getAntoraPrerelease().get()).isEqualTo("true");
 		assertThat(checkAntoraVersionTask.getAntoraYmlFile().getAsFile().get()).isEqualTo(project.file("antora.yml"));
 	}
 
@@ -170,7 +170,7 @@ class CheckAntoraVersionPluginTests {
 		String expectedVersion = "1.0.0-M1";
 		Project project = ProjectBuilder.builder().build();
 		File rootDir = project.getRootDir();
-		IOUtils.write("version: '1.0.0'\nprerelease: '-M1'", new FileOutputStream(new File(rootDir, "antora.yml")), StandardCharsets.UTF_8);
+		IOUtils.write("version: '1.0.0-M1'\nprerelease: 'true'", new FileOutputStream(new File(rootDir, "antora.yml")), StandardCharsets.UTF_8);
 		project.setVersion(expectedVersion);
 		project.getPluginManager().apply(CheckAntoraVersionPlugin.class);
 
@@ -187,7 +187,7 @@ class CheckAntoraVersionPluginTests {
 		String expectedVersion = "1.0.0-RC1";
 		Project project = ProjectBuilder.builder().build();
 		File rootDir = project.getRootDir();
-		IOUtils.write("version: '1.0.0'\nprerelease: '-RC1'", new FileOutputStream(new File(rootDir, "antora.yml")), StandardCharsets.UTF_8);
+		IOUtils.write("version: '1.0.0-RC1'\nprerelease: 'true'", new FileOutputStream(new File(rootDir, "antora.yml")), StandardCharsets.UTF_8);
 		project.setVersion(expectedVersion);
 		project.getPluginManager().apply(CheckAntoraVersionPlugin.class);