2015-04-18 3 views
0

Мое дело в том, что слишком сложная логика конфигурации проекта внутри определения рабочих мест Jenkins и со временем это становится сложнее и труднее иметь дело. Это также мешает вам легко выполнять задания сборки в других инструментах построения/CI.Как свести к минимуму конфигурацию конкретного проекта сервера?

Если бы эти проекты были основаны на Java, кто-то, вероятно, сказал бы мне использовать maven, поскольку я мог бы поместить большую часть вещей в файлы pom.xml и иметь их с проектом. Тем не менее, в моем случае речь идет о C/C++ или даже .NET-проектах, для которых все скрипты сборки обычно находятся в bash (cygwin является зависимостью от Windows).

Я знаю, что теоретически я мог бы закодировать части, которые теперь находятся в конфигурации работы jenkins в этих файлах bash, но это явно потребует значительных усилий, и было бы очень сложно настроить их, чтобы разрешить и отключить различные шаги на основе внешние условия.

Итак, я стараюсь достичь высокого уровня независимости в отношении системы сборки, поэтому, если захочу, я могу переключить ее в будущем.

Что вы посоветуете как решение для этого? Очевидно, мне нужно что-то, что можно использовать мультиплатформенность и не подтягиваться к конкретной системе сборки.

Имеет ли смысл использовать maven для этого, даже если эти проекты не являются Java? Лично я не большой поклонник файлов конфигурации XML, YAML, JSON и INI считаются более дружественными.

Какая дополнительная логика, существующая в конфигурации Дженкинса, мы говорим? Можно было бы развертывать, поскольку я хочу иметь возможность развертывать Nexus или подобные репозитории, выполнять тесты, охват кода и, возможно, публиковать результаты где-то.

Как сидение, глядя на конфигурационные файлы Трэвиса, заставляет меня задаться вопросом, почему Дженкинс не пошел на такой подход.

+1

Выберите любой инструмент для сборки. Не только maven - это инструмент Java. Попробуйте gradle, rake, make и т. Д. :) –

+0

Спасибо @DracoAter - мы уже используем 'make' в некоторых проектах, но, очевидно, нет таких вещей, как плагины развертывания для make. У меня был некоторый ограниченный (хороший) опыт работы с rake, но Ruby не так сильно любил здесь, что решение «Python», несомненно, было бы легче охватить, поскольку оно очень популярно внутри компании и уже упоминалось как зависимость (в отличие от Рубин) – sorin

ответ

1

Посмотрите на Groovy. Jenkins позволяет прямое код Groovy манипулировать почти всем. Сценарий Groovy можно использовать, чтобы заботиться обо всем, от конкретной конфигурации проекта, и его можно даже проверить вместе с исходным кодом. Затем в задании Jenkins у вас есть только один шаг сборки, чтобы вызвать скрипт Groovy.

Вышеуказанное предложение, однако, очень зависит от Jenkins.

Другая возможность - это сценарий Ant. Плагин AntExec позволяет запускать Ant-скрипт вместе с ant-contrib при необходимости, используя тот же процесс установки инструментов, что и остальные Jenkins. Поэтому вам не нужно беспокоиться о том, что Ant установлен на узле: Jenkins позаботится об этом по требованию.

Преимущества скрипта Ant - то, что он не привязан к концепциям Java, поскольку Maven - это кросс-платформа (Windows и Linux), и, как и предыдущий пример сценария Groovy, он может быть проверен вместе с остальной частью исходный код.

 Смежные вопросы

  • Нет связанных вопросов^_^