Build & test Linters & Formatters

Бот для получения оценок

Пока что тут информация об установке и шаблоне, но когда-нибудь будет полноценное руководство

Что сейчас происходит

  1. Используется библиотека tgbot-cpp
  2. Используется БД sqlite3 (о взаимодействии можно почитать тут)
  3. Используется CMake
  4. Используется Google Test (репозиторий, документация)
  5. Используется clang-format (google codestyle)
  6. Используется статический анализатор cpplint и cppcheck (в CI Github Actions)

Бот (на данной версии) умеет отвечать сообщением на комаду /start и искать в определенной табличке базы по ключу страны, выбранной пользователем

Зависимости, установка

  1. Нужно рекурсивно склонировать этот репозиторий - git clone --recursive https://github.com/diduk001/formulas_bot
  2. Нужно поставить зависимости-библиотеки (пишу под Ubuntu): sudo apt install libssl-dev libboost-system-dev libcurl4-openssl-dev libsqlite3-dev
  3. Нужно поставить CMake
  4. Нужно поставить библиотеку GTest, о том, как это сделать, написано в доке

Компиляция и сборка

  1. Поставить нужный токен в ./include/constants.h
  2. mkdir build
  3. cd build
  4. cmake ..
  5. make
  6. ./formulas_bot

Тестирование

Нужно проделать все то же самое, что и в компиляции и сборке, но в конце указать исполняемый файл по имени файла теста

Разработка

  • Все основное происходит в main.cpp, все основное масштабное - в сторонних файлах в include/
  • Тесты пишутся в tests/ . Хочется, чтобы они писались
  • Все взаимодействие происходит через форки и PRы, на каждый PR заводится Github workflow, который проверяет:
    • Сборку
    • clang-tidy
    • cpplint
    • cppcheck
    • Тесты
  • Без PR и ревью помержить нельзя.
  • Чтобы проверить локально, нужно запустить файл ./formatters.sh
    • Предварительно надо установить cpplint, cppcheck и clang-tidy

База chinook.db лежит здесь, а ее схема - тут