16.5 Creating an Automated Build Environment

Once you have put together a satisfactory build environment, you should go the extra step to automate it. This means that no human interaction is needed to execute new builds. It's very common for build frequencies to increase the closer you get to the end of a construction phase. You can, of course, just manually kick off builds when you need them, but a better and much more efficient approach is to use a scheduling mechanism to invoke your Ant build environment.

There are at least two scheduling mechanisms that you can employ, depending on your environment. In Unix, you can use the cron daemon, and on the Windows platform, you can take advantage of the Task Scheduler.

16.5.1 Using cron to Invoke Ant

cron is a program that allows you to automate tasks by running user-defined programs at regular intervals. cron allows you to define both the program that is to be run and the exact time at which to run it. The cron program is a daemon program, which means that it runs in the background until it's needed. It wakes up every minute, checks to see if there are any scheduled tasks that need to be performed, and, after it runs the tasks, goes back to waiting.

The list of tasks for cron to execute comes from a file called a cron table, which is commonly referred to as crontabs. The crontabs is a schedule that lists the tasks to run and the date and time to run them.

Some system administrators may disable cron from running on a server in order to save processing power. In this case, you'll need to get permission to run cronprograms. You can verify that cron is running and that you have permission to access it by typing crontab-l at the command prompt.

All you need to do is edit crontabs and add an entry that calls your ant program, which in turn will kick off the build. Check the Unix manpages for more information on using cron.

16.5.2 Using Microsoft Task Scheduler

The Windows platform contains an application called Task Scheduler (or Scheduled Tasks in newer versions of the platform). This program performs the same function as cron, but for the Windows platform. It has a wizard that walks you through setting up a task that gets fired off at regular intervals. Figure 16-4 shows the main screen of the Scheduled Tasks application. A task has been created that will invoke a batch file that can in turn call Ant to perform a build for your environment.

Figure 16-4. The Scheduled Tasks application on the Windows platform

figs/jstr_1604.gif

The amount of control that you have over the time intervals is not as granular as it is on the Unix platform. However, it is sufficient enough to kick off daily builds at a certain time. See the Windows documentation for your specific version for more details.

Part of automating your build environment is pulling the source files from the source code repository and compiling them. Most source control systems, such as Clear Case, CVS, and PVCS, have a command-line API to pull source files in a read-only mode in order to compile them. Using Java and Ant, this part of the automation process is pretty straightforward.