Быстрая настройка tinderbox для тестирования портов FreeBSD
http://habrahabr.ru/blogs/bsdelniki/121152/Предлагаемый текст адресован в первую очередь майнтейнерам портов FreeBSD и собственно коммитерам, но даже если вы пока не посылали ни одного PR категории ports, но собираетесь это сделать, или же просто не прочь узнать о методах QA применительно к коллекции портов, то думаю, вам тоже будет небезынтересно.
Собственно, речь идет о MarcusCom Tinderbox — наборе скриптов, написанных Маркусом Кларком сотоварищи на основе тех, что используются для сборки официальных пакетов FreeBSD.
Вкратце, работает это так: вы задаете набор базовых систем (base system в терминологии FreeBSD; не обязательно релиз, это может быть любая стабильная ветка или -CURRENT, или даже ваша собственная сборка), деревьев портов и билдов (комбинаций из первых двух). Затем в чистом chroot-окружении вы можете собрать любой порт как пакет, и убедиться, что ничего не пропустили: все зависимости учтены, все корректно собирается, ставится и удаляется, не оставляя ничего лишнего после себя в системе. Вся метаинформация хранится в базе данных (поддерживаются MySQL и PostgreSQL), есть развитые средства обновления портов и «субстрата» целевой системы, кэширование собранных пакетов и дистфайлов, поддержка ccache и даже web-фронтенд на PHP.
Собственно, установка, настройка и примеры использования довольно подробно описаны в документации, однако регулярно пользуются tinderbox лишь немногие.
Почему?
Дело тут, мне кажется, в том, что авторы далеко не в первую очередь думали о простых разработчиках, которым не требуется ничего сложнее, чем просто проверить свой порт на той или иной версии FreeBSD. Не надо собирать статистику по каждому порту (build-логи, типы ошибок, когда последний раз «все работало», etc.) и хранить ее. Редко кому действительно необходим веб-доступ и сервис tinderd.
...