Дженкинс не может запускать UI-тесты через конвейер / задание внутри ведомого устройства VirtualBox Catalina. Это же задание можно без проблем вызвать локально: Почему? - PullRequest
0 голосов
/ 14 июля 2020

Я отвечаю за конфигурацию некоторых Catalina / Jenkins ведомых машин для некоторой фермы ведомых устройств macos, которую мы создаем для нашей экосистемы CI. Мы используем mySpaghetti Catalina созданную / включенную машину VirtualBox под VirtualBox 6.1.XXX

Дело в том, что мы заблокированы в что я бы назвал странной ситуацией. Кратко подведем итоги:

1. - У нас есть должным образом утвержденное ведомое устройство (с точки зрения возможности подключения Дженкинса к мастеру и с соответствующими сертификатами / профилями для Xcode ). Мастер Jenkins может отлично видеть нашу машину Catalina VirtualBox, мы можем запускать задания без каких-либо проблем.

2. нас ведомое устройство не может запустить некоторые этапы тестирования пользовательского интерфейса нашего проекта iOS. Это оскорбительная командная строка внутри jenkins:

xcodebuild clean test -workspace MY_PROJECT.xcworkspace -scheme MY_PROJECT -configuration Debug -enableCodeCoverage YES -destination 'platform=iOS Simulator,name=iPhone 7,OS=12.2' -destination-timeout 60 COMPILER_INDEX_STORE_ENABLE=NO

И это ошибка, которую она дает:

09:43:39 + xcodebuild clean test -workspace MY_PROJECT.xcworkspace -scheme MY_PROJECT -configuration Debug -enableCodeCoverage YES -destination 'platform=iOS Simulator,name=iPhone 7,OS=12.2' -destination-timeout 60 COMPILER_INDEX_STORE_ENABLE=NO
09:53:31 2020-07-14 09:53:19.457 xcodebuild[3876:21694]  IDETestOperationsObserverDebug: Writing diagnostic log for test session to:
09:53:31 /Local/Users/Pidejen1/Library/Developer/Xcode/DerivedData/MY_PROJECT-dgdraofzellaiocnoqizknqaxber/Logs/Test/Run-MY_PROJECT-2020.07.14_09-43-48-+0200.xcresult/Staging/2_Test/Diagnostics/MY_PROJECTTests-A1BF093A-C866-4BA7-8384-22556BFBD82C/MY_PROJECTTests-8D44A5EC-BD43-4E9B-BFBA-BC56B244899C/Session-MY_PROJECTTests-2020-07-14_095319-GWbBvb.log
09:53:31 2020-07-14 09:53:19.458 xcodebuild[3876:13598] [MT] IDETestOperationsObserverDebug: (009385FE-B3FE-46A1-8194-31509E0E36CD) Beginning test session MY_PROJECTTests-009385FE-B3FE-46A1-8194-31509E0E36CD at 2020-07-14 09:53:19.458 with Xcode 11A1027 on target <DVTiPhoneSimulator: 0x7f94ea3a2b70> {
09:53:31         SimDevice: iPhone 7 (4572A5BB-5092-4D04-A8D7-FA00F08DA272, iOS 12.2, Shutdown)
09:53:31 } (12.2 (16E226))
09:55:32 2020-07-14 09:55:17.294 xcodebuild[3876:13598] [MT] IDETestOperationsObserverDebug: (009385FE-B3FE-46A1-8194-31509E0E36CD) Finished requesting crash reports. Continuing with testing.
09:55:32 2020-07-14 09:55:25.182 xcodebuild[3876:13598] [MT] DVTAssertions: Warning in /Library/Caches/com.apple.xbs/Sources/DVTiOSFrameworks/DVTiOSFrameworks-14802/IDEiOSSupportCore/DVTiPhoneSimulator.m:1890
09:55:32 Details:  [DVTiPhoneSimulator -primaryInstrumentsServer was called from the main thread
09:55:32 Object:   <DVTiPhoneSimulator: 0x7f94ea3a2b70>
09:55:32 Method:   -primaryInstrumentsServerWithError:
09:55:32 Thread:   <NSThread: 0x7f94e7c180e0>{number = 1, name = main}
09:55:32 Please file a bug at https://feedbackassistant.apple.com with this warning message and any useful information you can provide.
09:55:43 2020-07-14 09:55:42.991 xcodebuild[3876:13598] [MT] IDETestOperationsObserverDebug: (CFB5988A-3A74-4A68-B0B2-19C7923A3A82) Beginning test session MY_PROJECTUITests-CFB5988A-3A74-4A68-B0B2-19C7923A3A82 at 2020-07-14 09:55:42.991 with Xcode 11A1027 on target <DVTiPhoneSimulator: 0x7f94ea3a2b70> {
09:55:43         SimDevice: iPhone 7 (4572A5BB-5092-4D04-A8D7-FA00F08DA272, iOS 12.2, Booted)
09:55:43 } (12.2 (16E226))
09:55:43 2020-07-14 09:55:42.991 xcodebuild[3876:21696]  IDETestOperationsObserverDebug: Writing diagnostic log for test session to:
09:55:43 /Local/Users/Pidejen1/Library/Developer/Xcode/DerivedData/MY_PROJECT-dgdraofzellaiocnoqizknqaxber/Logs/Test/Run-MY_PROJECT-2020.07.14_09-43-48-+0200.xcresult/Staging/2_Test/Diagnostics/MY_PROJECTUITests-31879CF9-D776-4CB5-BD33-3A24EE290B84/MY_PROJECTUITests-600EE91A-E054-4B27-8E90-B3B7915BF15E/Session-MY_PROJECTUITests-2020-07-14_095542-PtVKU8.log
09:55:44 2020-07-14 09:55:43.335 xcodebuild[3876:13598] [MT] IDETestOperationsObserverDebug: (CFB5988A-3A74-4A68-B0B2-19C7923A3A82) Finished requesting crash reports. Continuing with testing.
09:55:45 2020-07-14 09:55:45.508 xcodebuild[3876:13598] [MT] DVTAssertions: Warning in /Library/Caches/com.apple.xbs/Sources/DVTiOSFrameworks/DVTiOSFrameworks-14802/IDEiOSSupportCore/DVTiPhoneSimulator.m:1890
09:55:45 Details:  [DVTiPhoneSimulator -primaryInstrumentsServer was called from the main thread
09:55:45 Object:   <DVTiPhoneSimulator: 0x7f94ea3a2b70>
09:55:45 Method:   -primaryInstrumentsServerWithError:
09:55:45 Thread:   <NSThread: 0x7f94e7c180e0>{number = 1, name = main}
09:55:45 Please file a bug at https://feedbackassistant.apple.com with this warning message and any useful information you can provide.
09:56:57 2020-07-14 09:56:55.774 xcodebuild[3876:13598] [MT] IDETestOperationsObserverDebug: (CFB5988A-3A74-4A68-B0B2-19C7923A3A82) Initialization failure for UI testing: Timed out waiting for AX loaded notification
09:57:08 2020-07-14 09:57:07.238 xcodebuild[3876:13598] [MT] IDETestOperationsObserverDebug: 227.989 elapsed -- Testing started completed.
09:57:08 2020-07-14 09:57:07.239 xcodebuild[3876:13598] [MT] IDETestOperationsObserverDebug: 0.000 sec, +0.000 sec -- start
09:57:08 2020-07-14 09:57:07.239 xcodebuild[3876:13598] [MT] IDETestOperationsObserverDebug: 227.989 sec, +227.989 sec -- end
09:57:21 Testing failed:
09:57:21     MY_PROJECTUITests:
09:57:21         MY_PROJECTUITests-Runner.app (6666) encountered an error (The test runner failed to initialize for UI testing. (Underlying error: Timed out waiting for AX loaded notification))
09:57:21 
09:57:21 ** TEST FAILED **
09:57:21 
[Pipeline] }
[Pipeline] // dir
[Pipeline] }
[Pipeline] // stage
[Pipeline] echo
09:57:21 
09:57:21 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
09:57:21 [ERROR] Stage Test Ended with an error => script returned exit code 65
09:57:21 
09:57:21 hudson.AbortException: script returned exit code 65
09:57:21     at org.jenkinsci.plugins.workflow.steps.durable_task.DurableTaskStep$Execution.check(DurableTaskStep.java:285)
09:57:21     at org.jenkinsci.plugins.workflow.steps.durable_task.DurableTaskStep$Execution.run(DurableTaskStep.java:234)
09:57:21     at jenkins.security.ImpersonatingScheduledExecutorService$1.run(ImpersonatingScheduledExecutorService.java:58)
09:57:21     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
09:57:21     at java.util.concurrent.FutureTask.run(FutureTask.java:266)
09:57:21     at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
09:57:21     at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
09:57:21     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
09:57:21     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
09:57:21     at java.lang.Thread.run(Thread.java:745)
09:57:21 
09:57:21 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Очевидно, симулятор, необходимый для запуска тестов пользовательского интерфейса, не загружается и возвращает какой-то тайм-аута для вызываемой командной строки Jenkins .

