Постійна інтеграція Ruby on Rails? [зачинено]


149

Я шукав рішення для безперервної інтеграції для Ruby on Rails, але не був надто задоволений результатами. Я прийшов із магазину .NET, який використовував CruiseControl.NET і був дуже зіпсований своєю простотою використання та багатим статусом / звітністю.

В ідеалі я шукаю:

  • Очевидна інтеграція Git / SVN та Test :: Unit

  • Інтеграція з Rake та / або Capistrano

  • Веб-інтерфейс, що показує стан збірки

  • Повідомлення електронною поштою про помилку складання.

  • Повідомлення на робочому столі (можливо, через Growl)

  • REST API для складання статусів

  • Рамка для плагінів для запуску інших інструментів аналізу коду та звітування про результати в інтерфейсі


11
Отже, який ваш вибір зараз, через три роки?
Андрій

3
Чи можу я запропонувати circleci.com ?
Пол Біґгар

Відповіді:


83

Я просто переглянув варіанти тут і подумав, що згорну їх наприкінці 2011 року.

Цілісність

Після майже смертного досвіду, який залишив веб - сайт, який ще залишається пов’язаним із застарілою інформацією, та демонстрував сайт, демонструючи цей проект, знову з’явилася іскра життя. Але документація не рухалася, і багато та багато кроків у підручнику просто пробиті ; Мені довелося змінити посилання на дорогоцінні камені, побудувати деякі речі поза групою, і тоді я все одно не зміг його працювати .

Круїз-контроль.rb

Мертвий простий : ви просто завантажите його, запустіть командний рядок, щоб додати свій проект (для цього немає інтерфейсу ) та запустіть додаток Rails. Але також немає інтерфейсу користувача для редагування вашого проекту, і немає реальної інтеграції зі збірними артефактами, окрім відображення посилань на них: ви не отримуєте графіків запуску тестів, жодних рядків тренду тощо. Також мені довелося коригувати routes.rbфайл, щоб отримати код, що посилається, працює ( resources :projectsрядок повинен рухатися нижче всіх інших не за замовчуванням маршрутів).

TeamCity

Це виглядає приголомшливо , але шкала заробітної плати здається невдалою. 3 агенти безкоштовно, і тоді, коли ви залежні, вам потрібно виділити сотні доларів. Персональні будівлі виглядають чудово, але не мають бюджету .

Дженкінс (родина Хадсон )

Це непохитний Java, і він завантажений тисячею варіантів , так що інтерфейс заплутаний, і це завдання скласти свої проекти . Але як тільки ви його налаштуєте, ви отримаєте цілу масу плагінів, які можна витягнути з більшості місць, запустити більшість всього і повідомити про все. Установник OS X вказує Дженкінсу на, /Users/Shared/Jenkins/Homeале не вдається створити цей каталог або chownйого daemon(який використовується за замовчуванням, і вам слід змінити його на нового jenkinsкористувача, щоб ви могли налаштувати інтеграцію GitHub).

Інші

Я насправді цього не пробував, але думав, що згадаю чому:

  • CI Joe хоче володіти репортажем GitHub більше, ніж я хочу, а його творці навіть не користуються ним; вони на Дженкінсі.
  • Цербер здається акуратним невеликим, але не має інтерфейсу користувача і не публікує автоматично збірки артефактів там, де інші можуть їх бачити.
  • BigTuna здається CruiseControl.rb клон без (вже) мінімальної підтримки спільноти.
  • Бамбук виглядає дуже акуратно, якщо ви використовуєте JIRA та BitBucket, але ми не використовуємо жодного. Це розгортається, але у нас вже є ті, що створені в Капістрано.

Вибір

Ми поїхали з Дженкінсом , але мені дуже хочеться, щоб одне з більш легких ваг розробило.


8
А як щодо травіса?
Вануан

3
Я працюю над проектом із закритим кодом, тому, якщо я неправильно розумію їхню (погано сформульовану) документацію, Travis насправді не є для нас можливим варіантом (я ні в якому разі не надаю їм можливість записувати доступ до нашого проекту GitHub). Якби я писав якісь дорогоцінні камені, я би стрибнув на Travis за мить, але не для реальних сайтів Rails.
TALlama

