Как правильно запустить тесты для Gitlab CI
Есть сервер - собирается на гитлабе. На питоне написал юнит-тесты, которые эмулируют клиента и тестируют сервер после сборки. Использую протобуф. Но когда сборщик переходит на стадию тестов - он не видит протобуфа. Пробовал его устанавливать - ошибка
E: Unable to locate package libprotobuf-dev E: Unable to locate package protobuf-compile
Как на стадии тестов заставить работать протобуф?
build:
stage: build
before_script:
- apt-get -y install libprotobuf-dev protobuf-compiler
script:
- ./scripts/build_pb.sh
- mkdir build && cd build
- cmake ..
- cmake --build .
- ctest --extra-verbose
artifacts:
paths:
- build/bin/release/server
test:
stage: test
script:
- build/bin/release/server # запуск сервера
- src/py_tests/server_tests.py # запуск тестов
Ответы (1 шт):
Автор решения: gore
→ Ссылка
Как на стадии тестов заставить работать протобуф?
Решение: вынести before_script в темплейт при помощи якорей или джоб-темплейтов:
.protobuf:
before_script:
- apt-get -y install libprotobuf-dev protobuf-compiler
build:
extends: .protobuf
stage: build
script:
- ./scripts/build_pb.sh
- mkdir build && cd build
- cmake ..
- cmake --build .
- ctest --extra-verbose
artifacts:
paths:
- build/bin/release/server
test:
extends: .protobuf
stage: test
script:
- build/bin/release/server # запуск сервера
- src/py_tests/server_tests.py # запуск тестов
Подробная документация по якорям gitlab: https://docs.gitlab.com/ee/ci/yaml/#anchors