Мы выпускаем программное обеспечение на Linux на базе RPM. Мы получаем много пакетов от разных команд, некоторые из которых находятся за пределами нашего бизнес-подразделения, которые должны обновляться правильно (в будущем мы хотим проверить правильность зависимостей). Недавно нас укусила ошибка при обновлении пакета, доставленного не из нашего подразделения. Пришло время попытаться автоматизировать тестирование такого рода вещей.
То, что я имел в виду, предполагало, что установка прошла успешно (в любом случае это обычно обнаруживается во время функционального тестирования), а затем проверить, что обновление с помощью сценариев до и после обработки изменяет файлы таким же образом, как и установка. Если нет, то пометьте для проверки.
В частности, мы хотим проверить обновления, угловые случаи, такие как обновления ядра, установки chroot, когда работающее ядро может даже быть недоступно в chroot и т. Д.
У меня вопрос: существует ли уже такое программное обеспечение? Мне не очень повезло с поисками.
Этот автоматизированный процесс, конечно, также будет подкреплен инструкциями по упаковке, но поскольку некоторые из наших RPM поступают не из нашей организации, мы все равно хотели бы, чтобы этот запасной вариант дал нам гарантии в будущем.
Я думаю, вы задали довольно общий вопрос, поэтому здесь может быть множество возможных ответов. Один из вариантов, который я бы порекомендовал из личного опыта, - это Дженкинс.
Jenkins - хороший набор инструментов для непрерывной интеграции. https://wiki.jenkins-ci.org/display/JENKINS/Meet+Jenkins Это довольно гибкий инструмент, и вы можете получить хороший набор различных плагинов. Установка / настройка довольно проста. Вы можете установить на свой компьютер linux / windows / ... Это дает вам власть и контроль над вашими автоматизированными заданиями.
Вы можете использовать Jenkins для целого ряда различных задач, которые хотите автоматизировать. * регулярные сборки и тестовые прогоны (хороший выбор плагинов для отчетов об ошибках сборки / управления и сборки / тестового запуска) * создание регулярных резервных копий, выполнение регулярных или запускаемых тестов * проверка обновлений исходного кода и поддержание актуальности / чистоты рабочих областей * с помощью плагина ssh запускать автоматизированные задачи на внешних машинах
Раньше я использовал его для работы в рамках проекта и для индивидуальных задач разработчика.
Вы должны автоматизировать настройку теста, установку rpm, а затем тестировать как сценарий или набор сценариев. Jenkins позволит вам управлять заданиями с помощью веб-интерфейса. Статус работы и отчеты о работе / тестировании доступны для просмотра через веб-интерфейс. Ошибки или отчеты, отправленные по электронной почте, или что-то еще.
Дальнейшее чтение . . .
Непрерывная доставка: http://en.wikipedia.org/wiki/Continuous_deployment http://www.martinfowler.com/articles/continuousIntegration.html Раньше я использовал круиз-контроль и buildbot, но считаю, что они более ограничены, чем Jankins.
Эта запись в блоге кажется весьма актуальной для вашего вопроса: http://www.devops-blog.net/koji/installing-a-rpm-based-build-system Jenkins + ряд других инструментов