Skip to content

Commit 654de7d

Browse files
authored
Upload .apk files to releases (#348)
1 parent 4635af9 commit 654de7d

3 files changed

Lines changed: 74 additions & 44 deletions

File tree

.github/workflows/deploy_beta.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ on:
55
release:
66
types: [ published ]
77

8+
permissions:
9+
contents: write
10+
811
jobs:
912
deploy:
1013
runs-on: macos-26
@@ -91,3 +94,21 @@ jobs:
9194
ANDROID_KEYSTORE_PASSWORD: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }}
9295
ANDROID_KEY_ALIAS: ${{ secrets.ANDROID_KEY_ALIAS }}
9396
ANDROID_KEY_PASSWORD: ${{ secrets.ANDROID_KEY_PASSWORD }}
97+
98+
- if: matrix.platform == 'android' && github.event_name == 'release'
99+
name: Build Release APK
100+
run: |
101+
cd ./android
102+
fastlane android_apk
103+
env:
104+
GOOGLE_PLAY_SERVICE_ACCOUNT_KEY: ${{ secrets.GOOGLE_PLAY_SERVICE_ACCOUNT_KEY }}
105+
ANDROID_KEYSTORE_FILE: ./upload-keystore
106+
ANDROID_KEYSTORE_PASSWORD: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }}
107+
ANDROID_KEY_ALIAS: ${{ secrets.ANDROID_KEY_ALIAS }}
108+
ANDROID_KEY_PASSWORD: ${{ secrets.ANDROID_KEY_PASSWORD }}
109+
110+
- if: matrix.platform == 'android' && github.event_name == 'release'
111+
name: Upload APK to Release Assets
112+
run: gh release upload "${{ github.event.release.tag_name }}" build/app/outputs/flutter-apk/app-release.apk --clobber
113+
env:
114+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

android/fastlane/Fastfile

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,15 @@ platform :android do
1919
)
2020
end
2121

22+
desc "Build a signed release APK for direct installation"
23+
lane :android_apk do
24+
build_number = latest_google_play_version_code
25+
26+
Dir.chdir "../.." do
27+
sh("flutter", "build", "apk", "--release", "--build-number=#{build_number}")
28+
end
29+
end
30+
2231
def latest_google_play_version_code
2332
json_key_data = Base64.strict_decode64(ENV["GOOGLE_PLAY_SERVICE_ACCOUNT_KEY"])
2433
productionVersionCodes = google_play_track_version_codes(track: 'production', json_key_data: json_key_data)

pubspec.lock