У нас установлено 2 симулятора на машине VirtualBox : iOS 12.2 и 12.0

3 .- Та же самая командная строка, которая выдает ошибку, упомянутую выше, при локальном запуске с той же ветвью кода git, используемой в вызванном задании Jenkins , и загруженная в некоторую локальную папку, запускает 41 модульный тест. + 2 теста пользовательского интерфейса в порядке.

Пользователь, которого мы используем для запуска CI на этой машине VirtualBox , не является администратором, но я (временно) изменил его на администратора и появляется та же ошибка CI. Я вернул его к обычному пользователю MacOS , как только я проверил, что проблема не решена.

Есть какие-нибудь подсказки о том, что еще искать?

ПРИМЕЧАНИЕ: Я Я с радостью предоставлю дополнительную информацию, как только кто-нибудь об этом попросит.

Спасибо

РЕДАКТИРОВАТЬ: Я нашел еще один вопрос StackOverflow, по-видимому, с той же ошибкой, которую я получаю (~ "simulator AX тайм-аут уведомления "), но я не могу понять, относится ли это к моей проблеме: Xcode 9 - ошибка Xcodebuild - тесты пользовательского интерфейса не выполняются, истекло время ожидания уведомления о загрузке AX Я уже пробовал некоторые из прокомментированных вещей по этому вопросу, но безуспешно.

EDIT2: Я также попытался «предварительно загрузить» симулятор ради «давайте сделаем что-нибудь заранее, до этапа тестирования пользовательского интерфейса» (как указано в этом замечательная статья: https://circleci.com/blog/circleci-hacks-validate-circleci-config-on-every-commit-with-a-git-hook/) но безрезультатно. Единственное отличие состоит в том, что симулятор теперь отображается в журналах как ЗАГРУЖЕННЫЙ, но ничего больше, так как тайм-аут AX для некоторых загруженных уведомлений все еще существует.

EDIT3: BTW, подчиненная ссылка Jenkins в настоящее время настроена как Глобальный агент вместо Global Daemon. Когда я открыл этот вопрос, он был настроен как Global Daemon, но после изменения подключения к Global Agent для дополнительной отладки ошибка тайм-аута все еще существует, поэтому я решил не изменять ее обратно.

...