ReleaseEngineering/Applications: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
Line 39: Line 39:
interfaces. The self-serve agent is started via init, and monitored via
interfaces. The self-serve agent is started via init, and monitored via
nagios.
nagios.
To modify the list of branches supported by buildapi and self-serve, read [[ReleaseEngineering/BuildAPI#Maintenance]]


=== Setup Instructions ===
=== Setup Instructions ===

Revision as of 15:09, 25 February 2011

RelEng App Store

build masters

we have lots!

canonical list is supposed to be http://hg.mozilla.org/build/tools/raw-file/default/buildfarm/maintenance/production-masters.json

source for buildbot is at http://hg.mozilla.org/build/buildbot/

clobberer

https://build.mozilla.org/clobberer/ and https://build.mozilla.org/stage-clobberer

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

DB is a sqlite file local to the web server

buildapi

includes self-serve, wait time reports, pending/running

Source Code

http://hg.mozilla.org/build/buildapi

Public Interfaces

https://build.mozilla.org/buildapi

Current Setup

production instance is running on cruncher.b.m.o out of ~catlee/buildapi-official. There is a cron job that checks for new changes every 5 minutes and deploys them. This instance is exposed to the public behind LDAP auth via the build.m.o url.

The buildapi instance communicates with a rabbitmq server also running on cruncher. It also connects to two read-only databases (schedulerdb, statusdb) on a slave mysql host maintained by IT.

The self-serve agent, which is responsible for performing many of the job requests, is running on production-master03 out of ~cltbld/buildapi. It is a long-running process that waits for messages from the rabbitmq server on cruncer, and then makes various DB modifications or pokes at masters' web interfaces. The self-serve agent is started via init, and monitored via nagios.

To modify the list of branches supported by buildapi and self-serve, read ReleaseEngineering/BuildAPI#Maintenance

Setup Instructions

Described at ReleaseEngineering/BuildAPI

slavealloc

See User:Djmitche/Slave Allocator Proposal for now.

regression detection

code is http://hg.mozilla.org/graphs/file/9c02347596b4/server/analysis

runs on cruncher via cronjob under catlee's account from ~/graphs/server/analysis

deployment questions

  • what languages are needed and their version
    • if python, what python modules - can they be run in a virtualenv
    • if perl, what cpan modules are needed
    • if php, what php version and what php.ini entries are needed
  • what is the command line parameters to start the web service
  • does it have any special configuration or init files
  • does it require root or sudo
  • does it require a special directory layout
  • will it generate/use temp files or non-database assets?
  • what version of mysql and what database config, where is the sql to init the tables
  • does memcached have a min/max memory? which processes read/write to it - can it be on different IP
  • what ports will be opened for listening
  • cronjobs that need to be run
  • if outside services are utilized, what is that list

maintenance questions

  • what are common issues we run into, and how to debug?
    • place in buildduty docs?
  • where is the code/schema for hacking/reading?
  • are there special passwords/accounts/acl's, and what are they? (not in public docs)