Lines changed: 44 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -237,10 +237,10 @@ packages:
237237
dependency: transitive
238238
description:
239239
name: coverage
240-
sha256: "5da775aa218eaf2151c721b16c01c7676fbfdd99cebba2bf64e8b807a28ff94d"
240+
sha256: "956a3de0725ca232ad353565a8290d3357592bf4250f6f298a185e2d949c5d3d"
241241
url: "https://pub.dev"
242242
source: hosted
243-
version: "1.15.0"
243+
version: "1.15.1"
244244
crypto:
245245
dependency: transitive
246246
description:
@@ -317,18 +317,18 @@ packages:
317317
dependency: "direct main"
318318
description:
319319
name: drift
320-
sha256: "8033500116b24398fba0cca0369cc31678cd627c01e41753a61186911cea743e"
320+
sha256: "6cc0b623c0e83f7080524d8396e9301b1d78b9c66a4fdceeb0f798211303254c"
321321
url: "https://pub.dev"
322322
source: hosted
323-
version: "2.33.0"
323+
version: "2.34.0"
324324
drift_dev:
325325
dependency: "direct dev"
326326
description:
327327
name: drift_dev
328-
sha256: b3dd5b75e30522a91da8abda9f5bb17230cb038097f6d15fa75d42bb563428aa
328+
sha256: "9cfff1576b49725da0d32c040651a41ae195e8c4af8d8da301593e41d7abc2f7"
329329
url: "https://pub.dev"
330330
source: hosted
331-
version: "2.33.0"
331+
version: "2.34.0"
332332
easy_localization:
333333
dependency: "direct main"
334334
description:
@@ -513,10 +513,10 @@ packages:
513513
dependency: "direct main"
514514
description:
515515
name: flutter_riverpod
516-
sha256: "4e166be88e1dbbaa34a280bdb744aeae73b7ef25fdf8db7a3bb776760a3648e2"
516+
sha256: "9255e1e3ad6e38906a1b4f8287678f95f378744c5b46b1985588543f3f19046e"
517517
url: "https://pub.dev"
518518
source: hosted
519-
version: "3.3.1"
519+
version: "3.3.2"
520520
flutter_secure_storage:
521521
dependency: "direct main"
522522
description:
@@ -611,50 +611,50 @@ packages:
611611
dependency: "direct main"
612612
description:
613613
name: geolocator
614-
sha256: "79939537046c9025be47ec645f35c8090ecadb6fe98eba146a0d25e8c1357516"
614+
sha256: e146a6d63776582651e97a79cbe459f8e1211b100101fadcd84db83361fa599f
615615
url: "https://pub.dev"
616616
source: hosted
617-
version: "14.0.2"
617+
version: "14.0.3"
618618
geolocator_android:
619619
dependency: transitive
620620
description:
621621
name: geolocator_android
622-
sha256: "179c3cb66dfa674fc9ccbf2be872a02658724d1c067634e2c427cf6df7df901a"
622+
sha256: "86ea1654e4f61ff51466848e91c116b422d6010ea269fda0fbe1af7e9e742ce1"
623623
url: "https://pub.dev"
624624
source: hosted
625-
version: "5.0.2"
625+
version: "5.0.3"
626626
geolocator_apple:
627627
dependency: transitive
628628
description:
629629
name: geolocator_apple
630-
sha256: dbdd8789d5aaf14cf69f74d4925ad1336b4433a6efdf2fce91e8955dc921bf22
630+
sha256: "853803d6bb1713c094e935b4a5ae5f19c0308acf81da13fa9ff84fb4c70c0b73"
631631
url: "https://pub.dev"
632632
source: hosted
633-
version: "2.3.13"
633+
version: "2.3.14"
634634
geolocator_linux:
635635
dependency: transitive
636636
description:
637637
name: geolocator_linux
638-
sha256: b02993d59b753bf1967ed28862002841aec5cdd5090c1f495213b32ce488aced
638+
sha256: "3da7420f11c3496511a5bd3c18fd67b88e5659f12e46b7ce00a788f6996e850a"
639639
url: "https://pub.dev"
640640
source: hosted
641-
version: "0.2.5"
641+
version: "0.2.6"
642642
geolocator_platform_interface:
643643
dependency: transitive
644644
description:
645645
name: geolocator_platform_interface
646-
sha256: dde05dae7d584db6e82feb87dd9fb0b4b4c83ed68065667b4bef637be38e13a7
646+
sha256: cdb082e4f048b69da244117b7914cc60d2a8897546ffaa4f2529c786ded7aee2
647647
url: "https://pub.dev"
648648
source: hosted
649-
version: "4.2.7"
649+
version: "4.2.8"
650650
geolocator_web:
651651
dependency: transitive
652652
description:
653653
name: geolocator_web
654-
sha256: b1ae9bdfd90f861fde8fd4f209c37b953d65e92823cb73c7dee1fa021b06f172
654+
sha256: "19e485a0f8d6a88abcf9c53cba3a4105e14b7435ed8ac1c108c067b938fe8429"
655655
url: "https://pub.dev"
656656
source: hosted
657-
version: "4.1.3"
657+
version: "4.1.4"
658658
geolocator_windows:
659659
dependency: transitive
660660
description:
@@ -707,10 +707,10 @@ packages:
707707
dependency: transitive
708708
description:
709709
name: googleapis_auth
710-
sha256: "2a8895c3885197f96bb2fd91ee0ae77b53ff3874c7b1f1eadb6566248e880958"
710+
sha256: "1417d8846663df5e7b77ca56591c5edd442c66ffc9c01ab036e138a21a148e86"
711711
url: "https://pub.dev"
712712
source: hosted
713-
version: "2.3.1"
713+
version: "2.3.2"
714714
graphs:
715715
dependency: transitive
716716
description:
@@ -1108,10 +1108,10 @@ packages:
11081108
dependency: transitive
11091109
description:
11101110
name: permission_handler_apple
1111-
sha256: e20daf680eef1ca62ffe8c8c526b778cc386d50137c77ac71c8ec9c88c13fb9d
1111+
sha256: "79dfa1df734798aa3cfdad166d3a3698c206d8813de13516ea1071b5d7e2f420"
11121112
url: "https://pub.dev"
11131113
source: hosted
1114-
version: "9.4.9"
1114+
version: "9.4.10"
11151115
permission_handler_html:
11161116
dependency: transitive
11171117
description:
@@ -1260,10 +1260,10 @@ packages:
12601260
dependency: transitive
12611261
description:
12621262
name: riverpod
1263-
sha256: "8c22216be8ad3ef2b44af3a329693558c98eca7b8bd4ef495c92db0bba279f83"
1263+
sha256: "17100416c51db7810c71a7bb2c34d1f881faa0074fd452afb0c4db6f8f126c76"
12641264
url: "https://pub.dev"
12651265
source: hosted
1266-
version: "3.2.1"
1266+
version: "3.3.2"
12671267
rxdart:
12681268
dependency: "direct main"
12691269
description:
@@ -1284,10 +1284,10 @@ packages:
12841284
dependency: transitive
12851285
description:
12861286
name: shared_preferences_android
1287-
sha256: a2c49fc1fed7140cadd892d765bd47edbe4ac0b9c7e7e3c493dcb58126f99cf0
1287+
sha256: "93ae5884a9df5d3bb696825bceb3a17590754548b5d740eba51500afc8d088f5"
12881288
url: "https://pub.dev"
12891289
source: hosted
1290-
version: "2.4.25"
1290+
version: "2.4.26"
12911291
shared_preferences_foundation:
12921292
dependency: transitive
12931293
description:
@@ -1441,10 +1441,10 @@ packages:
14411441
dependency: transitive
14421442
description:
14431443
name: sqflite_common
1444-
sha256: cce558075afe2a83f3fd7fc123acd6b090683e4f23910d44fbb31ecd7800b014
1444+
sha256: "5bf6a55c166e73bf651ba7ec3ed486e577620e3dc8f3a9c6a258a8031b624590"
14451445
url: "https://pub.dev"
14461446
source: hosted
1447-
version: "2.5.9"
1447+
version: "2.5.11"
14481448
sqflite_darwin:
14491449
dependency: transitive
14501450
description:
@@ -1465,10 +1465,10 @@ packages:
14651465
dependency: "direct main"
14661466
description:
14671467
name: sqlite3
1468-
sha256: "9488c7d2cdb1091c91cacf7e207cff81b28bff8e366f042bad3afe7d34afe189"
1468+
sha256: "37356bcb56ce0d9404d602c41e4bdb7765e7e9732a3e47adb3d98c556a6abdad"
14691469
url: "https://pub.dev"
14701470
source: hosted
1471-
version: "3.3.2"
1471+
version: "3.3.3"
14721472
sqlite3_flutter_libs:
14731473
dependency: "direct main"
14741474
description:
@@ -1481,10 +1481,10 @@ packages:
14811481
dependency: transitive
14821482
description:
14831483
name: sqlparser
1484-
sha256: ecdc06d4a7d79dcbc928d99afd2f7f5b0f98a637c46f89be83d911617f759978
1484+
sha256: "40bdddb306a727be9ce510bd2d2b9a6c9db6c586d846ef7b22e3990a2b24f02d"
14851485
url: "https://pub.dev"
14861486
source: hosted
1487-
version: "0.44.4"
1487+
version: "0.44.5"
14881488
stack_trace:
14891489
dependency: transitive
14901490
description:
@@ -1529,42 +1529,42 @@ packages:
15291529
dependency: "direct main"
15301530
description:
15311531
name: syncfusion_flutter_calendar
1532-
sha256: "4a8c7c1a662694f4a15f5303ad94a91f9e6c1fb73cffd66e2e451e50b942b88f"
1532+
sha256: "68707ffc555334aecd8b0bd7cb1976a780dca90d1413459eea776c1ce9a64c71"
15331533
url: "https://pub.dev"
15341534
source: hosted
1535-
version: "33.2.10"
1535+
version: "33.2.12"
15361536
syncfusion_flutter_charts:
15371537
dependency: "direct main"
15381538
description:
15391539
name: syncfusion_flutter_charts
1540-
sha256: "59ee76f19b3b7b514c5539db7d9889ed2c697703616e381c753ab83731a9059e"
1540+
sha256: "9565d7607e516997fac3570e1fbc7e8d4723141017add79341236857afd11f1b"
15411541
url: "https://pub.dev"
15421542
source: hosted
1543-
version: "33.2.10"
1543+
version: "33.2.12"
15441544
syncfusion_flutter_core:
15451545
dependency: "direct main"
15461546
description:
15471547
name: syncfusion_flutter_core
1548-
sha256: fe25aa8cf709f8e10c17c6f36019dd98bffad4218d9402f3c990156408cfd941
1548+
sha256: "788020307d273fed25c2c8cb860d6e2fbe5cac18abb96819e66ca4e354c6a312"
15491549
url: "https://pub.dev"
15501550
source: hosted
1551-
version: "33.2.10"
1551+
version: "33.2.12"
15521552
syncfusion_flutter_datepicker:
15531553
dependency: "direct main"
15541554
description:
15551555
name: syncfusion_flutter_datepicker
1556-
sha256: "36e080278a089aea7b7bc1cf56e07aba329234fc04b551a3014b7b211e1e7176"
1556+
sha256: e82635057ae0b6167969045a2ced1b0986361892e92c4fe093f42816a2279b3a
15571557
url: "https://pub.dev"
15581558
source: hosted
1559-
version: "33.2.10"
1559+
version: "33.2.12"
15601560
syncfusion_localizations:
15611561
dependency: transitive
15621562
description:
15631563
name: syncfusion_localizations
1564-
sha256: e4581bf1398f2e9333b626b259e0ac6c688b68bc8115a4afad9c08e11cbda09d
1564+
sha256: fc8d2ba5285dc11790b1d76f652ef1d860f05b660a63a579691421678d0b214e
15651565
url: "https://pub.dev"
15661566
source: hosted
1567-
version: "33.2.10"
1567+
version: "33.2.12"
15681568
synchronized:
15691569
dependency: transitive
15701570
description:

0 commit comments

Comments
 (0)