У меня есть большой репозиторий проектов Matlab в GitLab, и я настраиваю некоторое автоматическое тестирование в GitLab CI.Увы, когда я нажимаю, хотя он запускает новый конвейер и запускает мой пакетный файл, он, похоже, не запускает экземпляр Matlab, поэтому процесс застревает на неопределенное время.(бегун на машине с Windows)
Во-первых, .gitlab-ci.yml:
stages:
- test
before_script:
- cd
- cd testing
- cd
main_test:
stage: test
script: run_unit_tests.bat
Красиво и просто.Затем, пакетный файл:
@echo off
for /F "tokens=2" %%i in ('date /t') do set mydate=%%i
set mytime=%time%
echo ..
echo Current time is %mydate%:%mytime%
echo ..
echo %ERRORLEVEL%
matlab -nosplash -nodesktop -minimize -wait -logfile "automatic_tests_log.txt" -r "run('run_main_unit_testing.m')"
echo ..
type "automatic_tests_log.txt"
echo ..
echo %ERRORLEVEL%
(проверки% ERRORLEVEL% помогают отследить некоторые проблемы при получении ненулевого кода ошибки. Но это уже решено.)
ИРезультаты: трубопровод запускается и запускается нормально.После того, как он сообщит о трех командах cd, мы получим:
$ run_unit_tests.bat
..
Current time is 10/12/2018:20:03:39.18
..
0
. . .
, причем последними элипсами является анимация GitLab «в процессе».По сути, он никогда не заводит Matlab;он застревает в ожидании команды matlab в моем пакетном скрипте.(Я ждал до 30 минут. Этот процесс медленный, но не такой медленный.) Когда я запускаю тот же пакетный скрипт прямо из командной строки, он работает нормально и занимает около 1-2 минут.
Есть идеи, где я иду не так?