ReleaseEngineering/Applications/Clobberer

From MozillaWiki
Jump to navigation Jump to search

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 wget in cleanup-clobberer.sh. Authentication is via a simple shared secret (at worst, someone with the password can clean the database more frequently - but DOSing clobberer is not nearly that hard!). That script is run from a crontab, although exactly how that works is not yet determined.

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.