diff --git a/.gitignore b/.gitignore index 5ad0690cc..9f8966e07 100644 --- a/.gitignore +++ b/.gitignore @@ -124,3 +124,4 @@ New client/photon-client/* photon-server/build photon-server/photon-vision photon-server/src/main/resources/web +photon-server/src/main/java/org/photonvision/PhotonVersion.java diff --git a/photon-server/build.gradle b/photon-server/build.gradle index f176f133a..350ddd2a3 100644 --- a/photon-server/build.gradle +++ b/photon-server/build.gradle @@ -6,10 +6,12 @@ plugins { id "jacoco" } +apply from: 'versioningHelper.gradle' + mainClassName = 'org.photonvision.Main' group 'org.photonvision' -version '2020.6.1' +version getCurrentVersion() sourceCompatibility = 11 @@ -129,6 +131,8 @@ spotless { java { target "src/*/java/org/**/*.java" licenseHeaderFile "$rootDir/LicenseHeader.txt" + + targetExclude("src/main/java/org/photonvision/PhotonVersion.java") } } diff --git a/photon-server/versioningHelper.gradle b/photon-server/versioningHelper.gradle new file mode 100644 index 000000000..84ebba410 --- /dev/null +++ b/photon-server/versioningHelper.gradle @@ -0,0 +1,26 @@ +gradle.allprojects { + ext.getCurrentVersion = { -> + def stdout = new ByteArrayOutputStream() + exec { + commandLine 'git', 'describe', '--tags' + standardOutput = stdout + } + return stdout.toString().trim().toLowerCase() + } +} + +task writeCurrentVersionJava { + File versionFile = new File("src/main/java/org/photonvision/PhotonVersion.java") + versionFile.delete() + versionFile << "package org.photonvision;\n" + + "\n" + + "/*\n" + + " * Autogenerated file! Do not manually edit this file. This version is regenerated\n" + + " * any time the publish task is run, or when this file is deleted.\n" + + " */\n\n" + + "public class PhotonVersion {\n" + + String.format(" public static final String versionString = \"%s\";\n", getCurrentVersion()) + + "}" +} + +build.dependsOn writeCurrentVersionJava \ No newline at end of file