2
Тільки для запису, Travis CI незабаром випустить PRO (платну та приватну) версію, яка вже є в бета-версії. Це трохи дорожче для невеликих проектів у $ 129 та $ 249 на місяць, але варто подивитися: travis-ci.com
Джошуа Пінтер

41

Як щодо CruiseControl.rb ?

Та сама натовп, яка робила CruiseControl(думки) і написана в Ruby. Дуже простий у використанні Rakeдля інтеграції інших ваших інструментів, і ви можете використовувати дорогоцінний камінь з рубіновим бурчанням для своїх сповіщень.


У мене виникли проблеми з тим, щоб це було запущено на Windows ... не працювало так, як рекламувались у відео на сайті "це не може бути так просто".
Гішу

Мене б не похитувало брендинг продуманих робіт - судіть про це по суті.
Дафідд Різ

цей проект лише нещодавно підтримується і не випустив нової версії з 2009 року ... але він працює ..
Скотт Шультесс

3
круїз-контроль дуже примітивний і дуже-дуже застарілий.
брагбой

1
Враховуючи різні події, пов’язані з безпекою, до початку лютого (2013 р.), Залишати CruiseControl.rb у конфігурації за замовчуванням (версії Gem тощо) є непристойним. Мені вдалося змусити його працювати під Rails 3.0.20, але 3.2.11+, мабуть, займе значно більше роботи. На даний момент я дуже відкритий до альтернатив, зі списком вимог, дуже подібним до Джима Фіорато.
Джефф Дікі

27

Ви також можете розглянути Гудсона . Він призначений для використання з проектами Java, хоча є великий вибір плагінів, включаючи підтримку Ruby і Rake. Він має дуже корисний веб-інтерфейс і підтримує сповіщення електронною поштою, а також багато інших (наприклад, щебетання або гігантські лампи ведмедя).

Спільнота також дуже активна, і було кілька статей про підключення Хадсона до Selenium, які можуть бути корисні для тестування програм Rails на стороні браузера.

Ще один погляд на Team City, який є безкоштовним для невеликих проектів та команд (включаючи комерційні). Мені дуже подобається Team City і я використовував його раніше для інших проектів, але в даний час ми використовуємо Mercurial для контролю джерел, і підтримка Team City була трохи надто бета-версія, коли ми розглядали це.

Я перейшов з CruiseControl.net на Team City і був абсолютно шокований покращенням. Я частково ставлюсь до Хадсона, хоча через його подібний набір функцій та дуже активну спільноту.


2
+1 для ТС. Руками вниз найкращий ІС, який я коли-небудь бачив
Метт Бріггс

4
Попереджуйте, що для Хадсона є деякі політичні речі через, о, ми це назвемо творчими відмінностями в Oracle. Основна частина розробників рухається за допомогою вилки, яка буде називатися Jenkins; Oracle має персонал і надалі підтримуватиме та розвиватиме Хадсон.
дондо

4
Гарний точковий дондо. Для тих, хто зацікавлений у відстеженні подальшого розвитку Хадсона, ви можете перевірити Дженкінса на сайті jenkins-ci.org
Джуліан

А ось порівняння діяльності з розвитку Дженкінса проти Хадсона: ohloh.net/p/compare?project_0=Jenkins&project_1=Hudson
Вануан

13

Circle - розширений сервіс CI для Rails (та інших веб-додатків). У вашому списку він підтримує наступне:

  • Git and Test :: Інтеграція блоків ( також інтеграції RSpec, огірок, жасмин, Konacha та підтримує довільні додаткові тестові команди )
  • Інтеграція з Rake та / або Capistrano ( використовує Rake для запуску команд і налаштування БД, підтримку безперервного розгортання за допомогою Capistrano або Heroku, або що-небудь дійсно )
  • Веб-інтерфейс, що показує стан збірки
  • Повідомлення електронною поштою про помилку складання.
  • Повідомлення на робочому столі ( через CCMenu / CCTray )
  • REST API для складання статусів
  • Рамка для плагінів для запуску інших інструментів аналізу коду та звітування про результати в інтерфейсі ( ми можемо виконувати довільні команди та підтримку, включаючи їх статус у складі збірки )

