-
Notifications
You must be signed in to change notification settings - Fork 0
89 lines (72 loc) · 2.82 KB
/
ci.yml
File metadata and controls
89 lines (72 loc) · 2.82 KB
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
name: CI
on:
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
# ── Lint & unit tests ────────────────────────────────────────────────────────
lint-and-test:
name: Lint & Unit Tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Make gradlew executable
run: chmod +x gradlew
- uses: actions/setup-java@v4
with:
java-version: 17
distribution: temurin
- uses: gradle/actions/setup-gradle@v3
- name: Run lint
run: ./gradlew lint
- name: Run unit tests
run: ./gradlew testDebugUnitTest
- name: Upload lint reports
if: always()
uses: actions/upload-artifact@v4
with:
name: lint-reports
path: '**/build/reports/lint-results-*.html'
if-no-files-found: warn
# ── Macrobenchmark ────────────────────────────────────────────────────────────
benchmark:
name: Macrobenchmark
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Make gradlew executable
run: chmod +x gradlew
- uses: actions/setup-java@v4
with:
java-version: 17
distribution: temurin
- uses: gradle/actions/setup-gradle@v3
# Required for hardware-accelerated emulator on GitHub-hosted runners.
- name: Enable KVM
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm
- name: Run Macrobenchmarks
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: 34
target: default
arch: x86_64
emulator-boot-timeout: 900 # Increase from 600 to 900 seconds (15 minutes)
emulator-options: -no-snapshot-load -no-snapshot-save -no-window -gpu swiftshader_indirect
script: ./gradlew :benchmarks:connectedBenchmarkAndroidTest
- name: Parse Benchmark Results
if: always()
run: |
echo "### Macrobenchmark Results" >> $GITHUB_STEP_SUMMARY
python3 benchmarks/BenchmarkResultsParser.py | tee -a $GITHUB_STEP_SUMMARY
exit ${PIPESTATUS[0]}
- name: Upload benchmark JSON
if: always()
uses: actions/upload-artifact@v4
with:
name: benchmark-results
path: benchmarks/build/outputs/connected_android_test_additional_output/**/*-benchmarkData.json
if-no-files-found: warn