What's in your build process?

{ Posted By : Eric Cobb on May 22, 2012 }
3008 Views
Related Categories: ANT

As I mentioned in my previous post, I've started working with ANT some recently. Like some of you, I'm sure, my foray into the world of ANT came out of necessity. As my duties here at work increased, I began to take on more and more responsibility in terms of managing code bases, sites, and servers. We've got 15 ColdFusion sites spread across 10 servers, and then our main site sits on a cluster of 8 CF servers. Factor in our testing and staging environment as well, and it's safe to say we've got a lot of code in a lot of places.

I first started using ANT as a simple means for me to copy files from one directory to another. But, once I started learning some of the capabilities of ANT, it quickly grew into a tool that automates a lot of redundant tasks for me. For example, I have one build process that does the following when moving code to our staging server:

  • compresses any .js or .css files that are going up (YUI Compressor)
  • compresses any .png files that are going up. (pngtastic)
  • ftps the files to our staging server
  • commits the changed files to a "staging" branch in SVN
  • creates a tag of the "staging" branch in SVN

So, yeah, ANT has become a huge time saver for me. I also have it doing things like pulling down backup copies of sites and storing them as zip files on a network drive, and connecting to SVN and exporting builds directly to testing servers. The funny thing is, I feel like I'm just scratching the surface and I find myself looking for new things that I can implement with ANT, which is the main reason for this blog post. I want to find out what your build processes are like. It doesn't even have to be ANT, if you use something else I'd love to hear about it.

I'm curious to see what others are doing, and I have a lot of questions for those smarter than me. What are some cool things that you're doing in your builds? Do you integrate things like unit testing or var scope checking? When working with large code bases, do you export the entire thing or just the changed files? What are some of the other tools you use? I've heard about Jenkins and Hudson, but haven't really looked into them.

So, as I said, I'd love to hear about what you're doing. What's in your build process?

Comments
Jim Priest's Gravatar I haven't updated it in awhile but my Ant wiki has a ton of info on it if you are just getting started...

http://thecrumb.com/wiki/ant/
# Posted By Jim Priest | 5/22/12 4:39 PM
Bradley Moore's Gravatar I'm creating a build process, so it's interesting to me.

My plan is to: SVN Export > cfcompile > build WAR > build EAR > transfer to server for pickup.
# Posted By Bradley Moore | 5/22/12 10:13 PM
Jose's Gravatar Eric,

Sort of unrelated to ANT, etc, but can you tell me how you clustered 8 CF servers? Several years ago I set up a cluster using ClusterCats, and while I was able to deploy it to production, it was not the most reliable clustering approach. I'm in the process of designing a system to support a lot of traffic and am curious to find out how your cluster is set up.

Thanks in advance for any info.

Jose
# Posted By Jose | 5/23/12 9:49 AM