Все лабораторные работы должны быть оформлены в одном приватном репозитории на GitLab. Формат именования репозитория: cpp-nsk-YYYY-SURNAME (например: cpp-nsk-2022-Ivanov).
Сразу после создания репозитория на GitLab, требуется закрыть ветку master для прямых пушей (о том, как это сделать). Выставляете для этой ветки следующие настройки:
Branch: master(илиmain)Allowed to merge: Developers + MaintainersAllowed to push: No One
Также, следует добавить пользователей ivafanas, Emorh и v.stepanyuk в репозиторий как разработчиков (о том, как это сделать); Project Access установить в Developer)
Разработка каждой лабораторной работы ведётся в отдельной ветке, формат именования которой: task-lab[N]-[lab-name] (например: task-lab1-caesar-crypt). Лабораторная работа оценивается исходя из кода, содержащимся в мастере. Итоговый код попадает в мастер только после прохождения ревью. Информацию о работе с ревью вы можете найти в соответствующей главе.
Под каждую лабораторную работу в директории репозитория заводится отдельная директория. Формат именования: Lab[N] (например: Lab1)
Наличие исходного кода внешних зависимостей (таких, как дополнительных библиотек, например GoogleTest) в merge request’ах не допускается.
Инструкции по запуску приёмочных тестов можно найти в папке задания в docker/README.md. Для запуска интеграционных тестов понадобится установить docker.
Для счастливых обладателей ОС Linux можно пользоваться сокращённым способом запуска из cmake:
# Create build directory as usual (example for hasher hometask)
cmake -S hasher -B hasher.build -G Ninja
# Run integration tests
cmake --build hasher.build --target integration_testsРучной способ запуска интеграционных тестов:
-
Собрать контейнер с инструментами:
docker build -t cpp_shad_testing/cpp_shad_testing:1.0 -f Dockerfile . -
Запустить контейнер:
docker run -it --rm --name=cpp_shad_testing --mount type=bind,source="${PWD}/..",target=/src cpp_shad_testing/cpp_shad_testing:1.0 bash -
В контейнере запустить тесты:
cd /src/docker python3 run_tests.py
Для того, чтобы у проверяющих была возможность провести ревью вашего кода, вам потребуется создать т.н. Merge Request из вашей рабочей ветки (task-lab[N]-[lab-name]) в master (о том, как это сделать). Merge request назначайте на ivafanas.
После этого, проверяющие либо одобрят ваш Merge Request, либо оставят какие-либо комментарии к коду для исправления.
Задание считается засчитанным, когда исправлены комментарии от всех проверяющих и merge request смержен в master.
Обратите внимание на то, чтобы Merge Request был создан именно из вашей рабочей ветки (Source branch) именно в master (Target branch).