Gitlab CI и Matlab - PullRequest
       24

Gitlab CI и Matlab

0 голосов
/ 28 июня 2019

Я пытаюсь настроить некоторые тесты для довольно большого кода Matlab, который у меня есть на gitlab.

Я создал файл .gitlab-ci.yml, который запускает скрипт bash, который затем вызывает matlab.

#.gitlab-ci.yml

before_script:

Test:
  script:
    - chmod +x RunTests.sh
    - ./RunTests.sh

Сценарий bash выглядит следующим образом:

# RunTests.sh
cd IntegratedTests

LOGFILE=log.txt

matlab -nodesktop -nosplash -minimize -wait -logfile "$LOGFILE" -r 'RunTests';
CODE=$?

cat "$LOGFILE"

exit $CODE

Однако gitlab пытается использовать общий gitlab-runner, который использует образ докера из ruby.Тесты заканчиваются неудачей, потому что он не может найти matlab на образе docker.

Running with gitlab-runner 12.0.0-rc1 (58d8360f)
  on docker-auto-scale ed2dce3a
Using Docker executor with image ruby:2.5 ...
Pulling docker image ruby:2.5 ...
Using docker image sha256:80f53b90f8657c63c8d35d5eff399e6410baf19013c3b4c1c4158b2029060147 for ruby:2.5 ...
Running on runner-ed2dce3a-project-11747478-concurrent-0 via runner-ed2dce3a-srm-1561674473-a1c90512...
Fetching changes...
Initialized empty Git repository in /builds/darsim2simulator/darsim2/.git/
Created fresh repository.
From https://gitlab.com/darsim2simulator/darsim2
 * [new branch]      3-fixed-time-step-size -> origin/3-fixed-time-step-size
 * [new branch]      4-single-temperature-formulation-for-geothermal -> origin/4-single-temperature-formulation-for-geothermal
 * [new branch]      FIMLTS                 -> origin/FIMLTS
 * [new branch]      master                 -> origin/master
 * [new branch]      patch-1                -> origin/patch-1
 * [new branch]      patch-2                -> origin/patch-2
 * [new branch]      patch-3                -> origin/patch-3
Checking out ff3f0a4f as master...

Skipping Git submodules setup
$ chmod +x RunTests.sh
$ ./RunTests.sh
./RunTests.sh: line 6: matlab: command not found
cat: log.txt: No such file or directory
ERROR: Job failed: exit code 1

Я предполагаю, что проблема в том, что matlab не установлен на образе docker

Этов первый раз я использую Gilab CI, поэтому, возможно, я не понял правильно, как его использовать, но каковы мои альтернативы?Как я могу настроить бегуна, у которого есть Matlab?

1 Ответ

0 голосов
/ 28 июня 2019

Для конкретных участников в нашем проекте я задаю теги для работы в .gitlab-ci.yml

Что-то вроде:

Test:
  script:
    - chmod +x RunTests.sh
    - ./RunTests.sh
  tags:
    - runners-tag

Дополнительная информация в

https://docs.gitlab.com/ee/ci/yaml/#tags

...