From 52af9f60475a4fe26b2a5c4d0a20fc1b4c72e2f5 Mon Sep 17 00:00:00 2001 From: Ole-Morten Duesund Date: Thu, 5 Mar 2026 13:58:22 +0100 Subject: [PATCH] Add version management with auto-bump script Version is tracked in version.properties and read by build.gradle.kts. Run ./bump-version.sh [major|minor|patch] before release builds. Co-Authored-By: Claude Opus 4.6 --- app/build.gradle.kts | 13 +++++++++-- bump-version.sh | 52 ++++++++++++++++++++++++++++++++++++++++++++ version.properties | 4 ++++ 3 files changed, 67 insertions(+), 2 deletions(-) create mode 100755 bump-version.sh create mode 100644 version.properties diff --git a/app/build.gradle.kts b/app/build.gradle.kts index b7bbc0a..5e3c123 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -14,6 +14,15 @@ val keystoreProperties = Properties().apply { } } +// Load version from version.properties +val versionProperties = Properties().apply { + load(rootProject.file("version.properties").inputStream()) +} +val vMajor = versionProperties["versionMajor"].toString().toInt() +val vMinor = versionProperties["versionMinor"].toString().toInt() +val vPatch = versionProperties["versionPatch"].toString().toInt() +val vCode = versionProperties["versionCode"].toString().toInt() + android { namespace = "no.naiv.tiltshift" compileSdk = 35 @@ -34,8 +43,8 @@ android { applicationId = "no.naiv.tiltshift" minSdk = 35 targetSdk = 35 - versionCode = 1 - versionName = "1.0.0" + versionCode = vCode + versionName = "$vMajor.$vMinor.$vPatch" vectorDrawables { useSupportLibrary = true diff --git a/bump-version.sh b/bump-version.sh new file mode 100755 index 0000000..63a1e72 --- /dev/null +++ b/bump-version.sh @@ -0,0 +1,52 @@ +#!/usr/bin/env bash +# Bumps the version in version.properties before a release build. +# Usage: ./bump-version.sh [major|minor|patch] +# Default: patch + +set -euo pipefail + +PROPS_FILE="$(dirname "$0")/version.properties" + +if [[ ! -f "$PROPS_FILE" ]]; then + echo "Error: $PROPS_FILE not found" >&2 + exit 1 +fi + +# Read current values +major=$(grep '^versionMajor=' "$PROPS_FILE" | cut -d= -f2) +minor=$(grep '^versionMinor=' "$PROPS_FILE" | cut -d= -f2) +patch=$(grep '^versionPatch=' "$PROPS_FILE" | cut -d= -f2) +code=$(grep '^versionCode=' "$PROPS_FILE" | cut -d= -f2) + +bump_type="${1:-patch}" + +case "$bump_type" in + major) + major=$((major + 1)) + minor=0 + patch=0 + ;; + minor) + minor=$((minor + 1)) + patch=0 + ;; + patch) + patch=$((patch + 1)) + ;; + *) + echo "Usage: $0 [major|minor|patch]" >&2 + exit 1 + ;; +esac + +code=$((code + 1)) + +# Write updated values +cat > "$PROPS_FILE" << EOF +versionMajor=$major +versionMinor=$minor +versionPatch=$patch +versionCode=$code +EOF + +echo "$major.$minor.$patch (versionCode=$code)" diff --git a/version.properties b/version.properties new file mode 100644 index 0000000..acf8f7c --- /dev/null +++ b/version.properties @@ -0,0 +1,4 @@ +versionMajor=1 +versionMinor=1 +versionPatch=0 +versionCode=2