Jump to: navigation, search

Common Build Infrastructure/Virtual Server Setup/MacOSX

This page documents how http://buildbox/ was set up for use in EclipseCon 2009's Hands-On: Using the new Common Builder for Push-Button PDE Builds tutorial.

Acquire virtual server image

  • depending on where you are on the planet, this may be considered illegal. You could also create your own image using VMWare Converter.
  • the details below apply to the "deadmoo" Mac OS X 10.4.1 image; using something newer, YMMV

Install software

  • find a terminal under ..., and drag it into the desktop or launcher bar for convenience.
  • Open Safari and go to connect.apple.com; register for a ADC account so you can get a copy of Java 5. You can also try Apple Menu > Software Updates, but that didn't work for me.

+ open a terminal, run as root

yum install -y ant-contrib
file /usr/share/java/ant-contrib.jar

+ open a terminal, run as root

yum install -y java-1.6.0-openjdk-devel cvs svn perl curl wget Xvfb vnc vnc-server 

+ restart (can run the following as root)

shutdown -r now

Configure Hudson to start automatically

+ as root, run the following to fetch the latest Hudson

mkdir -p /opt/hudson; cd /opt/hudson; wget https://hudson.dev.java.net/files/documents/2402/128546/hudson.jar

+ create the file /etc/init.d/hudson -- do NOT forget the "&" or your system will hang on restart!

#/bin/bash
# chkconfig: 2345 20 80
# description: runs Hudson
java -jar /opt/hudson/hudson.jar &

+ as root, run

chkconfig --add hudson; chkconfig --level 2345 hudson on
chmod 755 /etc/init.d/hudson
/etc/init.d/hudson &

+ once started, open firefox or from console

links http://localhost:8080/

+ restart (can run the following as root)

shutdown -r now

+ if anything goes wrong, hit F2 on reboot to enter grub menu, and add "single" to the grub commands to start in the single-user, networkless runlevel mode [1].

+ on restart, verify Hudson is started by opening the above URL

Run a build in Eclipse

+ fire up Eclipse 3.4.2, fetch o.e.d.c.releng project from :pserver:anonymous@dev.eclipe.org:/cvsroot/technology/org.eclipse.dash/athena/org.eclipse.dash.commonbuilder/org.eclipse.dash.common.releng

+ fetch gef.releng and basebuilder M5 via pcf file in org.eclipse.dash.common.releng/pcf

+ open gef.releng, configure build.properties to correct java and Eclipse platform settings. For example

dependencyURLs=http://download.eclipse.org/eclipse/downloads/drops/S-3.5M5-200902021535/eclipse-SDK-3.5M5-linux-gtk.tar.gz (or -ppc, or -x86_64, etc.)

JAVA_HOME=/usr/lib/jvm/java
JAVA14_HOME=/usr/lib/jvm/java
JAVADOC14_HOME=/usr/lib/jvm/java/bin

+ select build.xml, right-click and Run as > Ant Build

+ to kill a bad build in progress, open a terminal and run

pkill -f N200903

Run a build in Hudson

+ open http://localhost:8080, click New Job + select 'free-style software project' + configure a job that runs the following script

export BUILDTYPE="${BUILDTYPE}"
export EXTRAFLAGS="-javaHome /usr/lib/jvm/java ${EXTRAFLAGS}"
. /home/builduser/workspace/org.eclipse.dash.common.releng/hudson/gef-3.5.x-nightly.sh

+ define two build parameters

BUILDTYPE (default value N, a nightly build)
EXTRAFLAGS (default value blank, no extra flags

+ save the configuration, then click Build Now to start a build

+ see also a sample config.xml which stores the UI configuration, and build.eclipse.org's gef-3.5.x-nightly config.xml

Remote Access

+ set up the VBox instance to use BOTH Host Interface (192.168.2.*) and NAT (10.0.2.*). For more on NAT, see this blog

+ Host Interface

+ access the vserver via SSH on :22, or the Hudson web service on :8080

+ to save memory, edit /etc/inittab so that the server will start on runlevel 3 (text login) instead of 5 (graphical login, with X started)