Beginning with Jenkins and ColdFusion

Last night at the Seattle CFUG meeting, Matt Woodward and Nick Harvey introduced us to Jenkins.  Jenkins is what's called a continuous integration application.  Here's an overview of how it works:

When I'm working on a web application I generally make the changes on my local development machine and then simply FTP the changed file to the production server.  That's cool as long as the changes I made don't break something else on the production server (not that I would ever write bad code).  As you know this will probably work fine for a very small application, but as I've grown as a programmer I've started trying to employ some best practices in development such as version control and unit testing.  It adds an extra couple steps to my workflow, but I've found that doing so improves my code's reliability greatly.  This is where Jenkins comes in.  Essentially Jenkins eliminates the need for you to do the unit testing and pushing of code manually.  It checks your repository (SVN, Git, whatever) for new code at intervals you specify, runs any unit tests you've created on that code, and automatically FTPs (or SSH if you're a Mac) it to another server (test, staging, production or whatever).  All you have to do is push code to your repository and Jenkins handles the rest.  How cool!

I like the fact that Jenkins has all kinds of plugins that help you make it work the way you want to work too, and so in this post I'm simply going to share the resources I've downloaded for my environment, and I'll write more posts as I continue to integrate Jenkins into my workflow.  Jenkins also uses ANT, which I've never used before, which is how you tell jenkins what it needs to do.  

My development environment is a Dell laptop running Windows Vista (new machine coming soon).  I use Git for my version control, and although my projects are private at BitBucket (per client requirements) I'm going to create a sample repository at GitHub so folks can follow me through this.  I also use MXUnit for unit testing.  My production machine is a Windows 2008 server with MSSQL and ColdFusion 9.01.

These are the downloads specific to my envionment:


These are some other useful resources for learning about Jenkins:

 

  1. mike henke

    #1 by mike henke - July 13, 2012 at 5:12 PM

    Checkout Cloudy with a chance of tests on GitHub.
  2. Steven Erat

    #2 by Steven Erat - July 15, 2012 at 4:24 PM

    Dont forget the value of Automated System Testing (UI) in addition to unit testing. Here's my preso from CF.Objective:
    http://slideshare.net/stevenerat/automated-system-testing-by-steven-erat-13122937
  3. Kris Korsmo

    #3 by Kris Korsmo - July 15, 2012 at 4:41 PM

    @Mike - Thanks! I'll clone that when I get back from Alaska ;)

    @Steven - That's fantastic! Sure wish I could have been at CF.Objective() this year to see your presentation! Are you going to present it at CF.Objective(ANZ)? I'm trying to get down there for that one!
(will not be published)
Leave this field empty: