Roughly speaking, a {@link Build} goes through the following stages:
SCM checkout
Hudson decides which directory to use for a build, then the source code is checked out
Pre-build steps
Everyone gets their {@link BuildStep#prebuild(AbstractBuild,BuildListener)} invokedto indicate that the build is starting
Build wrapper set up
{@link BuildWrapper#setUp(AbstractBuild,Launcher,BuildListener)} is invoked. This is normallyto prepare an environment for the build.
Builder runs
{@link Builder#perform(AbstractBuild,Launcher,BuildListener)} is invoked. This is wherethings that are useful to users happen, like calling Ant, Make, etc.
Recorder runs
{@link Recorder#perform(AbstractBuild,Launcher,BuildListener)} is invoked. This is normallyto record the output from the build, such as test results.
Notifier runs
{@link Notifier#perform(AbstractBuild,Launcher,BuildListener)} is invoked. This is normallyto send out notifications, based on the results determined so far.
And beyond that, the build is considered complete, and from then on {@link Build} object is there tokeep the record of what happened in this build.
@author Kohsuke Kawaguchi
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.