-
Notifications
You must be signed in to change notification settings - Fork 104
145 lines (143 loc) · 5.27 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
137
138
139
140
141
142
143
144
145
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-22.04 ]
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: run MQTT server
run: |
sudo apt-get install mosquitto mosquitto-clients
echo "=> Subscribe on the background"
mosquitto_sub -t "installtest" -d -i BackgroundClient &
echo "=> Send test message"
mosquitto_pub -m "message from mosquitto_pub ForegroundClient" -t "installtest" -d -i ForegroundClient
echo "=> wait"
sleep 4
- 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/[email protected]
- name: Android Emulator test
uses: hannesa2/action-android/[email protected]
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:
CLASSIC_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 }}
./screenShotScript/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-22.04 ]
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/[email protected]
- 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