Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Common Build Infrastructure/Virtual Server Setup/Fedora
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.
Contents
Create virtual server image
- create 30G extensible virtual disk for use with Virtual Box
- VirtualBox recommends no more than 256M vram, but you need more or you get java.io.IOException: error=12, Cannot allocate memory when running tests
- Hudson-based GEF 3.5 build ran OK with 640M (111 tests, including UI tests)
- install Fedora from iso, eg., 130M network install image [1]) (other mirrors)
- unmount .iso image; mount Virtual Box additions image instead
- restart when prompted
Install software
- right-click empty desktop and find
Applications > System Tools > Thunar File Manager Applications > System Tools > LXTerminal (or Terminal) Applications > Programming > Eclipse
- fire up Thunar, mount VBOXADDITIONS drive
- open a terminal, run as root
yum install -y yum-fastestmirror yum install -y kernel kernel-devel kernel-headers cd /media/VBOXADDITIONS*; ./VBoxLinuxAdditions-x86.run
- fire up Thunar, unmount VBOXADDITIONS drive
- 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.war
mkdir -p /opt/hudson; cd /opt/hudson; wget http://hudson.gotdns.com/latest/hudson.war
- 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.war &
- 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 [2].
- on restart, verify Hudson is started by opening the above URL
Run a build in Eclipse
- fire up Fedora Eclipse, 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
- 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)