From 6f13533ddcb42fb0e71559e16d4609cef5c5c38a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sylwester=20Zieli=C5=84ski?= Date: Thu, 3 Feb 2022 12:54:59 +0100 Subject: [PATCH] Add app versioning which base on tags --- app/build.gradle | 5 +++-- gradle/git-tag-version.gradle | 27 +++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 gradle/git-tag-version.gradle diff --git a/app/build.gradle b/app/build.gradle index e77546ce..f9e6f36e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -5,6 +5,7 @@ plugins { id 'kotlin-kapt' id 'dagger.hilt.android.plugin' } +apply from: rootProject.file("gradle/git-tag-version.gradle") android { compileSdk android_api_version @@ -13,8 +14,8 @@ android { applicationId "no.nordicsemi.android.nrftoolbox" minSdk android_min_api_version targetSdk android_api_version - versionCode 1 - versionName "1.0" + versionCode getVersionCodeFromTags() + versionName getVersionNameFromTags() testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" vectorDrawables { diff --git a/gradle/git-tag-version.gradle b/gradle/git-tag-version.gradle new file mode 100644 index 00000000..44d610dd --- /dev/null +++ b/gradle/git-tag-version.gradle @@ -0,0 +1,27 @@ +ext.getVersionCodeFromTags = { -> + try { + def code = new ByteArrayOutputStream() + exec { + commandLine 'git', 'tag', '--list' + standardOutput = code + } + return 14 + code.toString().split("\n").size() + } + catch (ignored) { + return -1 + } +} + +ext.getVersionNameFromTags = { -> + try { + def stdout = new ByteArrayOutputStream() + exec { + commandLine 'git', 'describe', '--tags', '--abbrev=0' + standardOutput = stdout + } + return stdout.toString().trim().split("%")[0] + } + catch (ignored) { + return null + } +}