@@ -4,6 +4,21 @@ permissions:
44on :
55 workflow_dispatch :
66 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
722 changes_in_release :
823 description : ' Changes in release'
924 required : true
1732 steps :
1833 - name : Checkout repository
1934 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"
2076
2177 - name : Set up JDK 21
2278 uses : actions/setup-java@v4
@@ -45,6 +101,21 @@ jobs:
45101 env :
46102 BUILD_TOOLS_VERSION : " 35.0.0"
47103
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+
48119 - name : Rename APK
49120 run : |
50121 ls -al app/build/outputs/apk/release
63134 allowUpdates : true
64135 removeArtifacts : true
65136 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 }}"
68139 body : |
69140 Note: KernelFlasher + allow-errors
70141
0 commit comments