User:Rhelmer:Migrating Tinderbox to Buildbot: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
No edit summary
(longer term buildbot ideas)
Line 1: Line 1:
=Shorter term=
Short-term it's probably best to keep Tinderbox server in place, with Buildbot reporting to it, until we get the [[User:Rhelmer:Buildbot/Tinderbox server parity|Buildbot/Tinderbox server parity]] issues figured out.
Short-term it's probably best to keep Tinderbox server in place, with Buildbot reporting to it, until we get the [[User:Rhelmer:Buildbot/Tinderbox server parity|Buildbot/Tinderbox server parity]] issues figured out.


Line 26: Line 27:


We need #1 and #2 done for release automation anyway, #3 and #4 are trivial.
We need #1 and #2 done for release automation anyway, #3 and #4 are trivial.
=Longer Term=
Long-term we can have Buildbot drive the process at a lower level.
The process should be something like:
7 builders total:
* Source (checks out using timestamp, creates tarball)
* (Linux/Mac/Windows)-(Clobber/Depend)
Clobber builds are triggered by the nightly scheduler (or manually) and do the following:
# Source builder creates and uploads source tarball
# (Linux/Mac/Windows)-Clobber builders
## download source, unpack
## configure
## make package
## build crashreporter
## create full MAR
## upload package, symbols, MAR
Depend builds are triggered by checkins (e.g. using BonsaiPoller) (or manually) and do the following;
# (Linux/Mac/Windows)-Depend builders
## update existing source checkout
## configure
## make package
## upload package

Revision as of 05:24, 12 November 2007

Shorter term

Short-term it's probably best to keep Tinderbox server in place, with Buildbot reporting to it, until we get the Buildbot/Tinderbox server parity issues figured out.

On the client side, we have been working on automating the release process using Bootstrap driven by Buildbot; making this system work for Nightly(Clobber) and Depend builds should be fairly trivial.

Bootstrap's "Build" and "Repack" (l10n) steps currently just call into Tinderbox client, but we mitigate a lot of Tinderbox's problems. We should eventually take it out, but it will be much easier when it's encapsulated into these "steps" instead of our current situation (Tinderbox does everything).

Replace what we have, get the following "for free":

  • only build on checkin for Depend
  • produce full l10n set with nightly
  • better logging/error checking

What we need to get there:

  1. buildbot master set up
  2. buildbot slaves on Mozilla1.8 and Firefox tinderboxes
  3. nightly timer scheduler
  4. bonsai change scheduler

Depend build scheduler does:

  • Build

Nightly build scheduler does:

  • Build
  • Repack
  • Update

We need #1 and #2 done for release automation anyway, #3 and #4 are trivial.

Longer Term

Long-term we can have Buildbot drive the process at a lower level.

The process should be something like:

7 builders total:

  • Source (checks out using timestamp, creates tarball)
  • (Linux/Mac/Windows)-(Clobber/Depend)

Clobber builds are triggered by the nightly scheduler (or manually) and do the following:

  1. Source builder creates and uploads source tarball
  2. (Linux/Mac/Windows)-Clobber builders
    1. download source, unpack
    2. configure
    3. make package
    4. build crashreporter
    5. create full MAR
    6. upload package, symbols, MAR

Depend builds are triggered by checkins (e.g. using BonsaiPoller) (or manually) and do the following;

  1. (Linux/Mac/Windows)-Depend builders
    1. update existing source checkout
    2. configure
    3. make package
    4. upload package