@@ -3,7 +3,21 @@ permissions:
3
3
contents : write
4
4
on :
5
5
workflow_dispatch :
6
- inputs :
6
+ increment_major :
7
+ description : ' Increment Major Version by?'
8
+ required : true
9
+ default : 0
10
+ type : number
11
+ increment_minor :
12
+ description : ' Increment Minor Version by?'
13
+ required : true
14
+ default : 0
15
+ type : number
16
+ increment_patch :
17
+ description : ' Increment Patch Version by?'
18
+ required : true
19
+ default : 0
20
+ type : number
7
21
changes_in_release :
8
22
description : ' Changes in release'
9
23
required : true
17
31
steps :
18
32
- name : Checkout repository
19
33
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 + ${{ github.event.inputs.increment_major }}))
52
+ new_minor=$((minor + ${{ github.event.inputs.increment_minor }}))
53
+ new_patch=$((patch + ${{ github.event.inputs.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"
20
75
21
76
- name : Set up JDK 21
22
77
uses : actions/setup-java@v4
0 commit comments