Skip to content

Commit c9f3f4b

Browse files
authored
Merge pull request #17 from shirokun20/feat/multi-source-migration-phase-4
Feat/multi source migration phase 4
2 parents 44b9488 + cf74709 commit c9f3f4b

File tree

2 files changed

+29
-95
lines changed

2 files changed

+29
-95
lines changed

.github/workflows/build.yml

Lines changed: 21 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,15 @@ name: Build and Upload APK
66
on:
77
push:
88
branches: [ master, 'release/*' ]
9+
tags:
10+
- 'v*' # Trigger on version tags (e.g. v0.8.0)
911

1012
jobs:
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+

build_optimized.sh

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,15 +50,23 @@ echo ""
5050
# Location: build/app/outputs/apk/release/ or build/app/outputs/apk/debug/
5151
APK_SEARCH_PATH="build/app/outputs/apk/$BUILD_TYPE/kuron_*.apk"
5252

53+
FOUND_COUNT=0
5354
for apk in $APK_SEARCH_PATH; do
5455
if [ -f "$apk" ]; then
5556
filename=$(basename "$apk")
5657
size=$(du -h "$apk" | cut -f1)
5758
cp "$apk" "$OUTPUT_DIR/"
5859
echo " 📱 $filename - $size"
60+
FOUND_COUNT=$((FOUND_COUNT + 1))
5961
fi
6062
done
6163

64+
if [ $FOUND_COUNT -eq 0 ]; then
65+
echo "❌ Error: No APK files found matching $APK_SEARCH_PATH"
66+
echo "Check build output directory!"
67+
exit 1
68+
fi
69+
6270
echo ""
6371
echo "📏 SIZE SUMMARY:"
6472
total_size=$(du -ch $OUTPUT_DIR/kuron_*.apk 2>/dev/null | grep total | cut -f1 || echo '0')

0 commit comments

Comments
 (0)