-
-
Notifications
You must be signed in to change notification settings - Fork 1
155 lines (124 loc) · 3.99 KB
/
main.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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
name: AndroidBuild
on:
pull_request:
branches: [ main ]
push:
branches: [ main ]
jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4.1.1
- name: Cache Gradle
uses: actions/cache@v3.3.2
with:
path: ~/.gradle/caches
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
restore-keys: ${{ runner.os }}-gradle-
- name: Setup Java JDK
uses: actions/setup-java@v3.13.0
with:
java-version: '17'
distribution: 'oracle'
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Run Lint Check
run: ./gradlew lintDebug
- name: Upload Build Lint Report
uses: actions/upload-artifact@v3.1.3
with:
name: lint-report.html
path: app/build/reports/lint-results-debug.html
unit-test:
needs: [ lint ]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4.1.1
- name: Creating local.properties with API_KEY
run: echo API_KEY=${{ secrets.API_KEY }} > ./local.properties
- name: Setup Java JDK
uses: actions/setup-java@v3.13.0
with:
java-version: '17'
distribution: 'oracle'
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Run Unit Tests
run: ./gradlew test
- name: Upload Unit Test Report
uses: actions/upload-artifact@v3.1.3
with:
name: unit-test-report
path: app/build/reports/tests/testDebugUnitTest/
instrumentation-test:
needs: [ unit-test ]
runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@v4.1.1
- name: Creating local.properties with API_KEY
run: echo API_KEY=${{ secrets.API_KEY }} > ./local.properties
- name: Setup Java JDK
uses: actions/setup-java@v3.13.0
with:
java-version: '17'
distribution: 'oracle'
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Run Espresso Tests
uses: ReactiveCircus/android-emulator-runner@v2.28.0
with:
api-level: 30
arch: x86_64
script: ./gradlew connectedCheck
- name: Upload Instrumentation Test Report
uses: actions/upload-artifact@v3.1.3
with:
name: instrumentation-test-report
path: app/build/reports/androidTests/connected/
static-code-analysis:
needs: [ instrumentation-test ]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4.1.1
- name: Creating local.properties with API_KEY
run: echo API_KEY=${{ secrets.API_KEY }} > ./local.properties
- name: Setup Java JDK
uses: actions/setup-java@v3.13.0
with:
java-version: '17'
distribution: 'oracle'
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Run Static Code Analysis
run: ./gradlew detekt
- name: Upload Static Code Analysis Report
uses: actions/upload-artifact@v3.1.3
with:
name: BitPost.apk
path: app/build/reports/detekt/detekt.html
build:
needs: [ static-code-analysis ]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4.1.1
- name: Creating local.properties with API_KEY
run: echo API_KEY=${{ secrets.API_KEY }} > ./local.properties
- name: Setup Java JDK
uses: actions/setup-java@v3.13.0
with:
java-version: '17'
distribution: 'oracle'
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build with Gradle
run: ./gradlew build
- name: Upload a Build Artifact
uses: actions/upload-artifact@v3.1.3
with:
name: BitPost.apk
path: app/build/outputs/apk/debug/app-debug.apk