DeadlockMachineAdmin
Administration of deadlock.netbeans.org
See also: DeadlockMachine
Use port 222 for SSH by adding to /etc/ssh/ssh_config:
Host deadlock.netbeans.org Port 222
Commit triggers
Now disabled.
- commits to netbeans.org CVS trigger commit mail
- first sent to cvs@module.netbeans.org
- hopefully this alias' subscription list always contains nbcvs@netbeans.org
- you may need to ensure this for newly created projects!
- to make sure all projects have it, run: subscribe-nbcvs_DeadlockMachineAdmin username password
- nbcvs@deadlock.nbextras.org is a subscriber
- /etc/aliases causes this to run /hudson/nbcvs as hudson
- /hudson/nbcvs is a script to manage commit triggers
- logs go to /hudson/nbcvs.log so you can ssh ... tail -200f /hudson/nbcvs.log to debug
- module(s) and optional branch info are extracted from mail message
- "module" here means CVS top-level module / SourceCast project, not NB module project!
- if branch matches a Hudson project and >=1 affected modules are in its checkout, then that project is scheduled to be built
- for trunk commit, trunk and nbms-and-javadoc projects are scheduled to be built, if >=1 affected module is in its checkout
- first cvsup is run in "fast" mode on affected modules only
- if cvsup is already running from another commit, will queue them up to make sure repo contains this commit's changes before scheduling project to be built
- OpenGrok is also triggered for trunk commits
CVSup
- /cvsup contains a CVSup mirror of cvs.netbeans.org:/cvs
- controlled by /cvsup/supfile
- actual data in /cvsup/nb_all
- owned by user hudson
- normally locked by /cvsup/etc/lock,
but CVSROOT/history updates locked by /cvsup/etc/lock-history
- besides commit triggers, also run daily (check: crontab -l)
(now disabled)
Hudson
- Hudson admins can create new projects to build easily
- choose project name = Hg clone name if possible
- you can copy an existing project for quicker set-up
- the first time your project is built, Hudson will do a full checkout; after that, update only
- we run Ant explicitly (i.e. choose Shell Command option)
- Java, Ant in path; /opt/java is JDK 5, /opt/jdk6 also available
- build trigger section should use Hg polling
- if possible, keep any nontrivial commands to run the build in nb.org Hg in nbbuild/hudson
- trunk build has some special features
- commit verification/validation always run
- note that commit validation is unreliable: fails sporadically
- separate project tries to build API Javadoc, NBMs, and JNLP too
- this is currently disabled from commit triggers for performance reasons; still runs 3x daily
- to keep Hudson up to date:
- monitor Hudson news
- when a new plugin we use is released, download it from Manage Plugins; after that, or a new version of Hudson is available, click Prepare for Shutdown
- when idle, run: ssh hudson@deadlock.netbeans.org /hudson/upgrade.sh
- OK to run >1 project at a time even if they use commit validation: each should be run in its own Xvnc display (see project config page)
- Monitoring Hudson is easy.
- To look at the log of a running build in real time:
ssh hudson@deadlock.netbeans.org taillog nbms-and-javadoc
OpenGrok
Currently broken.
- lives in /opengrok/
- Just plain installation, no special config yet. This means committers names' are linked back to OpenSolaris site. Will fix later.
- Only did a tiny patch in the RCS parser lib used by OpenGrok to work around stupidities we have in our CVS repository like slash in tagnames.
- ctags is not the best way to do xref for java files, it creates hyperlinks even for "extends"
- OpenGrok indexes only modules in the standard NetBeans module set, ie no uml, no bpel, it runs over the hudson workspace dir *after* the builds. Even build products like class files are indexed. We need to adjust the "clean" target to clean those working files but keep the end products (zip, javadoc, xtest results) and "real-clean" to clean everything. Or do something else because running "clean" at the end of each hudson build would spoil incremental builds
- It's fast, really fast
FishEye / Crucible
Disabled.
- lives in /fisheye/
- dependent on regular updates of /cvsup/nb_all/CVSROOT/history
- Custom Authenticator using netbeans.org website login to authenticate users
Sorcerer
A Java source browser. See /sorcerer (run on a cron job).
Broken.
Lighttpd
The delegating web server.
Needs to have its logs set up to autorotate - they get huge! Trung suggests:
- change the log verbosity to CRIT
- remove the date based file naming
- set up log rotate, see /etc/logrotate.d/* for inspiration
Attachments

