ReleaseEngineering/Applications/Clobberer

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.

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

Monitoring

At the moment, clobberer is not monitored.

Deployment

Clobberer is installed in /var/www/html/build/clobberer/ on dm-wwwbuild01. Its contents are just an index.php and a credentials file for the database access. Its public URL is https://build.mozilla.org/clobberer/ and staging is https://build.mozilla.org/stage-clobberer.

Cleanup Crontab

As of bug 666282, periodic db maintenance is handled by cleanup.php, which is invoked via the CLI SAPI (php on the command line) from a crontab. Authentication is via a simple shared secret.

Development

Source is at http://hg.mozilla.org/build/tools/file/default/clobberer

Tests for clobberer are in test_clobberer.py in the same directory as index.php.