1+ name : UI tests
2+ on : [pull_request]
3+
4+ jobs :
5+ AndroidUITests :
6+ needs : IOSUITests
7+ if : always()
8+ runs-on : ubuntu-latest
9+ name : AndroidUITests
10+ steps :
11+ - name : Checkout
12+ uses : actions/checkout@v4
13+ - name : Enable KVM
14+ run : |
15+ echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
16+ sudo udevadm control --reload-rules
17+ sudo udevadm trigger --name-match=kvm
18+ - name : set up JDK 17
19+ uses : actions/setup-java@v4
20+ with :
21+ distribution : zulu
22+ java-version : 17
23+ - name : Gradle cache
24+ uses : gradle/actions/setup-gradle@v3
25+ - name : AVD cache
26+ uses : actions/cache@v4
27+ id : avd-cache
28+ with :
29+ path : |
30+ ~/.android/avd/*
31+ ~/.android/adb*
32+ key : avd-34
33+ - name : create AVD and generate snapshot for caching
34+ if : steps.avd-cache.outputs.cache-hit != 'true'
35+ uses : reactivecircus/android-emulator-runner@v2
36+ with :
37+ api-level : 34
38+ target : google_apis
39+ force-avd-creation : true
40+ disk-size : 6000M
41+ heap-size : 3048M
42+ ram-size : 3048M
43+ emulator-options : -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
44+ disable-animations : false
45+ arch : x86_64
46+ script : echo "Generated AVD snapshot for caching."
47+ - name : Setup .NET
48+ uses : actions/setup-dotnet@v1
49+ with :
50+ dotnet-version : ' 8.0'
51+ - name : Setup dotnet-test-rerun
52+ run : |
53+ dotnet tool install --global dotnet-test-rerun
54+ - name : Install and run Appium Server
55+ run : |
56+ npm i --location=global appium
57+ appium driver install uiautomator2
58+ CurWorkDir=$(pwd)
59+ pushd "$CurWorkDir"
60+ mkdir logs
61+ cd logs
62+ echo "appium" > appiumLog.txt
63+ popd
64+ appium &>logs/appiumLog.txt &
65+ - name : Create log files for logcat
66+ run : |
67+ cd logs
68+ echo "logcat" > logcat.txt
69+ echo "logcat" > logcatPID.txt
70+ - name : Install and run AltTester Server
71+ run : |
72+ CurWorkDir=$(pwd)
73+ pushd "$CurWorkDir"
74+ cd logs
75+ echo "alttester" > altTesterLog.txt
76+ echo "alttester" > runAltTesterLog.txt
77+ popd
78+ wget https://alttester.com/app/uploads/AltTester/desktop/AltTesterDesktopLinuxBatchmode.zip
79+ unzip AltTesterDesktopLinuxBatchmode.zip
80+ cd AltTesterDesktopLinux
81+ chmod +x AltTesterDesktop.x86_64
82+ ./AltTesterDesktop.x86_64 -batchmode -nographics -port 13000 -license ${{ secrets.ALTTESTERLICENSEKEY }} -termsAndConditionsAccepted -logfile ~/work/unity-sdk/unity-sdk/logs/altTesterLog.txt &>~/work/unity-sdk/unity-sdk/logs/runAltTesterLog.txt &
83+ - name : Start emulator and run tests
84+ uses : reactivecircus/android-emulator-runner@v2
85+ with :
86+ api-level : 34
87+ target : google_apis
88+ force-avd-creation : false
89+ disk-size : 6000M
90+ heap-size : 3048M
91+ ram-size : 3048M
92+ emulator-options : -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
93+ disable-animations : true
94+ arch : x86_64
95+ script : |
96+ adb logcat > ~/work/unity-sdk/unity-sdk/logs/logcat.txt & echo $! > ~/work/unity-sdk/unity-sdk/logs/logcatPID.txt
97+ cd ~/work/unity-sdk/unity-sdk && chmod -R 777 UI-TESTS
98+ test-rerun ~/work/unity-sdk/unity-sdk/UI-TESTS -s ~/work/unity-sdk/unity-sdk/UI-TESTS/android.runsettings --filter Name=ClickAcceptAllButtonTest --rerunMaxAttempts 5
99+ test-rerun ~/work/unity-sdk/unity-sdk/UI-TESTS -s ~/work/unity-sdk/unity-sdk/UI-TESTS/android.runsettings --filter Name=ClickRejectAllButtonTest --rerunMaxAttempts 5
100+ test-rerun ~/work/unity-sdk/unity-sdk/UI-TESTS -s ~/work/unity-sdk/unity-sdk/UI-TESTS/android.runsettings --filter Name=OpenPmLayersTest --rerunMaxAttempts 5
101+ test-rerun ~/work/unity-sdk/unity-sdk/UI-TESTS -s ~/work/unity-sdk/unity-sdk/UI-TESTS/android.runsettings --filter Name=SaveAndExitGDPRTest --rerunMaxAttempts 5
102+ test-rerun ~/work/unity-sdk/unity-sdk/UI-TESTS -s ~/work/unity-sdk/unity-sdk/UI-TESTS/android.runsettings --filter Name=SaveAndExitCCPATest --rerunMaxAttempts 5
103+ # :test-rerun ~/work/unity-sdk/unity-sdk/UI-TESTS -s ~/work/unity-sdk/unity-sdk/UI-TESTS/android.runsettings --filter Name=SaveAndExitUSNATTest --rerunMaxAttempts 5
104+ test-rerun ~/work/unity-sdk/unity-sdk/UI-TESTS -s ~/work/unity-sdk/unity-sdk/UI-TESTS/android.runsettings --filter Name=ClearAllButtonTest --rerunMaxAttempts 5
105+ test-rerun ~/work/unity-sdk/unity-sdk/UI-TESTS -s ~/work/unity-sdk/unity-sdk/UI-TESTS/android.runsettings --filter Name=AuthIdTest --rerunMaxAttempts 5
106+ # :test-rerun ~/work/unity-sdk/unity-sdk/UI-TESTS -s ~/work/unity-sdk/unity-sdk/UI-TESTS/android.runsettings --filter Name=AcceptRejectAllUsnatInPMTest --rerunMaxAttempts 5
107+ test-rerun ~/work/unity-sdk/unity-sdk/UI-TESTS -s ~/work/unity-sdk/unity-sdk/UI-TESTS/android.runsettings --filter Name=ProgramaticRejectAllGDPRTest --rerunMaxAttempts 5
108+ test-rerun ~/work/unity-sdk/unity-sdk/UI-TESTS -s ~/work/unity-sdk/unity-sdk/UI-TESTS/android.runsettings --filter Name=ProgramaticRejectAllCCPATest --rerunMaxAttempts 5
109+ test-rerun ~/work/unity-sdk/unity-sdk/UI-TESTS -s ~/work/unity-sdk/unity-sdk/UI-TESTS/android.runsettings --filter Name=ProgramaticRejectAllUSNATTest --rerunMaxAttempts 5
110+ test-rerun ~/work/unity-sdk/unity-sdk/UI-TESTS -s ~/work/unity-sdk/unity-sdk/UI-TESTS/android.runsettings --filter Name=ProgramaticCustomConsentGDPRTest --rerunMaxAttempts 5
111+ test-rerun ~/work/unity-sdk/unity-sdk/UI-TESTS -s ~/work/unity-sdk/unity-sdk/UI-TESTS/android.runsettings --filter Name=MessageLanguageTest --rerunMaxAttempts 5
112+ lsof -P | cat ~/work/unity-sdk/unity-sdk/logs/logcatPID.txt | xargs kill
113+ - name : Move dotnet logs
114+ if : always()
115+ run : |
116+ cd ~/work/unity-sdk/unity-sdk/UI-TESTS
117+ find . -name '*.trx' -exec mv {} ~/work/unity-sdk/unity-sdk/logs \;
118+ - name : Archive logs
119+ if : always()
120+ uses : actions/upload-artifact@v4
121+ with :
122+ name : androidLogs
123+ path : logs/
124+ compression-level : 0
125+ IOSUITests :
126+ runs-on : macos-13
127+ name : IOSUITests
128+ steps :
129+ - name : Checkout
130+ uses : actions/checkout@v4
131+ with :
132+ lfs : ' true'
133+ - name : Checkout LFS objects
134+ run : git lfs pull
135+ - name : Setup XCode
136+ run : sudo xcode-select -s '/Applications/Xcode_14.1.app/Contents/Developer'
137+ - name : Boot simulator
138+ run : |
139+ xcrun simctl boot $(xcrun simctl list devices | grep -m 1 'iPhone 14' |grep -E -o -i '([0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12})')
140+ sleep 30
141+ open -a simulator
142+ sleep 60
143+ xcrun simctl list devices
144+ - name : Setup .NET
145+ uses : actions/setup-dotnet@v1
146+ with :
147+ dotnet-version : ' 8.0'
148+ - name : Setup dotnet-test-rerun
149+ run : |
150+ dotnet tool install --global dotnet-test-rerun
151+ - name : Install and run Appium Server
152+ run : |
153+ npm i --location=global appium
154+ appium driver install xcuitest
155+ CurWorkDir=$(pwd)
156+ pushd "$CurWorkDir"
157+ mkdir logs
158+ cd logs
159+ echo "appium" > appiumLog.txt
160+ popd
161+ appium &>logs/appiumLog.txt &
162+ - name : Install and run AltTester Server
163+ run : |
164+ CurWorkDir=$(pwd)
165+ pushd "$CurWorkDir"
166+ cd logs
167+ echo "alttester" > altTesterLog.txt
168+ echo "alttester" > runAltTesterLog.txt
169+ popd
170+ wget https://alttester.com/app/uploads/AltTester/desktop/AltTesterDesktopPackageMac__v2.1.2.zip
171+ unzip AltTesterDesktopPackageMac__v2.1.2.zip
172+ cd AltTesterDesktopPackageMac__v2.1.2
173+ hdiutil attach AltTesterDesktop__v2.1.2.dmg
174+ cp -R /Volumes/AltTesterDesktop/AltTesterDesktop.app ~
175+ cd ~ && AltTesterDesktop.app/Contents/MacOS/AltTesterDesktop -batchmode -nographics -port 13000 -license ${{ secrets.ALTTESTERLICENSEKEY }} -termsAndConditionsAccepted -logfile ~/work/unity-sdk/unity-sdk/logs/altTesterLog.txt &>~/work/unity-sdk/unity-sdk/logs/runAltTesterLog.txt &
176+ - name : Run tests
177+ run : |
178+ cd ~/work/unity-sdk/unity-sdk && chmod -R 777 UI-TESTS
179+ cd UI-TESTS
180+ test-rerun ~/work/unity-sdk/unity-sdk/UI-TESTS -s ~/work/unity-sdk/unity-sdk/UI-TESTS/ios.runsettings --filter Name=ClickAcceptAllButtonTest --rerunMaxAttempts 5
181+ test-rerun ~/work/unity-sdk/unity-sdk/UI-TESTS -s ~/work/unity-sdk/unity-sdk/UI-TESTS/ios.runsettings --filter Name=ClickRejectAllButtonTest --rerunMaxAttempts 5
182+ test-rerun ~/work/unity-sdk/unity-sdk/UI-TESTS -s ~/work/unity-sdk/unity-sdk/UI-TESTS/ios.runsettings --filter Name=OpenPmLayersTest --rerunMaxAttempts 5
183+ test-rerun ~/work/unity-sdk/unity-sdk/UI-TESTS -s ~/work/unity-sdk/unity-sdk/UI-TESTS/ios.runsettings --filter Name=SaveAndExitGDPRTest --rerunMaxAttempts 5
184+ test-rerun ~/work/unity-sdk/unity-sdk/UI-TESTS -s ~/work/unity-sdk/unity-sdk/UI-TESTS/ios.runsettings --filter Name=SaveAndExitCCPATest --rerunMaxAttempts 5
185+ # :test-rerun ~/work/unity-sdk/unity-sdk/UI-TESTS -s ~/work/unity-sdk/unity-sdk/UI-TESTS/ios.runsettings --filter Name=SaveAndExitUSNATTest --rerunMaxAttempts 5
186+ test-rerun ~/work/unity-sdk/unity-sdk/UI-TESTS -s ~/work/unity-sdk/unity-sdk/UI-TESTS/ios.runsettings --filter Name=ClearAllButtonTest --rerunMaxAttempts 5
187+ test-rerun ~/work/unity-sdk/unity-sdk/UI-TESTS -s ~/work/unity-sdk/unity-sdk/UI-TESTS/ios.runsettings --filter Name=AuthIdTest --rerunMaxAttempts 5
188+ # :test-rerun ~/work/unity-sdk/unity-sdk/UI-TESTS -s ~/work/unity-sdk/unity-sdk/UI-TESTS/ios.runsettings --filter Name=AcceptRejectAllUsnatInPMTest --rerunMaxAttempts 5
189+ test-rerun ~/work/unity-sdk/unity-sdk/UI-TESTS -s ~/work/unity-sdk/unity-sdk/UI-TESTS/ios.runsettings --filter Name=ProgramaticRejectAllGDPRTest --rerunMaxAttempts 5
190+ test-rerun ~/work/unity-sdk/unity-sdk/UI-TESTS -s ~/work/unity-sdk/unity-sdk/UI-TESTS/ios.runsettings --filter Name=ProgramaticRejectAllCCPATest --rerunMaxAttempts 5
191+ test-rerun ~/work/unity-sdk/unity-sdk/UI-TESTS -s ~/work/unity-sdk/unity-sdk/UI-TESTS/ios.runsettings --filter Name=ProgramaticRejectAllUSNATTest --rerunMaxAttempts 5
192+ test-rerun ~/work/unity-sdk/unity-sdk/UI-TESTS -s ~/work/unity-sdk/unity-sdk/UI-TESTS/ios.runsettings --filter Name=ProgramaticCustomConsentGDPRTest --rerunMaxAttempts 5
193+ test-rerun ~/work/unity-sdk/unity-sdk/UI-TESTS -s ~/work/unity-sdk/unity-sdk/UI-TESTS/ios.runsettings --filter Name=MessageLanguageTest --rerunMaxAttempts 5
194+ - name : Move dotnet logs
195+ if : always()
196+ run : |
197+ cd ~/work/unity-sdk/unity-sdk/UI-TESTS
198+ find . -name '*.trx' -exec mv {} ~/work/unity-sdk/unity-sdk/logs \;
199+ - name : Archive logs
200+ if : always()
201+ uses : actions/upload-artifact@v4
202+ with :
203+ name : iosLogs
204+ path : logs/
205+ compression-level : 0
0 commit comments