Do you know a build tool?


Do you have a repetitive task for example in a programming project? Chances are you could automate the steps with a build tool.

For example, in one of my JavaScript projects I had to do the following:

  1. Put all project files to a zip file: Click each file and each dir, and choose add to zip
  2. Rename the zip file, and click yes to tell windows I’m sure I want to do that
  3. Send the zip file to my server with sftp, and click yes to confirm overwriting the file

This isn’t such a complex task, but when I had to do it every time I needed to test a small change, it quickly started to consume more time and got repetitive.

I had earlier set up Apache Ant for some Java stuff I was working on. Ant is a Java-based build automation tool, and quite similar to Phing, which you may be familiar with if you are a PHP programmer.

I wrote a short Ant build file which did the three steps mentioned earlier. Instead of having to do each manually, I could just run the build file which was much faster – even though it took a few seconds because of the sftp file-send, it meant I didn’t have to do it manually, and could use the browser to go to the test URL simultaneously.

Build tools are more common amongst compiled languages, but as you can see they can be useful even with something like JavaScript. You could even add a step to the build process which runs JSLint and Minifies the code to make it more useful.

Oh, and having a build script is even part of the Joel Test! ;)