-
Notifications
You must be signed in to change notification settings - Fork 220
130 lines (99 loc) · 3.52 KB
/
push.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
130
name: Badge Magic Push CI
on:
push:
branches: ["flutter_app"]
jobs:
common:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Flutter
uses: subosito/flutter-action@v2
- name: Fetch Flutter Dependencies
run: flutter pub get
- name: Validate Code Format
run: dart format --output=none --set-exit-if-changed .
- name: Analyze Code
run: flutter analyze
android-build:
needs: common
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v3
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }}
restore-keys: |
${{ runner.os }}-gradle-
- name: Setup Ruby
if: ${{ github.repository == 'fossasia/badgemagic-android' }}
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.3'
bundler-cache: true
- name: Prepare Bundler
if: ${{ github.repository == 'fossasia/badgemagic-android' }}
run: |
bundle config path vendor/bundle
bundle install --jobs 4 --retry 3
- name: Pre Checks
run: |
bash scripts/check-screenshots.sh
- name: Prepare Build Keys
if: ${{ github.repository == 'fossasia/badgemagic-android' }}
env:
ENCRYPTED_F10B5E0E5262_IV: ${{ secrets.ENCRYPTED_F10B5E0E5262_IV }}
ENCRYPTED_F10B5E0E5262_KEY: ${{ secrets.ENCRYPTED_F10B5E0E5262_KEY }}
run: |
bash scripts/prep-key.sh
- name: Set up Flutter
uses: subosito/flutter-action@v2
- name: Run tests
run: flutter test
- name: Build Android APK/AAB
env:
STORE_PASS: ${{ secrets.STORE_PASS }}
ALIAS: ${{ secrets.ALIAS }}
KEY_PASS: ${{ secrets.KEY_PASS }}
run: |
flutter build apk
flutter build appbundle
- name: Upload APK
uses: actions/upload-artifact@v4
with:
name: APK Generated
path: build/app/outputs/flutter-apk
- name: Upload AAB Release
uses: actions/upload-artifact@v4
with:
name: AAB Generated
path: build/app/outputs/bundle
- name: Upload APK to apk branch
if: ${{ github.repository == 'fossasia/badgemagic-android' }}
run: |
git config --global user.name "${{ github.workflow }}"
git config --global user.email "gh-actions@${{ github.repository_owner }}"
git clone --branch=apk https://${{ github.repository_owner }}:${{ github.token }}@github.com/${{ github.repository }} apk
cd apk
branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}
echo "Removing previous files from branch"
rm -rf badge-magic-$branch*
ls
echo "Copying new build files"
find ../build/app/outputs -type f \( -name '*.apk' -o -name '*.aab' \) -exec cp -v {} . \;
ls
echo "Renaming new build files"
for file in android*; do
mv $file badge-magic-$branch-${file#*-}
done
ls
echo "Pushing to apk branch"
git checkout --orphan temporary
git add --all .
git commit -am "[Auto] Update APK/AAB's from $branch ($(date +%Y-%m-%d.%H:%M:%S))"
git branch -D apk
git branch -m apk
git push --force origin apk