Дженкинс против Тревис-CI. Какой из них вы бы использовали для проекта с открытым исходным кодом? [закрыто]

270

Для моего проекта мне нужно выбрать между Jenkins и Travis-CI. Я использую Jenkins в течение многих лет, но я также читал хорошие отзывы о Travis-CI.

Какой из них вы бы использовали для проекта с открытым исходным кодом? Каковы основные преимущества или преимущества обоих?

Хуан Луис
источник

Ответы:

293

Travis-ci и Jenkins, в то время как оба инструмента для непрерывной интеграции сильно различаются.

Travis - это размещенный сервис (бесплатный для открытого исходного кода), в то время как вам нужно разместить, установить и настроить Jenkins.

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

У вас может быть похожая функция с Jenkins, если вы используете один из следующих плагинов:

  • Travis YML Plugin - предупреждение: не похоже на популярность, вероятно, не полная функциональность по сравнению с реальным Travis.
  • Jervis - модификация Jenkins для чтения и создания заданий из .jervis.ymlфайла, найденного в корне кода проекта. Если .jervis.ymlон не существует, .travis.ymlвместо этого он использует файл.

Существуют и другие размещенные сервисы, которые вы также можете рассмотреть для непрерывной интеграции (не исчерпывающий список):


Как выбрать?

Возможно, вы захотите остаться с Jenkins, потому что вы знакомы с ним или не хотите зависеть от третьей стороны в вашей системе непрерывной интеграции. В противном случае я бы отказался от Дженкинса и пошел бы с одним из бесплатных хост-сервисов CI, поскольку они избавили вас от многих проблем (размещение, установка, настройка, подготовка заданий).

В зависимости от того, где находится ваш репозиторий кода, я бы сделал следующие варианты:

  • внутренний → Дженкинс или Гитлаб-Си
  • Github.com → Трэвис-Си

Чтобы настроить Travis-CI в проекте GitHub, все, что вам нужно сделать, это:

  • добавьте файл .travis.yml в корень вашего проекта
  • создать аккаунт на travis-ci.com и активировать свой проект

Функции, которые вы получаете:

  • Трэвис будет запускать ваши тесты для каждого толчка, сделанного в вашем репо
  • Трэвис будет запускать ваши тесты по каждому запросу, сделанному участниками.
Thomasleveil
источник
25
По моему опыту, использование Jenkins поверх Travis также избавит вас от многих проблем ( .travis.yml!) У меня есть несколько проектов github, для которых я использую свой собственный Jenkins, и я ни о чем не жалею. Если у вас есть возможность запустить свой собственный Jenkins, я очень рекомендую этот вариант. Приятно иметь 100% контроль над вашей CI-средой.
Саймон Форсберг
21
Плагин Jenkins Pipeline (предназначенный для замены проектов в свободном стиле в большинстве ситуаций) позволяет размещать скрипт конвейерного Groovy в файле (обычно с именем «Jenkinsfile») в вашем проекте, предоставляя ему те же функции, которые упомянуты в Travis-CI выше, с этим дополнительным бонусом поддержки команды Jenkins.
KhainTCore
48

Я работал над Трэвисом и Дженкинсом: я перечислю некоторые из особенностей обоих:

Настройка CI для проекта

Трэвис выходит на первое место. Это очень легко настроить. Установка менее чем за минуту с GitHub.

  1. Вход в GitHub
  2. Создать веб-хук для Трэвиса ( редактировать:
  3. Вернитесь в Travis и войдите, используя свои учетные данные GitHub.
  4. Синхронизируйте репозиторий GitHub и включите Push-Pull-запросы.

Дженкинс:

  1. Создать среду (Мастер Дженкинс)
  2. Создать веб-хуки
  3. Настройте каждую работу (требуется время, чтобы сравнить с Трэвисом)

Перезапуск сборок

Travis: Любой, у кого есть доступ для записи на GitHub, может перезапустить сборку, нажав на `restart build '

Дженкинс: перезапустить сборки на основе фразы. Вы предоставляете текст фразы в описании PR / коммит, напримерreverify jenkins .

Контролирующая среда

Travis: Трэвис обеспечивает размещенную среду. Он устанавливает необходимое программное обеспечение для каждой сборки. Это трудоемкий процесс.

Дженкинс: Единовременная настройка. Устанавливает все необходимое программное обеспечение на узле / ведомом компьютере, а затем выполняет сборку / тестирование в предустановленной среде.

Журналы сборки:

Travis: Поддерживает журналы сборки для размещения в Amazon S3.

Jenkins: Простота установки с помощью плагина артефактов сборки.

rameshthoomu
источник
Подскажите, пожалуйста, что такое S3?
Пуджа
@Pooja Amazon S3
adrianN
30

Я бы предложил Трэвис для проекта с открытым исходным кодом. Это просто в настройке и использовании.

Простые шаги для настройки:

  1. Должен иметь учетную запись GITHUB и зарегистрироваться на веб-сайте Travis CI, используя свою учетную запись GITHUB.
  2. Добавьте .travis.ymlфайл в корень вашего проекта. Добавьте Travis как сервис на странице настроек вашего репозитория.

Теперь каждый раз, когда вы делаете коммит в свой репозиторий, Трэвис будет строить ваш проект. Вы можете выполнить простые шаги, чтобы начать работу с Travis CI.

appsntech
источник
7
Предостережение об использовании Travis CI для Open Source: он запускает свои сборки и тестирует на Linux или OSX, а не на Windows. Так что, если ваш проект, скажем, .NET или PowerShell, он должен быть записан в кросс-платформенной версии .NET (Mono или .NET Core) или PowerShell (PowerShell Core), чтобы вы могли использовать Travis CI , Более дружественный для Windows инструмент CI - это Appveyor .
Саймон Тьюси,