Огромные человекоподобные роботы

Общие понятия (на примере git.alt):

Целевое хранилище
название ветки в /gears (sisyphus)
Пакет
git-репозиторий на git.alt
Схема репозитория

способ организации на git.alt (http://www.altlinux.org/%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_gear)

Имя пакета

название src.rpm ( => имени репозитория в /gears)

Допуск (к некоторому действию)
маркировка пакета для того, чтобы робот, выполняющий данное действие, выполнил его

Принципы:

  1. Робот не засоряет репозиторий на git.alt
    • Константное число веток
    • Число тегов=O(количество сборок)

  2. Робот не подписывает пакеты подписью майнтейнера

Описание Workflow

Старт

  1. подготовка репозитория
    • {2} создание нового

      1. связывание нового репозитория с git.alt
      2. настройка autobuild
      3. создание минимального хранилища "версии 0"
      4. стартовая синхронизация и обновление исходников
      5. оформление пакета
    • импорт существующего
      1. настройка autobuild
      2. проверка синхронизации
  2. допуск к автосборке и публикация

Типовые watchfile для sf, gh, gc, g.a...

Синхронизация

  1. Синхронизация
    1. с целевым хранилищем
    2. {2} с devel-веткой

  2. Проверка апстрима
    1. генерация uscan-файла на основании шаблона (нужно для sf, gc и т. п.: они часто меняют формат доступа)
    2. выяснение апстримной версий <!>

      • несколько исходников
      • VCS
    3. выяснение текущей версии
      • несколько исходников
    4. сравнение версий (возможно, нестрогое) и допуск к обновлению

Обновление

  1. подготовка сборочной версии старых исходников (например, создание временной ветки)
  2. получение исходников из апстрим <!>

  3. обновление старых исходников новыми <!>

  4. модификация служебных файлов (*.spec, .gear/* ...)
  5. допуск к сборке (например, commmit + tag)

Сборка

  1. тестовая сборка сборочной версии <!>

  2. получение журнала сборки
  3. проверка качества сборки <!>

  4. публикация результатов тестовой сборки для тестирования

См. ниже Организация «домашней» сборки

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

  1. получение бинарных пакетов для тестирования
  2. установка пакетов
  3. тестирование <!>

  4. маркировка оттестированных пакетов

Размещение в хранилище

  1. подготовка целевой версии обновлённых исходников (например, merge из временной ветки)
  2. публикация целевой версии
  3. запуск сборочницы целевого репозитория

Структура комплекта сценариев

TODO

Организация «домашней» сборки и тестирования

TODO: диаграмма состояний

Следствия

FrBrGeorge/HumanlikeRobots (last edited 2024-11-11 10:43:28 by FrBrGeorge)