Auto-commit after successful build: improve build setup, update docs/config
Changed files:\nREADME.md SetupBuildEnvironment.sh app/build.gradle.kts
This commit is contained in:
@@ -70,6 +70,11 @@ bash ./SetupBuildEnvironment.sh --build
|
|||||||
|
|
||||||
the script will also attempt to create a **git commit after a successful build** if there are source changes to commit.
|
the script will also attempt to create a **git commit after a successful build** if there are source changes to commit.
|
||||||
|
|
||||||
|
It will also automatically bump the Android app version in `app/build.gradle.kts` before each build by:
|
||||||
|
|
||||||
|
- incrementing `versionCode` by 1
|
||||||
|
- incrementing the patch component of `versionName` (for example `0.1.0` → `0.1.1`)
|
||||||
|
|
||||||
## Next steps toward full GitHug parity
|
## Next steps toward full GitHug parity
|
||||||
|
|
||||||
- Expand the Git sandbox to cover merge, rebase, stash, tags, remotes, reset, revert, cherry-pick, bisect, and more
|
- Expand the Git sandbox to cover merge, rebase, stash, tags, remotes, reset, revert, cherry-pick, bisect, and more
|
||||||
|
|||||||
@@ -195,6 +195,41 @@ sdk.dir=$SDK_DIR
|
|||||||
EOF_INNER
|
EOF_INNER
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bump_android_version() {
|
||||||
|
local gradle_file="$PROJECT_DIR/app/build.gradle.kts"
|
||||||
|
if [ ! -f "$gradle_file" ]; then
|
||||||
|
log "No app/build.gradle.kts found; skipping version bump"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
log "Bumping Android app version before build"
|
||||||
|
python - <<PY
|
||||||
|
from pathlib import Path
|
||||||
|
import re
|
||||||
|
|
||||||
|
path = Path(r'''$gradle_file''')
|
||||||
|
text = path.read_text()
|
||||||
|
|
||||||
|
version_code_match = re.search(r'versionCode\s*=\s*(\d+)', text)
|
||||||
|
version_name_match = re.search(r'versionName\s*=\s*"(\d+)\.(\d+)\.(\d+)"', text)
|
||||||
|
|
||||||
|
if not version_code_match or not version_name_match:
|
||||||
|
raise SystemExit('Could not find versionCode/versionName in app/build.gradle.kts')
|
||||||
|
|
||||||
|
current_code = int(version_code_match.group(1))
|
||||||
|
major, minor, patch = map(int, version_name_match.groups())
|
||||||
|
|
||||||
|
new_code = current_code + 1
|
||||||
|
new_name = f'{major}.{minor}.{patch + 1}'
|
||||||
|
|
||||||
|
text = re.sub(r'versionCode\s*=\s*\d+', f'versionCode = {new_code}', text, count=1)
|
||||||
|
text = re.sub(r'versionName\s*=\s*"\d+\.\d+\.\d+"', f'versionName = "{new_name}"', text, count=1)
|
||||||
|
|
||||||
|
path.write_text(text)
|
||||||
|
print(f'Updated versionCode to {new_code} and versionName to {new_name}')
|
||||||
|
PY
|
||||||
|
}
|
||||||
|
|
||||||
setup_env() {
|
setup_env() {
|
||||||
setup_java_env
|
setup_java_env
|
||||||
export ANDROID_HOME="$SDK_DIR"
|
export ANDROID_HOME="$SDK_DIR"
|
||||||
@@ -239,6 +274,7 @@ maybe_build() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
setup_env
|
setup_env
|
||||||
|
bump_android_version
|
||||||
log "Building debug APK with --no-daemon"
|
log "Building debug APK with --no-daemon"
|
||||||
"$PROJECT_DIR/gradlew" --no-daemon assembleDebug
|
"$PROJECT_DIR/gradlew" --no-daemon assembleDebug
|
||||||
auto_commit_if_needed
|
auto_commit_if_needed
|
||||||
|
|||||||
@@ -11,8 +11,8 @@ android {
|
|||||||
applicationId = "com.kawomi.githugandroid"
|
applicationId = "com.kawomi.githugandroid"
|
||||||
minSdk = 26
|
minSdk = 26
|
||||||
targetSdk = 34
|
targetSdk = 34
|
||||||
versionCode = 1
|
versionCode = 2
|
||||||
versionName = "0.1.0"
|
versionName = "0.1.1"
|
||||||
|
|
||||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||||
vectorDrawables.useSupportLibrary = true
|
vectorDrawables.useSupportLibrary = true
|
||||||
|
|||||||
Reference in New Issue
Block a user