Ми з Джоелем провели деякий час, балакаючи про це на подкасті Stackoverflow - перевірити !


(редагувати) Відмова: Пол Біггар заснував Circle, як він заявляє у своєму профілі Stackoverflow


8

Semaphore - це новий розміщений додаток CI для додатків Ruby і Rails. Він інтегрується з GitHub, не потребує налаштувань і має простий інтерфейс користувача.


Ми використовуємо Semaphore як частину набору CI, і це працює чудово. Ви можете побачити, як вона інтегрована з іншим програмним забезпеченням, таким як Jasmine та HipChat, в одному з наших публікацій в блозі . Оператор також згадав про використання Capistrano в якості інструменту розгортання. Ми використовували його в минулому, але це було занадто повільно для нас, тому ми перейшли на Міну .
denis.arunovic

8

Оновлено лютий-2015

Codeship

На Drone.io було недостатньо розробок, тому я перейшов на Codeship і мені це дуже подобається. Він активно розробляється та вдосконалюється, має чудовий дизайн та дуже швидко. Плюс, для нижнього рівня він фактично безкоштовний (до 100 версій на місяць), тому він виявився дешевшим, ніж Drone.io.

Оригінальний відповідь

Drone.io

Я просто налаштовую наш основний додаток Ruby on Rails з http://drone.io/ . Був шматок пирога, і він отримав чудовий інтерфейс. Я б сказав, що варто перевірити, чи шукаєте ви простого рішення .


7

Перевірте Tddium . Tddium підтримує постійну інтеграцію, розгортання та інтерактивне тестування додатків Ruby. Він забезпечує кероване середовище з підтримкою Selenium, Headless Webkit та Solr. Тут розміщені живі екземпляри Postgres, MySQL, Mongo та Redis. І це автоматично паралелізує великі набори тестів.


5
Джей, ви можете розкрити свою асоціацію з лабораторіями тдідію та солано. Відповідно до FAQ : "Ви повинні розкрити свою приналежність у своїх відповідях"
tgf

7

Тревіс CI став популярним у рубіновому світі: http://travis-ci.org/


Travis CI хороший для проектів з відкритим кодом, але не дуже для закритих джерел. Дженкінс може охопити обидва випадки :-)
Габор Гарамі

1
Але хіба це відкрите джерело? github.com/travis-ci/travis-ci Ви не можете просто встановити приватний екземпляр Travis, як це робиться з джинкінами?
Вануан

Ви, напевно, могли, але в Readme вони рекомендують проти цього і зазначають, що це ще не дуже підходить для приватного хостингу.
Андрій

Зараз це добре для закритих проектів
aehlke


6

Як і ряд людей, я був величезним шанувальником cruisecontrol.rb, але останнім часом перейшов на свої проекти на Integrity .

Легкий і простий в налаштуванні (схожий на cc.rb), але з приємнішим інтерфейсом.


5
Я просто намагався налаштувати цілісність, і це безлад.
Лоуренс

5

BigTuna - написана на Ruby, використовує Rails і використовує себе як свій ІС.


3
Зауважте, що посилання appelier.com для BigTuna - це мертве посилання на прострочений домен. Зараз проект можна знайти на Github .
Джефф Дікі

5

Ви можете дати Codeship віджиматися і подивитися, чи працює він для вас (я один із засновників)

Безперервна інтеграція та розгортання на основі хмар (за допомогою спеціальної підтримки Heroku)

Перші чотири ваші позиції вже реалізовані та працюють у багатьох компаніях

  • Очевидна інтеграція Git / SVN та Test :: Unit
  • Інтеграція з Rake та / або Capistrano
  • Веб-інтерфейс, що показує стан збірки
  • Повідомлення електронною поштою про помилку складання.

Ми також працюємо над цими особливостями:

  • Повідомлення на робочому столі (можливо, через Growl)
  • REST API для складання статусів
  • Рамка для плагінів для запуску інших інструментів аналізу коду та звітування про результати в інтерфейсі



