-
Notifications
You must be signed in to change notification settings - Fork 99
136 lines (134 loc) · 4.86 KB
/
pullrequest.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
name: Pull request
on:
push:
branches:
- master
pull_request:
env:
resourceRunID: ${{ github.run_id }}-${{ github.run_number }}
jobs:
Build:
name: Test
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest ]
api: [ 34 ]
abi: [ x86_64 ]
emulatorApi: [ 14 ]
tag: [ 'google_apis' ]
# include:
# - os: macOS-latest
# abi: x86_64
# api: 28
# emulatorApi: [ 9 ]
# tag: 'default'
steps:
- name: kvm support
run: |
egrep -c '(vmx|svm)' /proc/cpuinfo
id
sudo adduser $USER kvm
sudo chown -R $USER /dev/kvm
id
- name: prepare
run: |
sudo apt-get update && sudo apt-get install -y exiftool imagemagick xdg-utils libimage-exiftool-perl zsh jq xorg
# brew install exiftool imagemagick
- uses: actions/checkout@v4
with:
submodules: true
- name: set up JDK
uses: actions/setup-java@v4
with:
distribution: 'adopt'
java-version: 17
- uses: gradle/actions/wrapper-validation@v4
- name: Install Android SDK
uses: hannesa2/action-android/install-sdk@0.1.16.7
- name: Android Emulator test
uses: hannesa2/action-android/emulator-run-cmd@0.1.16.7
with:
cmd: ./gradlew cAT --continue
api: ${{ matrix.api }}
tag: ${{ matrix.tag }}
abi: ${{ matrix.abi }}
cmdOptions: -noaudio -no-boot-anim -no-window -metrics-collection
bootTimeout: 720
- uses: actions/upload-artifact@v4
if: ${{ always() }}
with:
name: MQ-Espresso-${{ matrix.api }}-${{ matrix.abi }}-report-${{ matrix.emulatorApi }}
path: |
./**/build/reports/androidTests/connected
./**/build/outputs/androidTest-results/connected
- name: Archive screenshots ${{ matrix.emulatorApi }}
uses: actions/upload-artifact@v4
if: ${{ always() }}
with:
name: MQ-Screenshots-${{ matrix.api }}-${{ matrix.abi }}-${{ matrix.emulatorApi }}
path: |
basicSample/build/outputs/connected_android_test_additional_output/debugAndroidTest/connected
basicSample/build/outputs/androidTest-results/connected
extendedSample/build/outputs/connected_android_test_additional_output/debugAndroidTest/connected
extendedSample/build/outputs/androidTest-results/connected
serviceLibrary/build/outputs/connected_android_test_additional_output/debugAndroidTest/connected
serviceLibrary/build/outputs/androidTest-results/connected
- name: Compare screenshots
if: ${{ always() }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
emulatorApi: ${{ matrix.emulatorApi }}
run: |
ls -ls extendedSample/build/outputs/connected_android_test_additional_output/debugAndroidTest/connected
cp extendedSample/build/outputs/connected_android_test_additional_output/debugAndroidTest/connected/emulator-5554\ -\ ${{ matrix.emulatorApi }}/* screenshotsToCompare${{ matrix.emulatorApi }}
export DISPLAY=:99
sudo Xvfb -ac :99 -screen 0 1280x1024x24 > /dev/null 2>&1 &
echo ${{ env.resourceRunID }}
./screenShotCompare.sh ${{ env.resourceRunID }}
- name: Archive screenshots diffs ${{ matrix.emulatorApi }}
if: ${{ always() }}
uses: actions/upload-artifact@v4
with:
name: MQ-Screenshots-diffs-${{ matrix.emulatorApi }}
path: |
screenshotDiffs
screenshotsToCompare${{ matrix.emulatorApi }}/view-*.png
- name: Show git status ${{ matrix.emulatorApi }}
if: ${{ always() }}
run: |
git add screenshotsToCompare${{ matrix.emulatorApi }}
git status
[ "$(git status -s -uno)" ] && exit 1 || exit 0
Check:
name: Check
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest ]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: set up JDK
uses: actions/setup-java@v4
with:
distribution: 'adopt'
java-version: 17
- name: Install Android SDK
uses: hannesa2/action-android/install-sdk@0.1.16.7
- name: Run tests
run: ./gradlew test
- name: Kotlin code checks
run: ./gradlew ktlintCheck
- name: Code checks
run: ./gradlew check
- name: Archive Lint report
uses: actions/upload-artifact@v4
if: ${{ always() }}
with:
name: MQTT-Lint-report
path: |
./**/build/reports/lint-results*.html
./**/build/reports/ktlint/ktlintMainSourceSetCheck/ktlintMainSourceSetCheck.txt