149 votes

Intégration continue pour Ruby on Rails?

J'ai été chercher autour pour une solution d'Intégration Continue pour Ruby on Rails, mais je n'ai pas été trop heureux avec les résultats. Je viens d'une .NET magasin de celle utilisée CruiseControl.NET et a été vraiment gâté avec sa facilité d'utilisation et riche d'état/création de rapports.

Idéalement, je suis à la recherche de:

  • L'évidence Git/SVN et Test::Unit l'intégration

  • L'intégration avec le Râteau et/ou Capistrano

  • Une interface web montrant l'état de la construction

  • E-mail de notification de l'échec de la construit.

  • De notification du bureau (potentiellement par le biais de Growl)

  • API REST pour construire des statuts

  • Plugin cadre de l'exécution d'autres outils d'analyse de code et la présentation des résultats dans l'INTERFACE utilisateur

83voto

TALlama Points 4652

Je suis juste allé à travers les options ici et j'ai pensé les faire rouler jusqu'à la fin de 2011.

L'intégrité

Après une expérience de mort imminente qu'à gauche, toujours liés à la site web avec des informations obsolètes et arraché le site de démo, ce projet a une étincelle de vie. Mais la documentation n'a pas évolué, et beaucoup, beaucoup d' étapes dans ce tutoriel sont tout simplement cassé; j'ai dû changer les références à des joyaux, de construire quelques choses de bande, et puis je n'ai toujours pas de travail.

Le Régulateur De Vitesse.rb

On ne peut plus simple: il vous suffit de télécharger, exécuter une ligne de commande pour ajouter votre projet (il n'y a pas d'INTERFACE utilisateur pour le faire), et exécutez l'application Rails. Mais il n'y a pas d'INTERFACE utilisateur pour le montage de votre projet, que ce soit, et il n'y a pas de réelle intégration à la génération des artefacts de côté d'afficher des liens vers eux: vous n'obtenez pas de graphiques de tests, pas de lignes de tendance, etc. J'ai également eu à régler le routes.rb fichier pour obtenir le code de liaison de travail ( resources :projects ligne besoin de se déplacer au-dessous de tous les autres non-routes par défaut).

TeamCity

Cela semble impressionnant, mais l'échelle de rémunération semble hors de contrôle. 3 agents libres et puis, lorsque vous êtes dépendant, vous devez distribuer des centaines de dollars. Personnelle s'appuie ressemble beaucoup, mais n'ont pas le budget.

Jenkins (née Hudson)

C'est une Java loyaux et il est chargé avec un millier d'options, de sorte que l' INTERFACE utilisateur est source de confusion, et c'est une corvée pour configurer vos projets. Mais une fois que vous l'avez créé, vous obtenez un tas de plugins qui peut tirer à partir de n'importe où, courir plus rien, et le rapport de la plupart de tout. L'OS X Installer des points de Jenkins en /Users/Shared/Jenkins/Home mais ne parvient pas à créer le répertoire ou chown à daemon (ce qui est utilise par défaut, et vous devriez changer pour un nouveau jenkins utilisateur de sorte que vous pouvez configurer GitHub de l'intégration).

D'autres

Je n'ai pas vraiment essayer, mais pensé que je le mentionne pourquoi:

  • CI Joe veut posséder le dépôt GitHub de plus que ce que je veux, et ses créateurs ne sont même pas à l'utiliser; ils sont sur Jenkins.
  • Cerberus semble parfaitement les petits, mais ne dispose pas d'une INTERFACE utilisateur et de ne pas publier automatiquement crée des artefacts lorsque d'autres personnes peuvent les voir.
  • BigTuna semble être un CruiseControl.rb clone sans l' (déjà faible) le soutien de la communauté.
  • Le bambou a l'air vraiment soigné si vous utilisez JIRA et BitBucket, mais nous utilisons ni. Il ne déploie, mais nous avons déjà ceux mis en place dans Capistrano.

Le Choix

Nous sommes allés avec Jenkins, mais je souhaite vraiment l'un des plus légers de poids solutions ont travaillé.

41voto

craigb Points 10622

Que diriez-vous de CruiseControl.rb ?

Même foule qui a fait CruiseControl (thinkworks) et écrit en Ruby . Très facile à utiliser Rake pour intégrer vos autres outils, et vous pouvez utiliser la gemme ruby-growl pour vos notifications.

27voto

Julian Points 401

Vous pourriez aussi envisager d' Hudson. Il est conçu pour une utilisation avec des projets Java bien qu'il existe une grande sélection de plugins disponibles, y compris le soutien pour le Rubis et le Râteau. Il dispose d'une interface web, et prend en charge les notifications par email ainsi que beaucoup d'autres (comme twitter, ou ours géant des lampes).

La communauté est très active et il y a eu plusieurs articles sur le branchement de l'Hudson avec le Sélénium qui pourraient vous être utile pour tester les applications Rails côté navigateur.

Un autre coup d'oeil sur se de l'Équipe de la Ville qui est gratuit pour les petits projets et des équipes (y compris commerciale). J'aime vraiment l'Équipe de la Ville et l'ont utilisé avant pour d'autres projets, mais actuellement nous utilisons Mercurial pour le contrôle de la source et de l'Équipe de la Ville de support a été un peu trop bêta quand nous avons examiné.

Je suis passé de CruiseControl.net pour l'Équipe de la Ville et a été absolument choqué à l'amélioration. Je suis partie d'Hudson, mais en raison de son jeu de fonctionnalités similaire et très actif de la communauté.

13voto

Paul Biggar Points 7108

Le cercle est une avancée CI de service pour les Rails (et d'autres applications web). À partir de votre liste, il prend en charge les éléments suivants:

  • Git et Test::Unit intégration (également RSpec, Cucumber, de Jasmin, de Konacha intégrations, et prend en charge arbitraire supplémentaire commandes de test)
  • L'intégration avec le Râteau et/ou de Capistrano (utilise Râteau pour exécuter des commandes et configurer DBs, le soutien continu de déploiement à l'aide de Capistrano ou Heroku, ni rien)
  • Une interface web montrant l'état de la construction
  • E-mail de notification de l'échec de la construit.
  • Notification de bureau (à travers CCMenu/CCTray)
  • API REST pour construire des statuts
  • Plugin cadre de l'exécution d'autres outils d'analyse de code et la présentation des résultats dans l'INTERFACE utilisateur (on peut exécuter des commandes arbitraires et de soutien, y compris leur statut dans le cadre de la construction)

Joel et j'ai passé un moment à discuter de cela sur le Stackoverflow podcast - check it out!


(edit) Avertissement: Paul Biggar fondée Cercle comme il le déclare dans son Stackoverflow profil

8voto

marko Points 477

Semaphore est une nouvelle application CI hébergée pour les applications Ruby et Rails. Il s'intègre à GitHub, ne nécessite aucune configuration et possède une interface utilisateur simple.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X