Непрерывная интеграция - лучшие практики
Я думал о CI, и автоматическая сборка много в последнее время, и мне интересно узнать, есть ли какие-либо рекомендации по настройке и поддержанию непрерывной интеграции. Сохраняете ли вы все файлы, связанные с CI, с вашим источником проекта? Как вы обычно структурируете свои CI и файлы сборки? Любые советы приветствуются!
Ответы
Ответ 1
- Начните с создания одного шага. Если у вас этого нет, у вас не может быть разумного CI
- Если он не находится в контроле источника, он не существует
- Если настройка и поддержка вашего CI превышает усилия по настройке рабочей станции разработчика, вы слишком зависите от своей среды разработки или ваша структура проекта слишком сложна. Подумайте об этом как о возможности реорганизации.
- Вам не нужно ничего, чтобы сделать CI. Вам даже не нужно знать, для чего это нужно. Я писал о моем более раннем опыте здесь, когда я реализовал наивный CI, прежде чем я когда-либо слышал термин CI.
Ответ 2
Если вы еще этого не сделали, обязательно просмотрите книгу Continuous Integration из серии Martin Fowler, Дюваль/Матьяс/Гловер. Он охватывает все вопросы, которые вы задаете глубоко с помощью твердых примеров.
Ответ 3
Там также прагматическая серия "Прагматическая автоматизация проектов" .
Конечно, все файлы, необходимые для сборки, должны быть проверены. Как еще CI мог бы получить их?
Я использовал CI с Java, поэтому это означает Ant build.xml и либо Cruise Control, Team City, либо Hudson. Возможно, build.xml будет общим, если вы придерживаетесь согласованной структуры каталогов для своих проектов.
Ответ 4
Kohsuke Kawaguchi, основатель популярного инструмента Jenkins/Hudson CI, только что опубликовал технический документ, который может вам пригодиться.
7 способов оптимизации Дженкинса
Ответ 5
Если ваша сборка script начинает увеличиваться, вы можете разделить ее и включить соответствующие части. Это улучшает обслуживание и читаемость.
Мой другой совет будет отличаться от традиционного программирования - при создании сборки script используйте либеральные суммы комментариев.