How to Host Hudson CI on AppCloud »
Created at: 14.12.2010 18:33, source: Engine Yard Blog, tagged: Uncategorized appcloud Continuous Integration Hudson
*Continuous Integration (CI) must be easy, easier to do, than not to.* It should reduce the pain of development. However, for many developers and their companies, the idea of running a CI server garners a meek "yeah, I should, but..." or "we did have a CI server running but it died one day and no one fixed it."
In this post I hope to convince you why you absolutely need a full time CI solution for your your team or company.
In a coming post I'll show you how easy it is to run your continuous integration test suite in an environment that matches your production environment. For "Engine Yard AppCloud":http://www.engineyard.com/products/appcloud customers this means you will have a one step solution for setting up and running your applications' CI test suites against AppCloud.
In just two steps that we'll break into two blog articles, you'll have a zero-effort CI solution, one as simple as using Engine Yard AppCloud itself.
h2. Which CI?
I'm going to do this in reverse. You are going to install a CI server and then I'll discuss which one you ought to choose. I know it's weird, but trust me.
h2. Demo Video
Take nine minutes to watch a quick demo of Hudson CI. The short demo will walk you through the two steps to get it hosted on Engine Yard AppCloud, and how to setup Post-Commit hooks from "GitHub":https://github.com
Host Hudson CI on Engine Yard AppCloud from Engine Yard on Vimeo.
h2. Hosted CI on Engine Yard AppCloud Follow these three steps to get setup with a hosted CI server. A summary video is included too. 1. "Create":https://login.engineyard.com/signup an Engine Yard AppCloud account. 2. Using the Quick Start wizard, create an application for @git://github.com/engineyard/hudson_server.git@ with default settings, and boot a single instance. 3. On your local computer:gem install engineyard-hudson ey-hudson install_serverWhen this is complete, you've got yourself a running CI server. h2. Take 2 - Which CI? I highly recommend using the "Hudson CI":http://hudson-ci.org/ as your CI server. Why Hudson? One simple reason. As demonstrated, it is very easy to set up. If you have Java installed on your local machine, you can also launch it by "clicking here":https://hudson.dev.java.net/hudson.jnlp. Or you can set up a Ruby-flavored Hudson server using the "Hudson.rb":https://github.com/cowboyd/hudson.rb project:
gem install hudson hudson server open http://localhost:3001It can be completely configured via its Web UI (see Manage Hudson on the sidebar), and also from a CLI (the "Hudson.rb":https://github.com/cowboyd/hudson.rb project). To add an OSS Ruby project into Hudson and automatically begin running its test suites:
git clone git://github.com/engineyard/engineyard-hudson.git cd engineyard-hudson hudson create . --type ruby # or hudson create . --type ruby --scm git://github.com/engineyard/engineyard-hudson.gitUse @hudson help create@ to see the list of options for the @create@ task. Hudson CI is a rock solid, open source CI server. It is widely used by many developer communities and is quickly gaining wider adoption within the Ruby/Rails community. One of the champion features I love about Hudson CI is that it can be configured to run test suites on alternate target computers. That is, Hudson can run the unit and integrate my Rails application tests within an Engine Yard AppCloud environment - exactly the same environment as my production application. This means ZERO setup time for configuring my CI system. A new project can have its tests executed by your CI system within minutes of creating a new Rails application. I want that. h2. Running CI Test Suites on AppCloud Stay tuned. Coming soon. The core functionality is working. There is a bit of clean up to make the "getting started" experience ultra-simple. To stay on top of announcements, you can check out our "Engine Yard Ruby on Rails blog":http://www.engineyard.com/blog/, the "@engineyard Twitter account":http://twitter.com/engineyard, our monthly "Engine Yard Newsletter":http://www.engineyard.com/newsletter, or our new "Cloud Out Loud podcast series":http://www.engineyard.com/podcasts. h2. "Is my Hudson CI supported by Engine Yard?" Currently Engine Yard is not offering any Support for Hudson CI. If you have issues with these instructions, please use the "Issues tracker":https://github.com/engineyard/engineyard-hudson/issues for the @engineyard-hudson@ project. For issues with the @hudson@ CLI tool use the "Hudson.rb issue tracker":https://github.com/cowboyd/hudson.rb/issues. h2. Hudson is Ugly. Please Help. Some people with very attuned aesthetic senses might argue that the Hudson CI dashboard isn't 100% good looking. If you are a designer who uses Hudson CI, and have some ideas about how to fix the Hudson UX predicament, and how to improve the look'n'feel, please "email me":mailto:drnic@engineyard.com. Together, with your help, we can help everyone have a better CI experience.
more »
