SDA SE Wiki

Software Engineering for Smart Data Analytics & Smart Data Analytics for Software Engineering

User Tools

Site Tools


Cultivate Automatic Build

Cruise Control

We use CruiseControl 2.7.1 to execute automatic builds. The build instance of CruiseControl is located at tampomud.iai.uni-bonn.de. Two build jobs are configured for Cultivate:

  • cultivate
  • cultivate-release

The job cultivate does our integration builds upon commited changesets. This job publishes the build result as cultivate.txt for the traffic light. The other job, cultivate-release is used for release builds and publishes the generated update site. The working directory of CruiseControl is L:/Work/cc_build, both jobs have a appropriate subdirectory (cvt_34, cvt_34_release).

Current stable configuration is stored here and needs to be added to SVN, maybe have CruiseControl checkout his own configuration?

Pluginbuilder

Cultivate uses the pluginbuilder Eclipse Plug-In to create automatic builds. The build files are contained in the CCCultivate project. All files in the project have been automatically generated by pluginbuilder. The main configuration of the builds is done in the graphical editor of the pluginbuilder.config file. We have defined two releases there:

  • HEAD is executed on each checkin as integration build. The traffic light is controlled by this build.
  • release is executed on checkin of release/release.properties, i.e. when changing the version number it will automatically build a new release and upload it to the update site.

Since automatically created build scripts did not work out of the box we changed the following files, a working version of those can be found in Revision 862:

  • build.xml:
    • The main-cc target was changed for integration in CruiseControl. It sets a correct version qualifier via the ${label} property and resets the result file for the traffic light.
    • The main-release target was added to build new releases. It uses the version property of release.properties.
  • build_local.properties:
    • This file contains paths to make the build on the cruisecontrol server working.
  • testing.xml:
    • Not part of pluginbuilder, created by our own.
    • Currently (27.03.03) not working, will be used to run the automatic unit tests for the code.
  • build-files/customTargets.xml:
    • Adapted to work with CruiseControl.
  • build-files/subversionSupport.xml:
    • A manual call to the subversion command line client was added, since the builtin method did not work correctly. Svn username and password are read from the cruisecontrol.properties file.
  • lib/junit-4.5.jar:
    • Added to make the unit tests working.

After adding a new plug-in to a feature or adding a feature to pluginbuilder the build scripts have to be recreated by hitting the “Generate Build Files” link in the pluginbuilder.properties editor. This will not overwrite the changes made by us to the build scripts.

Update Site

What is an Update Site?

All details of plug-ins, features and update sites are described in a detailed manner in the following location:

http://www.eclipse.org/articles/article.php?file=Article-Update/index.html

Where is the current Update Site?

http://roots.iai.uni-bonn.de/downloads/cultivate-update/

Never mind, that you cannot see it with the browser. To check availability, you may try the site.xml.

How do I use the Update Site?

Features

There are currently two features in cultivate, but only the first one is included in the automatic build:

cultivate.feature

This feature contains the core parts of cultivate with the appropiate user interfaces. It consists of the following plug-ins:

  • cultivate.analysis
  • cultivate.core
  • cultivate.ui

Requirements:

cultivate.refactor.feature

This feature contains the refactor parts of cultivate, originated from a deploma thesis, including its dependencies. This feature currently is not tested amd needs more cleanups to run correctly.

  • ca.ubc.cs.javadb
  • ca.uvic.csr.shrimp
  • ca.uvic.csr.shrimp.creole
  • ca.uvic.csr.shrimp.eclipsebridge
  • cultivate.refactor.adaptivity
  • cultivate.ui.refactor.adaptivity

Project Root Black- and White+ list

Blacklist

  • *.jude
  • build.xml
  • *compiler.args

Whitelist

Every Project

  • .classpath
  • .project

Plugin Projects

  • plugin.xml
  • build.properties
  • architecture.pl (optional)
  • conventions.pl (optional)
  • javadoc.xml (optional)

Test Projects

  • fitnesse.xml (optional)
  • generate-factbase-*.launch

Feature Projects

  • feature.xml
teaching/labs/xp/2009a/updatesite.txt · Last modified: 2018/05/09 01:59 (external edit)

SEWiki, © 2021