Birds Eye View - Goals
- Run against the latest stable buildbot release
- Only need 2 open ports (HTTP and buildbot port)
- Integrate with jhbuild - make it as easy as possible to run slaves
- Buildbot scripts are shipped with jhbuild
- Buildbot and twisted dependencies are installed via jhbuild
- Land the jhbuildbot branch at trunk/jhbuild/buildbot/*
- Land jhbuild integration at trunk/jhbuild/commands/buildbot.py
- For slaves, do best to autogenerate some config from jhbuild information.
- For master, we can take care of poking master.cfg manually.
jhbuildbot_type = 'master' jhbuildbot_prefix = '/home/john/buildbot/'
- Need configuration for:
- Master or slave
- Where to find the buildbot/twisted dependencies
- A work area (where the .tac and builddir goes)
- Exisiting jhbuild config is used for:
- The prefix and src folders
- Data pushed from the server is used for:
- The moduleset and modules to build
Suggested folder layout
- src/ (source code for buildbot deps and gnome projects)
- environment/ (installed buildbot dependencies)
- install/ (installed gnome projects)
- builddir/ (created by buildbot)
Hopefully the buildbot.tac and master.cfg and friends can be kept in jhbuild folder, so that we can upgrade with just an svn up on jbhuild.
New JHBuild commands
Creating a new 'instance'
- Install dependancies
- Create working directories
jhbuild bot --setup
Starting an instance
- Run 'make start' but with correct PYTHONPATH foo
- Should have an option to run in foreground?
jhbuild bot --start
Stopping an instance
- Run the 'make stop' but with correct PYTHONPATH foo
jhbuild bot --stop
Watching the log of an instance
- Run the 'make log' but with correct PYTHONPATH foo
jhbuild bot --log
Reload an instance (to pick up new slaves/projects)
- Run the 'make reconfig' but with correct PYTHONPATH foo
- TODO: reconfig might be a no-op on a slave
jhbuild bot --reconfig