You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by ge...@apache.org on 2006/07/11 08:34:55 UTC
svn commit: r420741 - in /incubator/harmony/enhanced/buildtest: ./ trunk/
trunk/README.txt trunk/build.xml trunk/config/ trunk/config/README.txt
trunk/config/config-full.xml
Author: geirm
Date: Mon Jul 10 23:34:54 2006
New Revision: 420741
URL: http://svn.apache.org/viewvc?rev=420741&view=rev
Log:
first basic shot at setup for ci using
cruise control. Has a small problem on
windows wrt doing an "ant setup" that
completes - fails in the svn co, although
the svn co targets can be run separately
Added:
incubator/harmony/enhanced/buildtest/
incubator/harmony/enhanced/buildtest/trunk/
incubator/harmony/enhanced/buildtest/trunk/README.txt (with props)
incubator/harmony/enhanced/buildtest/trunk/build.xml (with props)
incubator/harmony/enhanced/buildtest/trunk/config/
incubator/harmony/enhanced/buildtest/trunk/config/README.txt (with props)
incubator/harmony/enhanced/buildtest/trunk/config/config-full.xml (with props)
Added: incubator/harmony/enhanced/buildtest/trunk/README.txt
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/buildtest/trunk/README.txt?rev=420741&view=auto
==============================================================================
--- incubator/harmony/enhanced/buildtest/trunk/README.txt (added)
+++ incubator/harmony/enhanced/buildtest/trunk/README.txt Mon Jul 10 23:34:54 2006
@@ -0,0 +1,86 @@
+
+Build-Test Intfrastructure
+==========================
+
+This is the build/test infrastructure to help continually test
+the Apache Harmony project.
+
+Prereguisites
+-------------
+Basically, you need the tools needed to build the Apache Harmony
+components, like Java, Ant, C/C++ compilers, etc. Please see
+the other parts of the project for information on the necessary
+toolchains. You need the following as the bare minimum to get
+CI up and working.
+
+1) Java JDK v5
+
+2) Apache Ant : http://ant.apache.org/ Please get the
+ latest release (1.6 or better) and install
+ as per project intstructions.
+
+3) Subversion client : http://subversion.tigris.org
+
+To Setup
+--------
+
+1) Get the /harmony/enhanced/buildtest/ part of the Apache
+ Harmony project. If you are reading this, you either have
+ it via a zip or tgz, or have checked it out from the project
+ Subversion repository. In the event that you don't have it
+ you can get it via subversion :
+
+ svn co https://svn.apache.org/repos/asf/incubator/harmony/enhanced/buildtest/trunk
+
+2) With Java, Ant and SVN installed, change into the buildtest/trunk
+ directory and type
+
+ ant setup
+
+ This should fetch CruiseControl, set it up with the Apache Harmony
+ configuration, and checkout the software to be built and tested
+ from Apache Harmony.
+
+3) If you wish to have the tests run successfully, you need to do the
+ following manual steps for now :
+
+ - build the classlib to create the deploy/jdk tree in classlib, first
+ fetching the dependencies
+
+ cd cc/projects/classlib/trunk
+ ant fetch-depends
+ ant
+
+ - get the appropriate IBM J9 VM for your platform (this will go
+ away when DRLVM is good enough
+
+ http://www-128.ibm.com/developerworks/java/jdk/harmony/index.html
+
+ - unpack the above-fetched J9 distribution into the jdk directory (as
+ the distro assumes it's dropped into the jdk directory...)
+
+ cd cc/projects/classlib/trunk/deploy/jdk/
+ tar zxf Harmony-vme-linux.IA32-v3.tar.gz
+
+To kickoff CruiseControl, just type :
+
+ ant
+
+ in buildtest/trunk and that will launch CC with the full test set.
+
+ To check status, point your browser to
+
+ http://localhost:8080/
+
+
+ To Do
+ -----
+
+ 1) Configure CC to send mail to Apache mail lists on transitions
+
+ 2) Setup defaultcc.properties and personal buildcc.properties
+
+ 3) Integrate JAPI tool
+
+ 4) Integrate X tool
+
\ No newline at end of file
Propchange: incubator/harmony/enhanced/buildtest/trunk/README.txt
------------------------------------------------------------------------------
svn:eol-style = native
Added: incubator/harmony/enhanced/buildtest/trunk/build.xml
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/buildtest/trunk/build.xml?rev=420741&view=auto
==============================================================================
--- incubator/harmony/enhanced/buildtest/trunk/build.xml (added)
+++ incubator/harmony/enhanced/buildtest/trunk/build.xml Mon Jul 10 23:34:54 2006
@@ -0,0 +1,142 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright 2006 The Apache Software Foundation or its licensors, as applicable
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<project name="buildtestinfra" default="default" basedir=".">
+
+ <description>
+ CI/built/test system for Apache Harmony
+ http://incubator.apache.org/harmony
+ </description>
+
+ <!-- files we need -->
+ <property name="cc.filename" value="cruisecontrol-bin-2.5" />
+ <property name="junitjar.filename" value="ant-junit-1.6.5" />
+
+ <!-- where to fetch from -->
+ <property name="cc.location" value="http://umn.dl.sourceforge.net/sourceforge/cruisecontrol/" />
+ <property name="junitjar.location" value="http://www.ibiblio.org/maven/ant/jars/"/>
+
+ <!-- where to assemble all the pieces -->
+ <property name="target.dir" value="cc"/>
+
+ <!-- url of the classlib and drlvm in SVN -->
+ <property name="svn.classlib.url" value="https://svn.apache.org/repos/asf/incubator/harmony/enhanced/classlib/trunk"/>
+ <property name="svn.drlvm.url" value="https://svn.apache.org/repos/asf/incubator/harmony/enhanced/drlvm/trunk"/>
+
+ <condition property="is.windows">
+ <os family="Windows" />
+ </condition>
+
+ <!-- ==========================================
+ Kick off CC w/ all tests
+ ========================================== -->
+ <target name="default" description="Start CruiseControl with full test suite" depends="pre-copy,start-win,start-other">
+ </target>
+
+ <target name="pre-copy">
+ <echo>Copying full test configuration for CruiseControl from /config/config-full.xml</echo>
+ <copy file="config/config-full.xml" tofile="${target.dir}/config.xml" />
+
+ </target>
+
+ <target name="start-win" if="is.windows">
+ <exec executable="cmd" dir="${target.dir}">
+ <arg line="cruisecontrol.bat"/>
+ </exec>
+ </target>
+
+ <target name="start-other" unless="is.windows">
+ <exec executable="sh" dir="${target.dir}">
+ <arg line="cruisecontrol.sh"/>
+ </exec>
+ </target>
+
+ <!-- ==========================================
+ Main setup - download, unpack, checkout
+ ========================================== -->
+ <target name="setup" description="fetch and setup build/test/ci system">
+
+ <!-- get the version of CruiseControl unless we have the zip locally -->
+
+ <get src="${cc.location}${cc.filename}.zip"
+ dest="${cc.filename}.zip"
+ usetimestamp="true"
+ verbose="true" />
+
+ <get src="${junitjar.location}${junitjar.filename}.jar"
+ dest="${junitjar.filename}.jar"
+ usetimestamp="true"
+ verbose="true" />
+
+ <!-- unzip it, rename, add ant-junit jar and cleanout the junk -->
+
+ <unzip src="${cc.filename}.zip" dest="." />
+
+ <move file="${cc.filename}" tofile="${target.dir}"/>
+
+ <delete dir="${target.dir}/projects/connectfour" includeEmptyDirs="true" verbose="false"/>
+ <delete dir="${target.dir}/logs/connectfour" includeEmptyDirs="true" verbose="false"/>
+ <delete file="${target.dir}/config.xml"/>
+
+ <!-- copy the ant-junit jar to cc/lib -->
+
+ <copy file="${junitjar.filename}.jar" todir="${target.dir}/lib"/>
+
+ <!-- copy the config we want to use, and make target dirs for the checkouts -->
+ <copy file="config/config-full.xml" tofile="${target.dir}/config.xml" />
+
+ <mkdir dir="${target.dir}/projects/classlib"/>
+ <mkdir dir="${target.dir}/projects/drlvm"/>
+
+ <!-- now do the checkouts -->
+
+ <antcall target="co-classlib"/>
+ <antcall target="co-drlvm"/>
+ </target>
+
+ <!-- ================================================
+ Checkout classlib trunk tree into place for CC
+ ================================================ -->
+ <target name="co-classlib">
+ <echo>Checking out Harmony classlib. This can take a while. Please be patient...</echo>
+
+ <exec executable="svn" dir="${target.dir}/projects/classlib" failonerror="true">
+ <arg line="co"/>
+ <arg line="${svn.classlib.url}"/>
+ </exec>
+ </target>
+
+ <!-- ================================================
+ Checkout DRLVM trunk tree into place for CC
+ ================================================ -->
+ <target name="co-drlvm">
+ <echo>Checking out Harmony DRLVM. This can take a while. Please be patient...</echo>
+
+ <exec executable="svn" dir="${target.dir}/projects/drlvm" failonerror="true">
+ <arg line="co"/>
+ <arg line="${svn.drlvm.url}"/>
+ </exec>
+ </target>
+
+ <!-- =========================================================
+ cleanup to new state. Leaves the .zip around to save
+ time on a setup
+ ========================================================= -->
+ <target name="clean" description="reset to clean state">
+ <delete dir="${target.dir}" includeEmptyDirs="true"/>
+ </target>
+</project>
\ No newline at end of file
Propchange: incubator/harmony/enhanced/buildtest/trunk/build.xml
------------------------------------------------------------------------------
svn:eol-style = native
Added: incubator/harmony/enhanced/buildtest/trunk/config/README.txt
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/buildtest/trunk/config/README.txt?rev=420741&view=auto
==============================================================================
--- incubator/harmony/enhanced/buildtest/trunk/config/README.txt (added)
+++ incubator/harmony/enhanced/buildtest/trunk/config/README.txt Mon Jul 10 23:34:54 2006
@@ -0,0 +1,7 @@
+This is the source configuration for the buildtest
+part of Apache Harmony. These resources are
+copied to where needed. In the event you wish to
+change this resource, please change in this directory
+and re-run 'ant setup'.
+
+
Propchange: incubator/harmony/enhanced/buildtest/trunk/config/README.txt
------------------------------------------------------------------------------
svn:eol-style = native
Added: incubator/harmony/enhanced/buildtest/trunk/config/config-full.xml
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/buildtest/trunk/config/config-full.xml?rev=420741&view=auto
==============================================================================
--- incubator/harmony/enhanced/buildtest/trunk/config/config-full.xml (added)
+++ incubator/harmony/enhanced/buildtest/trunk/config/config-full.xml Mon Jul 10 23:34:54 2006
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<cruisecontrol>
+
+ <project name="classlib-deps">
+
+ <listeners>
+ <currentbuildstatuslistener file="logs/${project.name}/status.txt"/>
+ </listeners>
+
+ <bootstrappers>
+ <svnbootstrapper localWorkingCopy="projects/classlib/trunk" />
+ </bootstrappers>
+
+ <modificationset quietperiod="60">
+ <svn localWorkingCopy="projects/classlib/trunk"/>
+ </modificationset>
+
+ <schedule interval="300">
+ <ant antWorkingDir="projects/classlib/trunk" target="fetch-depends"/>
+ </schedule>
+
+ <log>
+ <merge dir="projects/${project.name}/target/test-results"/>
+ </log>
+ </project>
+
+ <project name="classlib">
+
+ <listeners>
+ <currentbuildstatuslistener file="logs/${project.name}/status.txt"/>
+ </listeners>
+
+ <bootstrappers>
+ <svnbootstrapper localWorkingCopy="projects/${project.name}/trunk" />
+ </bootstrappers>
+
+ <modificationset>
+ <buildstatus logdir="logs/classlib-deps"/>
+ </modificationset>
+
+ <schedule interval="300">
+ <ant antWorkingDir="projects/${project.name}/trunk" />
+ </schedule>
+
+ <log>
+ <merge dir="projects/${project.name}/target/test-results"/>
+ </log>
+
+ </project>
+
+ <project name="classlib-tests">
+
+ <listeners>
+ <currentbuildstatuslistener file="logs/${project.name}/status.txt"/>
+ </listeners>
+
+ <bootstrappers>
+ <svnbootstrapper localWorkingCopy="projects/classlib/trunk" />
+ </bootstrappers>
+
+ <modificationset>
+ <buildstatus logdir="logs/classlib"/>
+ </modificationset>
+
+ <schedule interval="300">
+ <ant target="test" antWorkingDir="projects/classlib/trunk">
+ <jvmarg arg="-Xmx384M"/>
+ </ant>
+ </schedule>
+
+ <log>
+ <merge dir="projects/${project.name}/target/test-results"/>
+ </log>
+
+ </project>
+
+ <project name="drlvm-deps">
+
+ <listeners>
+ <currentbuildstatuslistener file="logs/${project.name}/status.txt"/>
+ </listeners>
+
+ <bootstrappers>
+ <svnbootstrapper localWorkingCopy="projects/drlvm/trunk" />
+ </bootstrappers>
+
+ <modificationset quietperiod="30">
+ <buildstatus logdir="logs/classlib"/>
+ <svn localWorkingCopy="projects/drlvm/trunk"/>
+ </modificationset>
+
+ <schedule interval="300">
+ <exec command="sh" args="build.sh update" workingdir="projects/drlvm/trunk/build" />
+ </schedule>
+
+ <log>
+ <merge dir="projects/${project.name}/target/test-results"/>
+ </log>
+
+ </project>
+
+ <project name="drlvm">
+
+ <listeners>
+ <currentbuildstatuslistener file="logs/${project.name}/status.txt"/>
+ </listeners>
+
+ <bootstrappers>
+ <svnbootstrapper localWorkingCopy="projects/${project.name}/trunk" />
+ </bootstrappers>
+
+ <modificationset quietperiod="30">
+ <buildstatus logdir="logs/drlvm-deps"/>
+ <svn localWorkingCopy="projects/${project.name}/trunk"/>
+ </modificationset>
+
+ <schedule interval="300">
+ <exec command="sh" args="build.sh" workingdir="projects/drlvm/trunk/build" />
+ </schedule>
+
+ <log>
+ <merge dir="projects/${project.name}/target/test-results"/>
+ </log>
+
+ </project>
+
+ <project name="drlvm-tests">
+
+ <listeners>
+ <currentbuildstatuslistener file="logs/${project.name}/status.txt"/>
+ </listeners>
+
+ <bootstrappers>
+ <svnbootstrapper localWorkingCopy="projects/drlvm/trunk" />
+ </bootstrappers>
+
+ <modificationset quietperiod="30">
+ <buildstatus logdir="logs/drlvm"/>
+ <svn localWorkingCopy="projects/drlvm/trunk"/>
+ </modificationset>
+
+ <schedule interval="300">
+ <exec command="sh" args="build.sh test" workingdir="projects/drlvm/trunk/build" />
+ </schedule>
+
+ <log>
+ <merge dir="projects/${project.name}/target/test-results"/>
+ </log>
+
+ </project>
+
+</cruisecontrol>
Propchange: incubator/harmony/enhanced/buildtest/trunk/config/config-full.xml
------------------------------------------------------------------------------
svn:eol-style = native