tag:blogger.com,1999:blog-12467669.post115222142943376292..comments2023-04-29T07:23:25.825-04:00Comments on Jay Fields' Thoughts: Ruby Continuous IntegrationJayhttp://www.blogger.com/profile/14491442812573747680noreply@blogger.comBlogger16125tag:blogger.com,1999:blog-12467669.post-63926924769260765852009-06-14T17:47:51.406-04:002009-06-14T17:47:51.406-04:00Hi! I just published a very simple Continuous Inte...Hi! I just published a very simple Continuous Integration App for RubyOnRails + SVN/GIT. Maybe you should give it a try:<br /><br />http://github.com/felipegiotto/Inotegration/tree/master<br /><br />I took some ideas of measurement and testing tools and, after trying some CI tools and not liking anyone of them, I decided to build my own, without needing to build big XML files or any other configuration. Just the way Rails was made to be.<br /><br />If you like, please send me some feedback..<br /><br />PS: Sorry for using your blog to send this, but I just want to make a good CI tool for the Rails Community.<br /><br />Best regards,<br /><br />Felipe Giotto.Unknownhttps://www.blogger.com/profile/02542378185280844282noreply@blogger.comtag:blogger.com,1999:blog-12467669.post-328542258310773862008-01-13T00:18:00.000-05:002008-01-13T00:18:00.000-05:00A lot has transpired since this post, but just for...A lot has transpired since this post, but just for those coming here from search engines... one option for continuous integration would be hudson, easy to setup... steps here:<BR/>http://blog.huikau.com/2008/01/09/jruby-ruby-continuous-integration-with-hudson/Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-12467669.post-1167328591558937782006-12-28T12:56:00.000-05:002006-12-28T12:56:00.000-05:00Just to let you know, I have drawn a statechart di...Just to let you know, I have drawn a statechart diagram in an attempt to represent the Continuous Integration workflow<BR/><BR/>http://21croissants.blogspot.com/2006/12/continuous-integration-workflow.html<BR/><BR/>I thought you experts could comment on it,<BR/><BR/>Jay, thanks for your blog!<BR/><BR/>Jean-MichelAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-12467669.post-1163075552249840042006-11-09T07:32:00.000-05:002006-11-09T07:32:00.000-05:00Slava: We rolled our own solution in about 1 week ...Slava: We rolled our own solution in about 1 week with four guys. It was quite simple.<BR/><BR/>As far as packaged solutions, I've not heard of a single one that works well for Ruby. We recently used Cerberus and it's very immature and easier to roll your own. I've heard the same comments about other options. I appreciate the link, but until I hear some success stories with any given solution, I'm skeptical.<BR/><BR/>Thanks for the comment.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-12467669.post-1163030005623322702006-11-08T18:53:00.000-05:002006-11-08T18:53:00.000-05:00Jay,ThoughtWorks has a nice list of continuous int...Jay,<BR/><BR/>ThoughtWorks has a nice list of continuous integration servers ant it is not limited to DamageControl: http://damagecontrol.codehaus.org/Continuous+Integration+Server+Feature+Matrix<BR/><BR/>You might want to check it before rolling your own.<BR/><BR/>Hope this helps.<BR/><BR/>Regards,<BR/><BR/>Slava ImeshevAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-12467669.post-1154521203950934132006-08-02T08:20:00.000-04:002006-08-02T08:20:00.000-04:00Indeed, I stopped one step shy of realizing that u...Indeed, I stopped one step shy of realizing that updating to r2 will roll back r3's changes. Thanks for the clarification.<BR/><BR/>And thanks for an extremely practical blog. The code examples in the unit testing/stub/mock posts and others like this one are fantastic learning tools!Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-12467669.post-1154518742397273542006-08-02T07:39:00.000-04:002006-08-02T07:39:00.000-04:00Hello Shawn,The build for r3 would include the cha...Hello Shawn,<BR/><BR/>The build for r3 would include the changes for r2; however, the build for r2 would not include r3's changes. Therefore if two people commited at the same time and r3 broke the build, but then r2 broke the build also you should be able to easily identify it was the changes in r2 that likely are causing an issue.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-12467669.post-1154488308906375552006-08-01T23:11:00.000-04:002006-08-01T23:11:00.000-04:00If you happened to have two commits in one minute,...If you happened to have two commits in one minute, this code looks like it will update and build the latest revision first, then loop again and update and build the older revision. However, for a working copy on r1, "svn update -r3" would also suck down the sources updated in r2, so the update and build for r2 would essentially be the same as for r3.<BR/><BR/>Am I reading this right? If so, that's cool, I'll just assume you won't likely have two commits in one minute and therefore it doesn't matter.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-12467669.post-1154321534354919252006-07-31T00:52:00.000-04:002006-07-31T00:52:00.000-04:00If your solution works for you then probably there...If your solution works for you then probably there is no sense to change.<BR/><BR/>But for new projects I highly recommend you Cerberus. It was created with 'easy-in-use' idea in mind. So it is very easy to pick up and start using it.Anatol Pomozovhttps://www.blogger.com/profile/04942051610227856401noreply@blogger.comtag:blogger.com,1999:blog-12467669.post-1153594959375682362006-07-22T15:02:00.000-04:002006-07-22T15:02:00.000-04:00Thanks for the tip. What we have works now so I d...Thanks for the tip. What we have works now so I don't think we'll take the effort to change; however, hopefully someone else can take your suggestion.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-12467669.post-1153575283988348632006-07-22T09:34:00.000-04:002006-07-22T09:34:00.000-04:00Hi, Jay.I suggest you to try Cerberus CI tool. It ...Hi, Jay.<BR/><BR/>I suggest you to try Cerberus CI tool. It is easy-to-use tool that do what you need.<BR/><BR/>http://rubyforge.org/projects/cerberus<BR/><BR/>Main advantages over other solutions:<BR/> = Cerberus could be installed on any machine not only where SVN repository located.<BR/> = Cerberus works not only for Rails projects, but for any other Ruby (or better to say for projects that use Rake)<BR/> = Cerberus multyplatform solution: it runs excellent both on *nix and Windows.<BR/> = Cerberus distributed via RubyGems, so it is very easy to install and very easy to update to latest versin<BR/> = Cerberus very easy to use 'cerberus add PROJECT_URL|PROJECT_DIR'<BR/> = Cerberus is lightweigt solution: mots of the time ruby process even not run - Rake runs only in case if changes in project found<BR/>and then you need to run from Cron<BR/>'cerberus build PROJECT_NAME'<BR/><BR/>Just try to instal (by 'sudo gem install cerberus') and use and you'll see how is CI for ruby easy.Anatol Pomozovhttps://www.blogger.com/profile/04942051610227856401noreply@blogger.comtag:blogger.com,1999:blog-12467669.post-1152894282341854522006-07-14T12:24:00.000-04:002006-07-14T12:24:00.000-04:00CC and CC.net are great, but a lot more than we ne...CC and CC.net are great, but a lot more than we needed. It was easier to roll our own than it was to set up either CC implementations to work with ruby.<BR/><BR/>That said, I'd love to see first class support for Ruby in both implementations.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-12467669.post-1152893816242023732006-07-14T12:16:00.000-04:002006-07-14T12:16:00.000-04:00Why not just use CruiseControl or CC.Net just to m...Why not just use CruiseControl or CC.Net just to monitor SVN and kick off the rake script?Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-12467669.post-1152854317997662512006-07-14T01:18:00.000-04:002006-07-14T01:18:00.000-04:00atmos:That was not my experience.No manner of ampe...atmos:<BR/><BR/>That was not my experience.<BR/><BR/>No manner of ampersands, nohup'ing or the like would force the process into the background.<BR/><BR/>A bit of digging around turned up that certain releases of Subversion would not allow the post-commit to exit if any child process still had an open connection to the STDOUT or STDERR that was opened by the post-commit hook.<BR/><BR/>If the ampersand works for you, it is because you are using a different version of Subversion on your repo server.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-12467669.post-1152575056773529922006-07-10T19:44:00.000-04:002006-07-10T19:44:00.000-04:00If you background the CI plugin w/ an ampersand it...If you background the CI plugin w/ an ampersand it'll let your commit finish and run in the background. You then have to setup sudo and a couple other things that pretty much make it a pita no matter what. Nice CI though and bonus points for using the growl notifier. :)Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-12467669.post-1152295867311937922006-07-07T14:11:00.000-04:002006-07-07T14:11:00.000-04:00I feel your pain. I ended up rolling my own severa...I feel your pain. I ended up rolling my own several weeks ago for exactly the same reasons. Guess I should have posted it somewhere and saved you the trouble. ;-) Just been too busy.<BR/><BR/>If you're interested in taking a look at what I used, you can get the source at svn://poseidon.johnwilger.com/nsa/trunkAnonymousnoreply@blogger.com