Spec-Zone.ru › MariaDB

О Buildbot

Обзор

Целью MariaDB Foundation Buildbot является обеспечение всестороннего тестирования MariaDB Server на всех поддерживаемых платформах и средах. В настоящее время мы выполняем 100 различных конфигураций для следующих платформ:

  • x64 и x86
  • aarch64
  • ppc64le
  • s390x

и операционных систем:

  • Debian 9, 10, 11 и Sid
  • Ubuntu 16.04, 18.04, 20.04 и 21.04
  • Fedora 33 и 34
  • CentOS 7 и 8
  • RHEL 7 и 8
  • SLES 12 и 15
  • OpenSUSE 15 и 42
  • Windows
  • AIX-7.2

Кроме того, мы проводим другие тесты экосистемы для:

  • PHP
  • DBdeployer
  • MySqlJS
  • PyMySQL

Пакеты, собранные buildbot, можно загрузить здесь.

Что такое Buildbot?

MariaDB Foundation использует Buildbot, фреймворк непрерывной интеграции и тестирования, для тестирования и создания пакетов MariaDB Server. Он размещен на https://buildbot.mariadb.org/ и гарантирует, что каждый push в репозиторий MariaDB Server в GitHub должным образом протестирован.

Кто использует Buildbot?

Каждый разработчик MariaDB должен использовать Buildbot, чтобы убедиться, что внесенные изменения должным образом протестированы на всех поддерживаемых платформах и средах. Для обеспечения этого Buildbot используется для защиты ветвей. Однако, даже несмотря на включенную защиту ветвей, только несколько выбранных билдеров являются её частью. Поэтому ответственность разработчика заключается в мониторинге всех билдеров и убеждении, что всё в порядке, прежде чем делать финальный push в главную ветвь MariaDB.

Ключевые слова Buildbot

  • Изменения/Репозиторий - Любое изменение в исходном коде (коммит)
  • Главный билдер - Основной процесс, выполняемый на выделенном компьютере. Он проверяет изменения в исходном коде и отвечает за планирование сборки
  • Сборка - Фактическая конфигурация, которая тестируется. Она состоит из последовательности шагов, которые определяют фактический тест (например, получение исходного кода, компиляция, запуск тестов и т. д.)
  • Работник Buildbot - Процесс, который ожидает команд от Главного билдера для выполнения сборки

Как работает Buildbot?

Buildbot overview

Что касается Главного билдера Buildbot, мы используем многомастерную конфигурацию. Это означает, что у нас несколько работающих процессов мастера. Таким образом, у нас есть выделенный мастер для пользовательского интерфейса и несколько других, которые занимаются поиском изменений и планированием сборок.

Каждый раз, когда происходит push в репозиторий MariaDB Server, это обнаруживается главным билдером Buildbot, который планирует все сборки. Каждая сборка определяет различную конфигурацию теста. В основном мы используем Docker Latent Workers, что означает, что для каждой сборки мастер запускает Docker контейнер на удалённой машине. Контейнер настроен на запуск процесса buildbot-worker при запуске. Этот процесс теперь может получать инструкции от мастера. Таким образом, используя latent workers, процесс buildbot-worker не постоянно работает на машине-рабочем узле. Вместо этого для каждой сборки запускается отдельный контейнер.

Ниже приведён подробный пошаговый обзор того, что происходит после push в репозиторий MariaDB Server:

  • Шаг 1: Обнаружение нового изменения в репозитории MariaDB Server
    • Триггер создания исходного tar-архива
  • Шаг 2: Создание tar-архива
    • Клонирование репозитория и создание исходного tar-архива, соответствующего последним изменениям
    • Триггер сборок bintar
  • Шаг 3: Сборки bintar
    • Получение предварительно созданного исходного tar-архива
    • Компиляция
    • Тестирование (mysql-test-run)
    • Сохранение bintar
    • Триггер сборок пакетов
    • Триггер сборок экосистемы
  • Шаг 4.1: Создание пакетов
    • Получение исходного кода
    • Создание пакетов
    • Сохранение пакетов
    • Триггер сборок установки
  • Шаг 4.2: Тестирование экосистемы
  • Шаг 5: Сборки установки
    • Получение пакетов
    • Проверка успешной установки
    • Триггер сборок обновления
  • Шаг 6: Сборки обновления
    • Проверка успешного обновления предыдущей версии MariaDB Server до текущей

