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/bundletool-action-apk@v1.0.0
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