Все лабораторные работы должны быть оформлены в одном приватном репозитории на GitLab. Формат именования репозитория: cpp-nsk-YYYY-SURNAME
(например: cpp-nsk-2022-Ivanov
).
Сразу после создания репозитория на GitLab, требуется закрыть ветку master для прямых пушей (о том, как это сделать). Выставляете для этой ветки следующие настройки:
Branch: master
(илиmain
)Allowed to merge: Developers + Maintainers
Allowed to push: No One
Также, следует добавить пользователей ivafanas
и Emorh
в репозиторий как разработчиков (о том, как это сделать); Project Access установить в Developer)
Разработка каждой лабораторной работы ведётся в отдельной ветке, формат именования которой: task-lab[N]-[lab-name]
(например: task-lab1-caesar-crypt
). Лабораторная работа оценивается исходя из кода, содержащимся в мастере. Итоговый код попадает в мастер только после прохождения ревью. Информацию о работе с ревью вы можете найти в соответствующей главе.
Под каждую лабораторную работу в директории репозитория заводится отдельная директория. Формат именования: Lab[N]
(например: Lab1
)
Наличие исходного кода внешних зависимостей (таких, как дополнительных библиотек, например GoogleTest
) в merge request’ах не допускается.
Инструкции по запуску приёмочных тестов можно найти в папке задания в docker/README.md. В общем они сводятся к следующему:
-
Установить docker, если ещё не.
-
Собрать контейнер с инструментами:
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).