@@ -4,6 +4,21 @@ permissions:
4
4
on :
5
5
workflow_dispatch :
6
6
inputs :
7
+ increment_major :
8
+ description : ' Increment Major Version by?'
9
+ required : true
10
+ default : 0
11
+ type : number
12
+ increment_minor :
13
+ description : ' Increment Minor Version by?'
14
+ required : true
15
+ default : 0
16
+ type : number
17
+ increment_patch :
18
+ description : ' Increment Patch Version by?'
19
+ required : true
20
+ default : 0
21
+ type : number
7
22
changes_in_release :
8
23
description : ' Changes in release'
9
24
required : true
17
32
steps :
18
33
- name : Checkout repository
19
34
uses : actions/checkout@v4
35
+ with :
36
+ fetch-depth : 0 # Important: get all tags!
37
+
38
+ - name : Get Latest Tag
39
+ run : |
40
+ latest_tag=$(git describe --tags --abbrev=0)
41
+ echo "LATEST_TAG=${latest_tag}" >> $GITHUB_ENV
42
+
43
+ - name : Generate Version
44
+ run : |
45
+ # Extract version components
46
+ version_base="${LATEST_TAG#v}"
47
+ major=$(echo $version_base | cut -d. -f1)
48
+ minor=$(echo $version_base | cut -d. -f2)
49
+ patch=$(echo $version_base | cut -d. -f3)
50
+
51
+ # Increment versions by the specified input values
52
+ new_major=$((major + ${{ github.event.inputs.increment_major }}))
53
+ new_minor=$((minor + ${{ github.event.inputs.increment_minor }}))
54
+ new_patch=$((patch + ${{ github.event.inputs.increment_patch }}))
55
+
56
+ # Construct the new version string
57
+ new_version="$new_major.$new_minor.$new_patch"
58
+
59
+ # Calculate the version code (e.g., 1.0.5 -> 10005)
60
+ version_code=$((new_major * 10000 + new_minor * 100 + new_patch))
61
+
62
+ # Set environment variables
63
+ echo "NEW_VERSION_NAME=${new_version}" >> $GITHUB_ENV
64
+ echo "NEW_VERSION_CODE=${version_code}" >> $GITHUB_ENV
65
+
66
+ - name : Update build.gradle with new version code and version name
67
+ run : |
68
+ # Update versionCode and versionName in build.gradle
69
+ sed -i "s/versionCode [0-9]\+/versionCode ${NEW_VERSION_CODE}/" app/build.gradle
70
+ sed -i "s/versionName \"[^\"]*\"/versionName \"${NEW_VERSION_NAME}\"/" app/build.gradle
71
+
72
+ - name : Print Version
73
+ run : |
74
+ echo "Version Name: $NEW_VERSION_NAME"
75
+ echo "Version Code: $NEW_VERSION_CODE"
20
76
21
77
- name : Set up JDK 21
22
78
uses : actions/setup-java@v4
@@ -45,6 +101,21 @@ jobs:
45
101
env :
46
102
BUILD_TOOLS_VERSION : " 35.0.0"
47
103
104
+ - name : Commit the changes
105
+ run : |
106
+ # Configure git user
107
+ git config user.name "github-actions"
108
+ git config user.email "[email protected] "
109
+
110
+ # Add modified build.gradle file
111
+ git add app/build.gradle
112
+
113
+ # Commit the changes
114
+ git commit -m "Update versionName and versionCode to ${NEW_VERSION_NAME} and ${NEW_VERSION_CODE}"
115
+
116
+ # Push changes to the current branch
117
+ git push https://github-actions:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }} HEAD:${GITHUB_REF#refs/heads/}
118
+
48
119
- name : Rename APK
49
120
run : |
50
121
ls -al app/build/outputs/apk/release
63
134
allowUpdates : true
64
135
removeArtifacts : true
65
136
draft : true
66
- name : " 1. ${{ github.run_number }}.0 "
67
- tag : " v1. ${{ github.run_number }}.0 "
137
+ name : ${{ env.NEW_VERSION_NAME }}
138
+ tag : " v ${{ env.NEW_VERSION_NAME }}"
68
139
body : |
69
140
Note: KernelFlasher + allow-errors
70
141
0 commit comments