Мне нужны некоторые разъяснения относительно обязанностей скрипта сборки и сервера сборки.
Я прочитал несколько статей в сети о непрерывной интеграции и сборках. В том числе
- Клавиша F5 не является процессом сборки
- Сервер сборки: монитор сердца вашего проекта
- Ежедневные сборки - ваш друг
И я поговорил с моим консультантом о процессе сборки нашего программного обеспечения. Поскольку он очень опытный, я доверяю его заявлениям, но я остался в замешательстве.
Насколько я понимаю, исходя из моих исследований (и, пожалуйста, исправьте меня здесь, поскольку это то, о чем я спрашиваю), идеал должен быть следующим:
- каждый проект имеет свой скрипт сборки
- этот скрипт строит проект
- этот скрипт гарантирует, что зависимости построены ранее
Поскольку зависимости могут быть другим проектом, со своим собственным сценарием сборки нарастает древовидная иерархия. Может быть верхний скрипт сборки, который собирает все проекты и приложения.
Однако обязанности сервера сборки:
- проверить хранилище
- вызвать сборку
- триггерные тесты и другие инструменты QA
- сделать артефакт доступным
Это может быть вызвано вручную, ночью или при изменении хранилища.
Задачи моего советника, насколько я понимаю, состоят в том, что один сценарий сборки является негибким и не обслуживаемым (кроме того факта, что создание его для нашей унаследованной базы кода займет очень много времени). Также Build Server должен поддерживать зависимости, например, использовать старые зависимости при создании новых сбоев. И особенно потому, Ant
что это был конкретный предмет, он не способен создавать все виды различных технологий, которые используются в базе кода, и не способен поддерживать зависимости.
Можете ли вы уточнить цели и уточнить обязанности?
источник
Ответы:
Эти вещи ортогональны:
Сценарий сборки - это механизм, который при вызове в только что извлеченном дереве исходных кодов дает полную сборку требуемых целей и зависимостей. Это может быть просто «сделать все», если у вас есть make-файл, или подходящий вызов MSBuild, Ant, Maven или Scons. Если у вас сложная иерархия зависимостей или связанных проектов, ваш «сценарий сборки» может быть файлом верхнего уровня, который по очереди вызывает каждый из них, проверяя успех на ходу.
Сценарий сборки - это всего лишь один сценарий из многих возможных: извлечение, сборка, тестирование, пакетирование, но у вас может быть механизм «все в одном», управляемый параметрами командной строки - это зависит от вашей среды.
Сборки сервер , или , вернее , сервер непрерывной интеграции , является механизмом автоматизации отвечает за планирование / запуск, мониторинг и отчетность по кассе -> сборка -> тест -> упаковка -> этап -> развертывания трубопровод. Вы можете использовать cron / Task Scheduler, если у вас нет ничего более сложного в руках, но сейчас есть много отличных инструментов, таких как Jenkins, Cruise Control, TeamCity и т. Д.
Важно, чтобы вы могли вызывать сборку без использования CI-сервера, в случае, если он занят / отключен / недоступен / недоступен по другим причинам, поэтому логика для получения сборки / теста / любого другого должна быть вне Система CI, но может быть вызвана ею, параметризована по типу ветки / сборки / версии / архитектуры и т. Д.
источник