J'ai cherché une solution d'intégration continue pour Ruby on Rails, mais je n'ai pas été trop satisfait des résultats. Je viens d'une boutique .NET qui utilisait CruiseControl.NET et j'ai été vraiment gâté par sa facilité d'utilisation et son état / rapports riches.
Idéalement je recherche:
L'intégration évidente de Git / SVN et Test :: Unit
Intégration avec Rake et / ou Capistrano
Une interface Web montrant l'état de la construction
Notification par e-mail des versions ayant échoué.
Notification de bureau (potentiellement via Growl)
API REST pour les statuts de construction
Framework de plugins pour exécuter d'autres outils d'analyse de code et rapporter les résultats dans l'interface utilisateur
ruby-on-rails
ruby
continuous-integration
Jim Fiorato
la source
la source
Réponses:
Je viens de passer en revue les options ici et j'ai pensé les regrouper fin 2011.
Intégrité
Après une expérience de mort imminente qui a laissé le site Web encore lié avec des informations obsolètes et a mis hors service le site de démonstration, ce projet a de nouveau une étincelle de vie. Mais la documentation n'a pas évolué et de nombreuses étapes du didacticiel sont tout simplement interrompues ; J'ai dû changer les références aux gemmes, construire certaines choses hors du groupe, et puis je ne pouvais toujours pas le faire fonctionner .
Cruise Control.rb
Tout simplement : il vous suffit de le télécharger, d'exécuter une ligne de commande pour ajouter votre projet (il n'y a pas d'interface utilisateur pour le faire) et d'exécuter l'application Rails. Mais il n'y a pas non plus d'interface utilisateur pour éditer votre projet, et il n'y a pas de réelle intégration avec les artefacts de construction mis à part l'affichage de liens vers eux: vous n'obtenez aucun graphique des tests exécutés, aucune ligne de tendance, etc. J'ai également dû ajuster le
routes.rb
fichier pour obtenir le le code liant fonctionne (laresources :projects
ligne doit se déplacer en dessous de toutes les autres routes non par défaut).TeamCity
Cela a l' air génial , mais l'échelle salariale semble déséquilibrée. 3 agents gratuits, puis lorsque vous êtes dépendant, vous devez distribuer des centaines de dollars. Personal Builds a fière allure, mais n'a pas le budget .
Jenkins (née Hudson )
C'est un pilier de Java et il est chargé de mille options , donc l' interface utilisateur est déroutante et c'est une corvée de configurer vos projets . Mais une fois que vous l'avez configuré, vous obtenez un grand nombre de plugins qui peuvent tirer de presque n'importe où, exécuter presque tout et rapporter presque tout. Le programme d'installation d'OS X pointe Jenkins vers
/Users/Shared/Jenkins/Home
mais ne parvient pas à créer ce répertoire ouchown
vers celui-cidaemon
(ce qui est utilisé par défaut, et vous devez changer pour un nouveljenkins
utilisateur afin de pouvoir configurer l'intégration GitHub).Autres
Je n'ai pas vraiment essayé ces derniers, mais j'ai pensé expliquer pourquoi:
Le choix
Nous avons choisi Jenkins , mais j'aurais vraiment aimé qu'une des solutions plus légères ait fonctionné.
la source
Que diriez - vous CruiseControl.rb ?
La même foule qui l'a fait
CruiseControl
(réflexions) et a écritRuby
. Très facile à utiliserRake
pour intégrer vos autres outils, et peut utiliser la gemme ruby-growl pour vos notifications.la source
Vous voudrez peut-être également envisager Hudson . Il est conçu pour être utilisé avec des projets Java bien qu'il existe une grande sélection de plug-ins disponibles, y compris la prise en charge de Ruby et Rake. Il a une interface Web très utile et prend en charge les notifications par e-mail ainsi que de nombreuses autres (comme Twitter ou les lampes à ours géants).
La communauté est également très active et il y a eu plusieurs articles sur la connexion d'Hudson avec Selenium qui pourraient vous être utiles pour tester les applications Rails côté navigateur.
Un autre regard sur Team City est gratuit pour les petits projets et les équipes (y compris commerciales). J'aime beaucoup Team City et je l'ai déjà utilisé pour d'autres projets, mais actuellement, nous utilisons Mercurial pour le contrôle de code source et le support de Team City était un peu trop bêta lorsque nous le pensions.
Je suis passé de CruiseControl.net à Team City et j'ai été absolument choqué par l'amélioration. Je suis cependant partial pour Hudson en raison de son ensemble de fonctionnalités similaires et de sa communauté très active.
la source
Circle est un service CI avancé pour Rails (et autres applications Web). À partir de votre liste, il prend en charge les éléments suivants:
Joel et moi avons passé un moment à en discuter sur le podcast Stackoverflow - jetez-y un œil !
(modifier) Avis de non-responsabilité: Paul Biggar a fondé Circle comme il l'indique dans son profil Stackoverflow
la source
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 dispose d'une interface utilisateur simple.
la source
Mis à jour en février 2015
Codification
Il y avait un manque de développement sur Drone.io donc je suis passé à Codeship et je l'apprécie énormément. Il est activement développé et amélioré, a un excellent design et est très rapide. De plus, pour le niveau inférieur, il est en fait gratuit (jusqu'à 100 versions par mois), donc il a fini par être moins cher que Drone.io.
Réponse originale
Drone.io
Je viens de configurer notre principale application Ruby on Rails avec http://drone.io/ . C'était un morceau de gâteau et il a une excellente interface. Je dirais qu'il vaut la peine de vérifier si vous recherchez une solution simple et hébergée .
la source
Découvrez Tddium . Tddium prend en charge l'intégration continue, le déploiement et les tests interactifs des applications Ruby. Il fournit un environnement géré avec prise en charge de Selenium, Headless Webkit et Solr. Il héberge des instances Postgres, MySQL, Mongo et Redis en direct. Et il met automatiquement en parallèle de grandes suites de tests.
la source
Travis CI est devenu populaire dans le monde du rubis: http://travis-ci.org/
la source
cruisecontrol.rb serait alors le match parfait.
http://cruisecontrolrb.thoughtworks.com/
la source
Comme beaucoup de gens, j'étais un grand fan de cruisecontrol.rb, mais j'ai récemment basculé mes projets sur Integrity .
Léger et facile à installer (un peu comme cc.rb), mais avec une interface plus agréable.
la source
BigTuna - écrit en Ruby, utilise Rails et s'utilise comme CI.
la source
Vous pouvez essayer Codeship et voir si cela fonctionne pour vous (je suis l'un des fondateurs)
Intégration et déploiement continus basés sur le cloud (avec support spécial Heroku)
Les quatre premiers de vos éléments sont déjà mis en œuvre et fonctionnent bien pour un certain nombre d'entreprises
Nous travaillons également sur ces fonctionnalités:
la source
Personne n'a mentionné le bambou d'Atlassian. Il existe un bel article de type tutoriel sur Ruby on Rails CI utilisant Bamboo:
http://blogs.atlassian.com/news/2009/05/bamboo_customer_8.html
la source
L'intégrité semble être une excellente solution. Déployer sur heroku est un jeu d'enfant: http://elabs.se/blog/7-continuous-integration-testing-for-ruby-on-rails-with-integrity http://integrityapp.com
la source
Fais le toi-même. Écrivez un script bash pour exécuter des tests, puis exécutez une procédure de déploiement si les tests réussissent. Besoin de notifications? Envoyez-vous un e-mail en clair en cas de réussite / échec. Besoin d'un planificateur? Tâche planifiée. Il s'agit de 0 $ / mois, et vous aurez une idée de ce que vous faites. Je ne vois pas comment le fait de payer 40 $ / mois m'aidera à le faire de manière plus efficace.
Considérez par exemple: mon déploiement échoue en raison d'un pipeline d'actifs mal configuré (les actifs ne sont pas précompilés). Cela ne sera pas détecté avec des tests unitaires, fonctionnels, d'intégration, de régression ou tout autre test. Cette erreur ne sera pas détectée par CI. Le temps que je passerais à écrire un script bash est probablement inférieur au temps que je passerais à configurer un environnement CI, et je me ferai économiser 40 $ / mois.
Juuuuuust jetant mes deux sous dans la discussion; )
la source
Run Code Run peut être ce dont vous avez besoin.
Edit: lien supprimé car il ne fait plus référence à l'ancien site Run Code Run.
la source
Et puis, il y a CI Joe :
Nous l'utilisons au quotidien.
la source
Je n'aime que CI joe, j'ai eu des problèmes avec tout le reste, CI Joe est le minimum absolu pour faire le travail, super agile et fiable. La source hudson est horrible et l'interface utilisateur ne me plaît pas.
la source
Je viens de publier une application d'intégration continue très simple pour RubyOnRails + SVN / GIT. Vous devriez peut-être essayer:
http://github.com/felipegiotto/Inotegration/tree/master
J'ai pris quelques idées d'outils de mesure et de test et, après avoir essayé certains outils de CI sans en aimer aucun, j'ai décidé de créer le mien, sans avoir besoin de créer de gros fichiers XML ou toute autre configuration. Exactement comme Rails a été conçu.
Si vous le souhaitez, envoyez-moi quelques commentaires.
Meilleures salutations,
Felipe Giotto.
la source
Lancer CI après chaque commit semble assez coûteux si vous souscrivez à la philosophie «commit souvent». Que diriez-vous d'exécuter un simple cronjob toutes les quelques heures et d'envoyer les résultats par courrier électronique à une liste de diffusion de développeurs?
la source
Je viens de configurer un Hudson / Jenkins pour cela. Le gem ci_reporter peut aider à formater la sortie JUnit, ce qu'attend Hudson, et Hudson a un plugin Rails, donc je peux voir la couverture rcov, les rapports de test, les statistiques des rails et bien plus encore.
la source
Vous devriez également envisager de consulter CloudMunch. Cela fournit une plate-forme polyglotte pour vous permettre d'avoir différentes langues dans le cadre de votre base de code, avec un riche ensemble de métadonnées de construction.
la source