views:

37

answers:

2

The project I'm working on consists of front-end development - HTML, CSS, Javascript and image files.

I want to set up a build process which does the following.

  • Monitors a CVS repository for changes
  • On each commit, takes the committed files and uploads them to a server via FTP
  • Future potential requirements: ** Run JSLint on the Javascript files ** Minify/combine Javascript and CSS using my own custom minification program ** Do some pre-processing of the CSS

What's the simplest way to get the above working?

Will CruiseControl make any aspect of this task easier?

Or am I better off making my own build software, say a WinForms app that checks CVS for updates and does the FTP-ing?

In other words, what effort can CruiseControl save me in this case?

A: 

Being overkill would mean it's too much effort for little reward. If you see reward in automating the QA tools and minifying the code (mostly in time savings) then you should do it.

Would it save you more time than you invest in setting it up?

infamouse
My question isn't whether there should be a build. My question is whether I should be using CruiseControl for this or just making it myself manually.
jonathanconway
+2  A: 

CruiseControl does have support for monitoring VCS repositories, but using it won't really help at all with the rest of what you need to do.

Whether you use CruiseControl or not, you're going to have to write the scripts (be they ant, or shell scripts) that are then called by CruiseControl. The main benefit to having CruiseControl is that it stores artifacts and reports and can make them accessible via the web.

So, I'd recommend you write the scripts that you need to handle each step you enumerated and then, when you need the artifacts and reports CruiseControl (or Hudson) provides, then you consider integrating it. But, until then, I'd just run the necessary script or scripts in a post-commit hook within my VCS.

Kaleb Pederson
Thanks for the clarification. Good tip about writing scripts. Perhaps it's best to do this in PowerShell.
jonathanconway