ReleaseEngineering/Applications/Clobberer: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(Undo revision 1023788 by Mrrrgn (talk))
Line 20: Line 20:


= Requirements =
= Requirements =
Python + Pip
* MySQL server (SQLite is also possible, but we are using MySQL in production and staging)
* PHP and Apache


= Resources =
= Resources =

Revision as of 14:08, 9 October 2014

Application Description

The clobberer allows developers to "clobber" particular build directories (objdirs) on particular slaves. This is sometimes necessary if a change is committed that is not compatible with previous objdirs, or occasionally when a compile failure results in a bogus objdir.

The application has an outward-facing web interface for developers, and also provides an internal web service which buildslaves contact to determine what build directories they should clobber.

There are several vhosts involved here:

  • API
   * http://clobberer.pvt.build.mozilla.org - production API
   * http://clobberer-preproduction.pvt.build.mozilla.org - preproduction API
   * http://clobberer-stage.pvt.build.mozilla.org - staging API
  • UI
   * production
       * http://clobberer.pub.build.mozilla.org - http 302
       * https://secure.pub.build.mozilla.org/clobberer - https
   * staging
       * http://clobberer-stage.pub.build.mozilla.org - http 302
       * https://secure.pub.build.mozilla.org/clobberer-stage - https for UI (staging)

Requirements

  • MySQL server (SQLite is also possible, but we are using MySQL in production and staging)
  • PHP and Apache

Resources

Security

Clobberer uses the LDAP username verified and supplied by Apache, with some users having slightly elevated priviledges (the ability to clobber release jobs).

Testing/Updating

Basic patch testing can be done on cruncher which has netflows open to the database server. Run clobberer's index.php from the command-line and pass parameters to the script by temporarily pasting this snippet above the first include statement:

/* if started from commandline, wrap parameters to $_POST and $_GET */
if (!isset($_SERVER["HTTP_HOST"])) {
  parse_str($argv[1], $_GET);
  parse_str($argv[1], $_POST);
}

And run the script like so:

$ php index.php 'branch=mozilla-inbound'

Redirect STDOUT to a file and compare before/after output and script timings to ensure your changes run as expected. Attach a patch to a bug, get review, and proceed to mana page for deployment instructions.

More

See the websites page