1+ name : Generated APK AAB 2 (Upload - Create Artifact To Github Action)
2+
3+ env :
4+ # The name of the main module repository
5+ main_project_module : app
6+
7+ # The name of the Play Store
8+ playstore_name : Frogobox ID
9+
10+ # Name Artifact
11+ artifact_name : github-action-automated
12+
13+ # Version name
14+ version_app : 2.2.1
15+
16+ on :
17+
18+ push :
19+ branches :
20+ - ' release/**'
21+
22+ # Allows you to run this workflow manually from the Actions tab
23+ workflow_dispatch :
24+
25+ jobs :
26+ build :
27+
28+ runs-on : ubuntu-latest
29+
30+ steps :
31+ - uses : actions/checkout@v3
32+
33+ # Set Current Date As Env Variable
34+ - name : Set current date as env variable
35+ run : echo "date_today=$(date +'%Y-%m-%d')" >> $GITHUB_ENV
36+
37+ # Set Repository Name As Env Variable
38+ - name : Set repository name as env variable
39+ run : echo "repository_name=$(echo '${{ github.repository }}' | awk -F '/' '{print $2}')" >> $GITHUB_ENV
40+
41+ # Set File Name As Env Variable
42+ - name : Set file name as env variable
43+ run : echo "file_name=$(echo '${{ env.artifact_name }}(${{ env.version_app }})')" >> $GITHUB_ENV
44+
45+ - name : Set Up JDK
46+ uses : actions/setup-java@v3
47+ with :
48+ distribution : ' zulu' # See 'Supported distributions' for available options
49+ java-version : ' 17'
50+ cache : ' gradle'
51+
52+ - name : Change wrapper permissions
53+ run : chmod +x ./gradlew
54+
55+ # Run Tests Build
56+ - name : Run gradle tests
57+ run : ./gradlew test
58+
59+ # Run Build Project
60+ - name : Build gradle project
61+ run : ./gradlew build
62+
63+ # Create APK Debug
64+ - name : Build apk debug project (APK) - ${{ env.main_project_module }} module
65+ run : ./gradlew assembleDebug
66+
67+ # Create APK Release
68+ - name : Build apk release project (APK) - ${{ env.main_project_module }} module
69+ run : ./gradlew assemble
70+
71+ # Create Bundle AAB Release
72+ # Noted for main module build [main_project_module]:bundleRelease
73+ - name : Build app bundle release (AAB) - ${{ env.main_project_module }} module
74+ run : ./gradlew ${{ env.main_project_module }}:bundleRelease
75+
76+ - name : Convert aab to apk
77+ uses :
amirisback/[email protected] 78+ with :
79+ aabFile : ${{ env.main_project_module }}/build/outputs/bundle/release/${{ env.file_name }}-release.aab
80+ bundletoolVersion : ' 1.9.0'
81+
82+ - name : Upload Artifact APK
83+ uses : actions/upload-artifact@v3
84+ with :
85+ name : release-apk
86+ path : ${{ steps.convert_aab.outputs.apkPath }}
87+
88+ # Upload Artifact Build
89+ # Noted For Output [main_project_module]/build/outputs/apk/debug/
90+ - name : Upload APK Debug - ${{ env.repository_name }}
91+ uses : actions/upload-artifact@v3
92+ with :
93+ name : ${{ env.date_today }} - ${{ env.playstore_name }} - ${{ env.repository_name }} - APK(s) debug generated
94+ path : ${{ env.main_project_module }}/build/outputs/apk/debug/
95+
96+ # Noted For Output [main_project_module]/build/outputs/apk/release/
97+ - name : Upload APK Release - ${{ env.repository_name }}
98+ uses : actions/upload-artifact@v3
99+ with :
100+ name : ${{ env.date_today }} - ${{ env.playstore_name }} - ${{ env.repository_name }} - APK(s) release generated
101+ path : ${{ env.main_project_module }}/build/outputs/apk/release/
102+
103+ # Noted For Output [main_project_module]/build/outputs/bundle/release/
104+ - name : Upload AAB (App Bundle) Release - ${{ env.repository_name }}
105+ uses : actions/upload-artifact@v3
106+ with :
107+ name : ${{ env.date_today }} - ${{ env.playstore_name }} - ${{ env.repository_name }} - App bundle(s) AAB release generated
108+ path : ${{ env.main_project_module }}/build/outputs/bundle/release/
0 commit comments