@@ -6,10 +6,15 @@ name: Build and Upload APK
66on :
77 push :
88 branches : [ master, 'release/*' ]
9+ tags :
10+ - ' v*' # Trigger on version tags (e.g. v0.8.0)
911
1012jobs :
1113 build :
1214 runs-on : ubuntu-latest
15+ permissions :
16+ contents : write # Required for creating releases
17+
1318
1419 steps :
1520 # Checkout repository
@@ -132,118 +137,39 @@ jobs:
132137 -d text="
133138 🎉 *Cihuyy ada update baru nih!*
134139
135- � Kuro-N
140+ 📦 Kuro-N
136141 📦 APK tersedia: ${APK_COUNT}
137142 💾 Total: ~${TOTAL_SIZE}MB
138143 ${APK_INFO}
139144
140- ⬇️ File lagi diupload, tunggu sebentar ya...
145+ ⬇️ [Download APK di GitHub Releases](https://github.com/${GITHUB_REPOSITORY}/releases/tag/${GITHUB_REF_NAME})
141146 "
142147
143- # Upload APK to Telegram Channel
144- - name : Upload APK to Telegram Channel
145- if : success()
146- env :
147- TELEGRAM_BOT_TOKEN : ${{ secrets.TELEGRAM_BOT_TOKEN }}
148- TELEGRAM_CHANNEL_ID : ${{ secrets.TELEGRAM_CHANNEL_ID }}
149- run : |
150- set -e
151- # Check if APK files exist
152- if [ ! -d "apk-output" ] || [ -z "$(ls -A apk-output/*.apk 2>/dev/null)" ]; then
153- echo "❌ No APK files found in apk-output/"
154- exit 1
155- fi
156-
157- # Get version from pubspec.yaml
158- VERSION=$(grep '^version: ' pubspec.yaml | cut -d ' ' -f 2 | cut -d '+' -f 1)
159- SHORT_SHA=$(echo "${GITHUB_SHA}" | cut -c1-8)
160-
161- echo "📦 Version: $VERSION"
162- echo "🔗 Commit: $SHORT_SHA"
163-
164- # Change to output directory to simplify paths for curl
165- cd apk-output
166- UPLOADED_COUNT=0
167-
168- # Upload ARM64 (highest priority - 95% of users)
169- for apk in *arm64-v8a*.apk; do
170- if [ -f "$apk" ]; then
171- size=$(stat -c%s "$apk" 2>/dev/null || stat -f%z "$apk" 2>/dev/null || echo "0")
172- size_mb=$((size / 1024 / 1024))
173-
174- if [ $size_mb -gt 50 ]; then
175- echo "⚠️ Skipping $apk - too large (${size_mb}MB > 50MB limit)"
176- continue
177- fi
178-
179- echo "📤 Uploading ARM64: $apk (${size_mb}MB)..."
180-
181- # Use -S to show errors but keep it quiet otherwise
182- response=$(curl -S --max-time 600 --connect-timeout 60 --retry 3 --retry-delay 10 \
183- -F chat_id="$TELEGRAM_CHANNEL_ID" \
184- -F document=@"$apk" \
185- -F caption="📱 Kuro-N v${VERSION} - ARM64 | ✅ Recommended for modern devices | 💾 ${size_mb}MB | 🔗 $SHORT_SHA" \
186- "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendDocument")
187-
188- if echo "$response" | grep -q '"ok":true'; then
189- echo "✅ Successfully uploaded ARM64: $apk"
190- UPLOADED_COUNT=$((UPLOADED_COUNT + 1))
191- else
192- echo "❌ Failed to upload $apk: $response"
193- exit 1
194- fi
195- fi
196- done
197-
198- # Upload ARM (compatibility for older devices)
199- for apk in *armeabi-v7a*.apk; do
200- if [ -f "$apk" ]; then
201- size=$(stat -c%s "$apk" 2>/dev/null || stat -f%z "$apk" 2>/dev/null || echo "0")
202- size_mb=$((size / 1024 / 1024))
203-
204- if [ $size_mb -gt 50 ]; then
205- echo "⚠️ Skipping $apk - too large (${size_mb}MB > 50MB limit)"
206- continue
207- fi
208-
209- echo "📤 Uploading ARM: $apk (${size_mb}MB)..."
210-
211- response=$(curl -S --max-time 600 --connect-timeout 60 --retry 3 --retry-delay 10 \
212- -F chat_id="$TELEGRAM_CHANNEL_ID" \
213- -F document=@"$apk" \
214- -F caption="📱 Kuro-N v${VERSION} - ARMv7 | 📦 For older devices | 💾 ${size_mb}MB | 🔗 $SHORT_SHA" \
215- "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendDocument")
216-
217- if echo "$response" | grep -q '"ok":true'; then
218- echo "✅ Successfully uploaded ARM: $apk"
219- UPLOADED_COUNT=$((UPLOADED_COUNT + 1))
220- else
221- echo "❌ Failed to upload $apk: $response"
222- exit 1
223- fi
224- fi
225- done
226-
227- echo "🎉 Upload complete! Total uploaded: $UPLOADED_COUNT APKs"
228-
229- # Extract Version from pubspec.yaml
148+ # EXTRACT VERSION Step moved here to be available for release
230149 - name : Read Version
231150 id : version
232151 run : |
233152 VERSION=$(grep '^version: ' pubspec.yaml | cut -d ' ' -f 2 | cut -d '+' -f 1)
234153 echo "VERSION=$VERSION" >> $GITHUB_ENV
235154 echo "Detected version: $VERSION"
236155
237- # Create Draft Release & Upload APK
238- - name : Create Draft Release
239- if : startsWith(github.ref, 'refs/heads/release/')
156+ # DISABLED: Upload APK to Telegram Channel (User Request)
157+ # - name: Upload APK to Telegram Channel
158+ # if: success()
159+ # ... (disabled)
160+
161+ # Create Release & Upload APK to GitHub
162+ # Triggered when a tag (v*) is pushed
163+ - name : Create GitHub Release
164+ if : startsWith(github.ref, 'refs/tags/v')
240165 uses : softprops/action-gh-release@v1
241166 with :
242- tag_name : v${{ env.VERSION }}
243- name : v${{ env.VERSION }}
244- draft : true
245167 files : apk-output/*.apk
246168 generate_release_notes : true
169+ # Note: 'draft' defaults to false, so it will be published immediately or as draft if configured
170+ draft : false
171+ prerelease : false
247172 env :
248173 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
249174
175+
0 commit comments