3

Зроби це сам. Напишіть сценарій bash для запуску тестів, а потім, якщо тести пройдуть, запустіть процедуру розгортання. Потрібні сповіщення? Зробіть собі електронний лист про успіх / невдачу. Потрібен планувальник? Cronjob. Це $ 0 / міс., І ви матимете поняття, що ви робите. Я не бачу, як плата комусь 40 доларів на місяць допоможе мені зробити це будь-яким чином більш ефективно.

Розглянемо для прикладу: моє розгортання закінчується невдачею через неправильно налаштований конвеєр активів (активи не вдаються до попередньої компіляції). Це не буде сприйматися одиничними, функціональними, інтеграційними, регресійними чи будь-якими іншими тестами. Ця помилка не буде сприйнята CI. Кількість часу, який я витратив на написання баш-скрипту, швидше за все, буде меншим за кількість часу, який я витратив би на створення середовища CI, і я заощаджую 40 доларів на місяць.

Juuuuuust кидаючи мої дві копійки на дискусію; )


1

Запуск Run Code може бути тим, що вам потрібно.

Редагувати: посилання видалено, оскільки воно більше не посилається на колишній сайт Run Code Run.


1
Зараз ось-ось буде закрито. :(
Ендрю Грімм

1

А потім, є ЧІ Джо :

Це як старий іржавий пікап: він може бути смердючим і грубим, але це робить роботу.

Ми використовуємо його щодня.


1

Мені подобається тільки CI joe, у мене були проблеми з усіма рештою, CI Joe - це абсолютний мінімум, щоб виконати роботу, супер спритний і надійний. Гудзонове джерело жахливе, і інтерфейс не подобається мені.


0

Щойно я опублікував дуже простий додаток для постійної інтеграції для RubyOnRails + SVN / GIT. Можливо, вам варто спробувати:

http://github.com/felipegiotto/Inotegration/tree/master

Я взяв кілька ідей інструментів вимірювання та тестування і, спробувавши деякі інструменти CI і нікому не подобаючись, я вирішив створити свій власний, не потребуючи створення великих XML-файлів чи будь-якої іншої конфігурації. Так само, як було зроблено Рейки.

Якщо вам подобається, надішліть мені відгуки ..

З найкращими побажаннями,

Феліпе Джотто.


0

Запуск CI після кожного вчинення здається досить дорогим, якщо ви підписуєтесь на філософію "виконувати часто". Як щодо запуску простої роботи через кожні кілька годин та надсилання результатів електронною поштою до списку розсилки розробників?


А як же просто налаштувати ваш сервер CI, щоб запитувати про зміни лише раз на годину? Більшість програм CI підтримують цей параметр.
Джерхісміт

2
З git ви можете вчиняти часто, але натискати рідко.
Вануан

0

Я щойно налаштував для нього Хадсон / Дженкінс. Gem ci_reporter може допомогти форматувати вихід JUnit, що очікується від Хадсона, а Хадсон має плагін Rails, тому я можу побачити покриття rcov, тестові звіти, статистику рейок та навіть більше.


Не могли б ви порівняти налаштування з іншими альтернативами?
Андрій

Оскільки я використовую Rails 2.3.x для своїх виробничих проектів, наразі це не так, оскільки для іншої альтернативи потрібні Rails 3.x. Однак, коли зможу, я перевірю це і опублікую свій досвід.
Габор Гарамі

Я спробував Jenkins з Rails 3.x теж, і це працює дуже добре. Я також спробував деякі інші рішення (наприклад, IntegrityApp), але оскільки я використовую Jenkins для тестування інших проектів, це стало остаточним рішенням для нього. Це не означає, що IntegrityApp чи інші речі погані, IntegrityApp - дуже хороші речі, проте мені більше подобається Дженкінс.
Габор Гарамі

0

Ви також можете поглянути на CloudMunch. Це забезпечує поліглот платформу, яка дозволяє мати різні мови як частину вашої кодової бази, з багатим набором метаданих збірки.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.