-
Notifications
You must be signed in to change notification settings - Fork 2
129 lines (113 loc) · 3.83 KB
/
ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
name: ci
on:
workflow_dispatch:
push:
branches:
- master
jobs:
android:
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, 'ci skip')"
steps:
- name: Clone the repository
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Install and set up Java
uses: actions/setup-java@v2
with:
distribution: 'zulu'
java-version: '17.x'
- name: Install and set up Flutter
uses: subosito/flutter-action@v2
with:
flutter-version: '3.19.0'
cache: true
- name: Set up signing key
run: echo $SIGNING_KEY | base64 -d > android/app/key.jks
env:
SIGNING_KEY: ${{ secrets.SIGNING_KEY }}
- name: Cache build directory
uses: actions/cache@v3
with:
path: build
key: ${{ runner.os }}-build-${{ hashFiles('**/build') }}
restore-keys: |
${{ runner.os }}-build-
- name: Build
run: |
flutter clean
flutter config --no-analytics
flutter pub get
flutter pub run flutter_oss_licenses:generate.dart
flutter pub run intl_utils:generate
# Create a directory for our release APKs
mkdir -pv build/app/outputs/release
# Build our big boy APK, and move it into the release APKs folder
flutter build apk --dart-define=app.flavor=github --release --no-tree-shake-icons
mv build/app/outputs/flutter-apk/*-release.apk build/app/outputs/release
# Build our ABI-specific APKs and move them into the release APKs folder
flutter build apk --dart-define=app.flavor=github --release --no-tree-shake-icons --split-per-abi --target-platform=android-x64,android-arm,android-arm64
mv build/app/outputs/flutter-apk/*-release.apk build/app/outputs/release
env:
KEY_STORE_PASSWORD: ${{ secrets.KEY_STORE_PASSWORD }}
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
KEY_ALIAS: ${{ secrets.KEY_ALIAS }}
KEY_PATH: key.jks
- name: Archive big APK
uses: actions/upload-artifact@v4
with:
name: apk
path: build/app/outputs/release/app-release.apk
- name: Archive arm APK
uses: actions/upload-artifact@v4
with:
name: apk-arm
path: build/app/outputs/release/app-armeabi-v7a-release.apk
- name: Archive arm64 APK
uses: actions/upload-artifact@v4
with:
name: apk-arm64
path: build/app/outputs/release/app-arm64-v8a-release.apk
- name: Archive x86_64 APK
uses: actions/upload-artifact@v4
with:
name: apk-x86_64
path: build/app/outputs/release/app-x86_64-release.apk
# ios:
# runs-on: macos-latest
# steps:
# - name: Clone the repository
# uses: actions/checkout@v2
# with:
# fetch-depth: 0
#
# - name: Install and set up Java
# uses: actions/setup-java@v1
# with:
# java-version: '14.x'
#
# - name: Install and set up Flutter
# uses: subosito/flutter-action@v1
# with:
# flutter-version: '2.2.1'
#
# - name: Build
# run: |
# flutter config --no-analytics
# flutter pub get
# flutter pub run flutter_oss_licenses:generate.dart
# flutter build ipa --debug
# flutter build ipa --release
# - name: Archive debug APK
# uses: actions/upload-artifact@v2
# with:
# name: apk-debug
# path: build/app/outputs/flutter-apk/app-debug.apk
#
# - name: Archive release APK
# uses: actions/upload-artifact@v2
# with:
# name: apk-release
# path: build/app/outputs/flutter-ipa/iphoneos/app.ipa
# path: build/app/outputs/flutter-apk/app-release.apk