3528
Комментарий:
|
4487
|
Удаления помечены так. | Добавления помечены так. |
Строка 9: | Строка 9: |
Принципы: 1. Робот не засоряет репозиторий на git.alt * Константное число веток * `Число тегов=O(количество сборок)` 1. Робот не подписывает пакеты подписью майнтейнера |
|
Строка 10: | Строка 16: |
* ./ автоматическое | * {*} автоматическое |
Строка 23: | Строка 29: |
1. ./ Синхронизация | 1. {*} Синхронизация |
Строка 25: | Строка 31: |
1. {2} с devel-веткой <!> ( 1. ./ Проверка апстрима |
1. {2} с devel-веткой <!> 1. {*} Проверка апстрима |
Строка 33: | Строка 39: |
1. ./ Обновление исходников | 1. {*} Обновление исходников |
Строка 39: | Строка 45: |
1. ./ Сборка обновлённого пакета 1. Тестовая сборка <!> * «Домашняя» (см. [[#homebrew|Инфраструктура «домашней» сборки]]) * последовательность сборки * нстройка apt.conf * критерии успешности 1. Втягивание маркированных исходнков |
1. {*} Сборка обновлённого пакета 1. тестовая сборка сборочной версии <!> * «Домашняя» (см. [[#homebrew|Организация «домашней» сборки]]) * {i} посредством git.alt 1. получение журнала сборки 1. проверка качества сборки <!> 1. публикация результатов тестовой сборки для тестирования * {i} если сборки была на git.alt |
Строка 47: | Строка 54: |
* {i} маркировка тестированных | * {*} получение бинарных пакетов для тестирования * установка пакетов * тестирование * маркировка оттестированных пакетов |
Строка 49: | Строка 59: |
1. подготовка рабочей версии обновлённых исходников (например, merge из временной ветки) 1. отсылка рабочей версии в репозиторий 1. запуск сборочницы === Структура комплекта сценариев === |
|
Строка 51: | Строка 67: |
=== Инфраструктура «домашней» сборки === | === Организация «домашней» сборки === |
Строка 56: | Строка 72: |
=== Следствия === | == Следствия == |
Огромные человекоподобные роботы
Workflow
Общие понятия (на примере 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)
Принципы:
- Робот не засоряет репозиторий на git.alt
- Константное число веток
Число тегов=O(количество сборок)
- Робот не подписывает пакеты подписью майнтейнера
Действия:
автоматическое
требуется исследование
может закончится неуспешно (текст после описывает обработку неуспеха, по умолчанию -- останов + оповещение)
второстепенное
Общий workflow:
- Добавление пакета
- Создание нового репозитория
- настройка autobuild
- создание минимального хранилища "версии 0"
- стартовое обновление исходников
- Импорт существующего репозитория
автоматическая конвертация
- Типовые watchfile для sf, gh, gc, g.a... ({i} * типовые репозитории?)
- Создание нового репозитория
Синхронизация
- с целевым хранилищем
с devel-веткой
Проверка апстрима
выяснение апстримной версий
- несколько исходников
- VCS
- выяснение текущей версии
- несколько исходников
- сравнение версий (возможно, нестрогое)
Обновление исходников
- подготовка сборочной версии старых исходников (например, создание временной ветки)
получение исходников из апстрим
обновление старых исходников новыми
- модификация служебных файлов (*.spec, .gear/* ...)
- маркировка (например, commmit + tag)
Сборка обновлённого пакета
тестовая сборка сборочной версии
«Домашняя» (см. Организация «домашней» сборки)
посредством git.alt
- получение журнала сборки
проверка качества сборки
- публикация результатов тестовой сборки для тестирования
если сборки была на git.alt
- Тестирование
получение бинарных пакетов для тестирования
- установка пакетов
- тестирование
- маркировка оттестированных пакетов
- Отсылка в g.a и на сборку
- подготовка рабочей версии обновлённых исходников (например, merge из временной ветки)
- отсылка рабочей версии в репозиторий
- запуск сборочницы
Структура комплекта сценариев
Организация «домашней» сборки
- Запуск по cron .... TODO
- Доступ к бинарному репозиторию
- Подготовка apt.conf
- ...
Следствия
- Разделение майнтейнера на активного пользователя (тестера) и сборщика. Разумеется, лучше в одном лице, но...
- Внешнее автоматическое тестирование