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.
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.
|
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.
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.
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.
|