Нижеследующая информация относится к старому Buildbot (http://buildbot.askmonty.org/), а не к новому Buildbot (https://buildbot.mariadb.org/). Информация устарела или иным образом некорректна.

Обзор

Текущее состояние деревьев MariaDB с точки зрения сбоев сборки или тестирования всегда доступно на странице настроек Buildbot.

  • Статус страницы водопада MariaDB-5.5
  • Статус страницы водопада MariaDB-10.0
  • Статус страницы водопада MariaDB-10.1

Настройка BuildBot опрашивает деревья Launchpad каждые 5 минут, чтобы обнаружить изменения. Всякий раз, когда в одном из наших деревьев обнаруживается новый push, новый код компилируется и проходит через тестовый набор.

Если все платформы зелёные после этого, значит всё хорошо. Если нет, это означает, что с push есть проблема, и кто-то должен разобраться с ней как можно быстрее. Если это был ваш push, то тем, кто должен его просмотреть, являетесь вы!

BuildBot - это универсальная программа с лицензией GPL, предоставляющая фреймворк для непрерывного тестирования интеграции. Дополнительную информацию о BuildBot можно найти на домашней странице проекта BuildBot.

Желание запустить сервер сборки

Многие наши хосты сборки управляются членами сообщества, и мы всегда ищем дополнительных добровольцев, чтобы помочь нам охватить дополнительные платформы или варианты сборки в BuildBot.

Если вы можете предоставить для этой цели дополнительную машину, ваша помощь будет очень оценена! Это хороший способ участвовать, не тратя много времени. Начните с написания письма на адрес 'developers (at) lists.mariadb.org' с предложением запустить сервер BuildBot.

Настройка сервера BuildBot

См. buildbot-setup.

Приостановка mysql-test-run.pl

Иногда вам нужно работать, когда ваш компьютер занят выполнением тестов для buildbot. Мы добавили новую функцию в скрипт mysql-test-run.pl, которая позволяет временно остановить его, чтобы вы могли использовать свой компьютер, а затем возобновить тесты, когда будете готовы.

Для этого определите переменную окружения "MTR_STOP_FILE". Всякий раз, когда существует файл, указанный этой переменной окружения, скрипт mysql-test-run.pl остановится, как только сможет (т. е. не остановится сразу). Когда файл удален, скрипт mysql-test-run.pl продолжит с того места, где остановился.

Если вы планируете использовать эту функцию, вы также должны установить переменную окружения "MTR_STOP_KEEP_ALIVE" со значением 120. Это заставит скрипт выводить сообщения в buildbot каждые 2 минуты, что предотвратит тайм-аут.

База данных с результатами тестов

Buildbot сохраняет результаты тестовых запусков в базе данных, для использования в улучшенных отчётах на веб-страницах без необходимости изменения кода Buildbot, и для анализа данных при исследовании сбоев тестов.

Схема базы данных документирована в схеме базы данных Buildbot. Схема, вероятно, будет развиваться по мере добавления нами дополнительных типов информации.

Пока данные не доступны снаружи. Но план состоит в том, чтобы настроить базу данных-сервер для репликации данных и предоставить доступ (например, удалённые учётные записи базы данных) членам сообщества с интересными идеями о том, как представить или обработать эти данные, или просто любопытствующим. Если кто-то заинтересован в этом или хочет предложить сервер для этой цели, пожалуйста, отправьте письмо на developers@lists.mariadb.org. Чем больше людей проявят интерес, тем быстрее это, вероятно, произойдёт!

Отчёты

Мы разрабатываем новые отчёты, основанные на результатах тестов в базе данных. Эти отчёты будут расположены здесь. Первый отчёт - Перекрёстная ссылка. Этот отчёт позволяет искать все сбои тестов.

Техническое обслуживание Buildbot

Вот информация о том, как настроена и поддерживается наша установка Buildbot:

  • Файл конфигурации включён в репозиторий Инструменты MariaDB.
  • Сборка и тестирование бинарных пакетов документированы на странице package-testing-with-buildbot-and-kvm.
  • Мы разработали небольшой инструмент runvm, который используется для выполнения некоторых сборок внутри виртуальной машины, в основном для тестирования сборок бинарных пакетов.
  • На странице Разработка BuildBot описано, как мы разработали некоторые улучшения для BuildBot, которые используем и внесли в upstream.

См. также

  • Страница Buildbot ToDo
Содержимое, воспроизведённое на этом сайте, является собственностью его соответствующих владельцев, и это содержимое не проверяется заранее MariaDB. Мнения, информация и мнения, выраженные в этом содержании, не обязательно отражают точку зрения MariaDB или любой другой стороны.

© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/about-buildbot/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API