1
- name : Check Commit CI
1
+ name : CI
2
2
3
3
on :
4
4
push :
@@ -14,12 +14,27 @@ concurrency:
14
14
cancel-in-progress : false
15
15
16
16
jobs :
17
- build :
17
+ job-common :
18
+ runs-on : ubuntu-latest
19
+ outputs :
20
+ SHORT_SHA : ${{ steps.expose_sha.outputs.short_sha }}
21
+ steps :
22
+ - name : expose short commit sha
23
+ id : expose_sha
24
+ run : |
25
+ SHORT_SHA=${GITHUB_SHA::7}
26
+ echo "short_sha=$SHORT_SHA" >> $GITHUB_ENV
27
+ echo "SHORT_SHA=$SHORT_SHA" >> $GITHUB_OUTPUT
28
+
29
+ build-android :
30
+ if : ${{ vars.ANDROID_BUILD_ENABLED == 'true' }}
31
+ needs : job-common
18
32
env :
19
33
KEYSTORE_FILE : ${{ secrets.KEYSTORE_FILE }}
20
34
KEYSTORE_KEY_ALIAS : ${{ secrets.KEYSTORE_KEY_ALIAS }}
21
35
KEYSTORE_KEY_PASSWORD : ${{ secrets.KEYSTORE_KEY_PASSWORD }}
22
36
KEYSTORE_STORE_PASSWORD : ${{ secrets.KEYSTORE_STORE_PASSWORD }}
37
+ SHORT_SHA : ${{ needs.job-common.outputs.SHORT_SHA }}
23
38
runs-on : ubuntu-latest
24
39
timeout-minutes : 60
25
40
steps :
@@ -54,17 +69,32 @@ jobs:
54
69
- name : make gradlew executable
55
70
run : chmod +x ./gradlew
56
71
72
+ - name : decode keystore file
73
+ id : decode_keystore_file
74
+ uses : timheuer/base64-to-file@v1
75
+ with :
76
+ fileName : ' keystore_release.jks'
77
+ encodedString : ${{ secrets.KEYSTORE_FILE }}
78
+
79
+ - name : set decoded file location as environment
80
+ run : echo "KEYSTORE_FILE=${{ steps.decode_keystore_file.outputs.filePath }}" >> $GITHUB_ENV
81
+
57
82
- name : assemble debug artifact
58
83
run : ./gradlew assembleDebug
59
84
60
- # - name: assemble release artifact
61
- # run: ./gradlew assembleRelease
85
+ - name : assemble release artifact
86
+ run : ./gradlew assembleRelease
87
+
88
+ - name : bundle release artifact
89
+ run : ./gradlew bundleRelease
62
90
63
91
- name : upload artifacts to outputs
64
92
uses : actions/upload-artifact@v4
65
93
with :
66
94
path : |
67
- app/build/outputs/apk
95
+ app/build/outputs/apk/debug
96
+ app/build/outputs/apk/release
97
+ app/build/outputs/bundle/release
68
98
69
99
- name : expose version name
70
100
id : version_name
@@ -78,21 +108,47 @@ jobs:
78
108
VERSION_CODE=$(./gradlew printVersionCode -q)
79
109
echo "VERSION_CODE=$VERSION_CODE" >> $GITHUB_ENV
80
110
81
- - name : list all apk files
111
+ - name : expose artifacts
82
112
run : |
83
- echo "APKs:"
84
- for apk in $(find app/build/outputs/apk -name '*.apk'); do
85
- echo "$apk"
86
- done
113
+ echo "DEBUG_APK_PATH=$(find app/build/outputs/apk/debug -name '*.apk' -type f -printf '%T@ %p\n' | sort -n | tail -1 | cut -d' ' -f2)" >> $GITHUB_ENV
114
+ echo "RELEASE_APK_PATH=$(find app/build/outputs/apk/release -name '*.apk' -type f -printf '%T@ %p\n' | sort -n | tail -1 | cut -d' ' -f2)" >> $GITHUB_ENV
115
+ echo "BUNDLE_APK_PATH=$(find app/build/outputs/bundle/release -name '*.apk' -type f -printf '%T@ %p\n' | sort -n | tail -1 | cut -d' ' -f2)" >> $GITHUB_ENV
87
116
88
- - name : expose apk path
117
+ - name : send telegram message debug
118
+ env :
119
+ TELEGRAM_TOKEN : ${{ secrets.TELEGRAM_TOKEN }}
120
+ CHAT_ID : ${{ secrets.TELEGRAM_CHAT_ID }}
121
+ THREAD_ID : ${{ secrets.TELEGRAM_THREAD_ID }}
122
+ MESSAGE : |
123
+ ✅ <b>${{ env.VERSION_NAME }} (${{ env.VERSION_CODE }})</b>
124
+ <b>Ветка:</b> ${{ github.ref_name }}
125
+ <b>Коммит:</b> <code>${{ env.SHORT_SHA }}</code>
89
126
run : |
90
- echo "APK_PATH=$(find app/build/outputs/apk -name '*.apk' -type f -printf '%T@ %p\n' | sort -n | tail -1 | cut -d' ' -f2)" >> $GITHUB_ENV
127
+ curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendDocument" \
128
+ -F chat_id="${CHAT_ID}" \
129
+ -F document="@${{ env.DEBUG_APK_PATH }}" \
130
+ -F caption="${{ env.MESSAGE }}" \
131
+ -F message_thread_id="${THREAD_ID}" \
132
+ -F parse_mode="HTML"
91
133
92
- - name : expose short commit sha
93
- run : echo "SHORT_SHA=${GITHUB_SHA::7}" >> $GITHUB_ENV
134
+ - name : send telegram message release
135
+ env :
136
+ TELEGRAM_TOKEN : ${{ secrets.TELEGRAM_TOKEN }}
137
+ CHAT_ID : ${{ secrets.TELEGRAM_CHAT_ID }}
138
+ THREAD_ID : ${{ secrets.TELEGRAM_THREAD_ID }}
139
+ MESSAGE : |
140
+ ✅ <b>${{ env.VERSION_NAME }} (${{ env.VERSION_CODE }})</b>
141
+ <b>Ветка:</b> ${{ github.ref_name }}
142
+ <b>Коммит:</b> <code>${{ env.SHORT_SHA }}</code>
143
+ run : |
144
+ curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendDocument" \
145
+ -F chat_id="${CHAT_ID}" \
146
+ -F document="@${{ env.RELEASE_APK_PATH }}" \
147
+ -F caption="${{ env.MESSAGE }}" \
148
+ -F message_thread_id="${THREAD_ID}" \
149
+ -F parse_mode="HTML"
94
150
95
- - name : send telegram message
151
+ - name : send telegram message bundle
96
152
env :
97
153
TELEGRAM_TOKEN : ${{ secrets.TELEGRAM_TOKEN }}
98
154
CHAT_ID : ${{ secrets.TELEGRAM_CHAT_ID }}
@@ -104,7 +160,7 @@ jobs:
104
160
run : |
105
161
curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendDocument" \
106
162
-F chat_id="${CHAT_ID}" \
107
- -F document="@${{ env.APK_PATH }}" \
163
+ -F document="@${{ env.BUNDLE_APK_PATH }}" \
108
164
-F caption="${{ env.MESSAGE }}" \
109
165
-F message_thread_id="${THREAD_ID}" \
110
166
-F parse_mode="HTML"
0 commit comments