@@ -3,7 +3,21 @@ permissions:
33 contents : write
44on :
55 workflow_dispatch :
6- inputs :
6+ increment_major :
7+ description : ' Increment Major Version by?'
8+ required : true
9+ default : 0
10+ type : integer
11+ increment_minor :
12+ description : ' Increment Minor Version by?'
13+ required : true
14+ default : 0
15+ type : integer
16+ increment_patch :
17+ description : ' Increment Patch Version by?'
18+ required : true
19+ default : 0
20+ type : integer
721 changes_in_release :
822 description : ' Changes in release'
923 required : true
1731 steps :
1832 - name : Checkout repository
1933 uses : actions/checkout@v4
34+ with :
35+ fetch-depth : 0 # Important: get all tags!
36+
37+ - name : Get Latest Tag
38+ run : |
39+ latest_tag=$(git describe --tags --abbrev=0)
40+ echo "LATEST_TAG=${latest_tag}" >> $GITHUB_ENV
41+
42+ - name : Generate Version
43+ run : |
44+ # Extract version components
45+ version_base="${LATEST_TAG#v}"
46+ major=$(echo $version_base | cut -d. -f1)
47+ minor=$(echo $version_base | cut -d. -f2)
48+ patch=$(echo $version_base | cut -d. -f3)
49+
50+ # Increment versions by the specified input values
51+ new_major=$((major + ${INPUT_INCREMENT_MAJOR}))
52+ new_minor=$((minor + ${INPUT_INCREMENT_MINOR}))
53+ new_patch=$((patch + ${INPUT_INCREMENT_PATCH}))
54+
55+ # Construct the new version string
56+ new_version="$major.$minor.$new_patch"
57+
58+ # Calculate the version code (e.g., 1.0.5 -> 10005)
59+ version_code=$((major * 10000 + minor * 100 + new_patch))
60+
61+ # Set environment variables
62+ echo "NEW_VERSION_NAME=${new_version}" >> $GITHUB_ENV
63+ echo "NEW_VERSION_CODE=${version_code}" >> $GITHUB_ENV
64+
65+ - name : Update build.gradle with new version code and version name
66+ run : |
67+ # Update versionCode and versionName in build.gradle
68+ sed -i "s/versionCode [0-9]\+/versionCode ${NEW_VERSION_CODE}/" app/build.gradle
69+ sed -i "s/versionName \"[^\"]*\"/versionName \"${NEW_VERSION_NAME}\"/" app/build.gradle
70+
71+ - name : Print Version
72+ run : |
73+ echo "Version Name: $NEW_VERSION_NAME"
74+ echo "Version Code: $NEW_VERSION_CODE"
2075
2176 - name : Set up JDK 21
2277 uses : actions/setup-java@v4
0 commit comments