Firefox builds: from checkin to Treeherder

A developer checks in code to hg.mozilla.org using mercurial.

Buildbot is polling the hg pushlog for each of the code repositories we do builds for using an HgPoller.

When the poller detects the new push, the information about the change is written into the Scheduler Database for later processing by the buildbot schedulers.

Once the schedulers have detected a new change and created new build requests, the jobs are now pending on Treeherder. At this point we may start or create new VMs in the cloud to service this pending work.

Once the job starts, it is now considered a running job on Treeherder.

When the job finishes, the log of all its output is collected by postrun.py, and uploaded to FTP. The Status Database is then updated with the job’s final status. It is now considered finished jobs on Treeherder.

Note that because there are several asynchronous processes at play here, a job can disappear from the running list before it appears in the finished list.