-
Notifications
You must be signed in to change notification settings - Fork 3
131 lines (105 loc) · 3.44 KB
/
build.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: Build the app
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
env:
BRANCH_NAME: ${{ github.ref_name }}
jobs:
check:
if: ${{ startsWith(github.actor, 'dependabot') }}
environment: Development
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'adopt'
cache: gradle
- name: Validate Gradle wrapper
uses: gradle/actions/wrapper-validation@v3
- name: Build debug APK
run: ./gradlew assembleDebug
build:
if: ${{ ! startsWith(github.actor, 'dependabot') }}
environment: Development
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'adopt'
cache: gradle
- name: Validate Gradle wrapper
uses: gradle/actions/wrapper-validation@v3
- name: Decrypt the keystore for signing
run: |
echo "${{ secrets.KEYSTORE_ENCRYPTED }}" > keystore.asc
gpg -d --passphrase "${{ secrets.KEYSTORE_PASSWORD }}" --batch keystore.asc > keystore.jks
- name: Build release APK
run: ./gradlew assembleRelease
- name: Upload release Github arm64-v8a APK
uses: actions/upload-artifact@v4
with:
name: release-arm64-v8a-apk-github
path: ./app/build/outputs/apk/github/release/app-github-arm64-v8a-release.apk
- name: Upload release Github armeabi-v7a APK
uses: actions/upload-artifact@v4
with:
name: release-armeabi-v7a-apk-github
path: ./app/build/outputs/apk/github/release/app-github-armeabi-v7a-release.apk
- name: Upload release Github universal APK
uses: actions/upload-artifact@v4
with:
name: release-universal-apk-github
path: ./app/build/outputs/apk/github/release/app-github-universal-release.apk
- name: Upload release GooglePlay arm64-v8a APK
uses: actions/upload-artifact@v4
with:
name: release-arm64-v8a-apk-googleplay
path: ./app/build/outputs/apk/googleplay/release/app-googleplay-arm64-v8a-release.apk
- name: Upload release GooglePlay armeabi-v7a APK
uses: actions/upload-artifact@v4
with:
name: release-armeabi-v7a-apk-googleplay
path: ./app/build/outputs/apk/googleplay/release/app-googleplay-armeabi-v7a-release.apk
- name: Upload release GooglePlay universal APK
uses: actions/upload-artifact@v4
with:
name: release-universal-apk-googleplay
path: ./app/build/outputs/apk/googleplay/release/app-googleplay-universal-release.apk
lint:
needs: build
environment: Development
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'adopt'
- name: Run linter
run: ./gradlew lint
- uses: actions/upload-artifact@v4
with:
name: lint-results
path: ./app/build/reports/*.html
ktlint:
needs: build
environment: Development
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'adopt'
- name: Kotlin linter
run: ./gradlew ktlintCheck