Сборка и тестирование YDB с использованием Ya Make

Ya Make - это система сборки и тестирования, исторически используемая для разработки YDB. Изначально разработанная для C++, теперь она поддерживает ряд языков программирования, включая Java, Go и Python.

Язык конфигурации сборки Ya Make является основным для YDB, с файлом ya.make в каждом каталоге, представляющем таргеты Ya Make.

Настройте среду разработки, как описано в статье Работа над изменениями - Настройка окружения для работы с Ya Make.

Выполнение ваших команд

В корневом каталоге репозитория YDB расположен скрипт ya для запуска команд Ya Make из командной строки. Его можно добавить в переменную окружения PATH, чтобы он запускался без указания полного пути. Для Linux/Bash и репозитория GitHub, склонированного в ~/ydbwork/ydb, можно использовать следующую команду:

echo "alias ya='~/ydbwork/ydb/ya'" >> ~/.bashrc
source ~/.bashrc

Запуск ya без параметров выводит справку:

$ ya
Yet another build tool.

Usage: ya [--precise] [--profile] [--error-file ERROR_FILE] [--keep-tmp] [--no-logs] [--no-report] [--no-tmp-dir] [--print-path] [--version] [-v] [--diag] [--help] <SUBCOMMAND> [OPTION]...

Options:
...

Available subcommands:
...

Подробная справка по любой подкоманде может быть получена её запуском с флагом --help, например:

$ ya make --help
Build and run tests
To see more help use -hh/-hhh

Usage:
  ya make [OPTION]... [TARGET]...

Examples:
  ya make -r               Build current directory in release mode
  ya make -t -j16 library  Build and test library with 16 threads
  ya make --checkout -j0   Checkout absent directories without build

Options:
...

Скрипт ya загружает при запуске необходимые артефакты, зависящие от платформы, и кэширует их локально. Периодически скрипт обновляется ссылками на новые версии артефактов.

Настройка IDE

При использовании IDE для разработки доступна команда ya ide, которая помогает создать проект с преднастроенными инструментами. Поддерживаются следующие IDE: goland, idea, pycharm, venv, vscode (multilanguage, clangd, go, py).

Перейдите в каталог в исходном коде, который должен быть корневым для вашего проекта. Запустите команду ya ide, указав имя IDE, и целевой каталог для записи конфигурации проекта IDE в параметре -P. Например, для работы с изменениями библиотеки YQL в vscode вы можете запустить следующую команду:

cd ~/ydbwork/ydb/библиотека/yql
ya ide vscode -P=~/ydbwork/vscode/yqllib

Теперь можно открыть ~/ydbwork/vscode/yqllib/ide.code-workspace из vscode.

Сборка таргета

В Ya Make есть 3 основных типа таргетов: программа, тест и библиотека. Чтобы собрать таргет, запустите ya make с именем каталога. Например, для сборки YDB CLI запустите:

cd ~/ydbwork/ydb
ya make ydb/apps/ydb

Вы также можете запустить ya make из каталога таргета без параметров:

cd ~/ydbwork/ydb/ydb/apps/ydb
ya make

Запуск тестов

Запуск команды ya test в каком-либо каталоге создаст все бинарные файлы тестов, расположенные внутри его подкаталогов, и запустит тесты.

Например, для запуска small тестов YDB Core запустите:

cd ~/ydbwork/ydb
ya test ydb/core

Для запуска medium и large тестов добавьте опции -tt и -ttt к вызову ya test соответственно.

Следующая