Modeling Build Server Setup (Archived)
This document is a draft. It will change as this system is stabilized. Please contact Nick Boldt with any questions or comments.
The filesysstem is more restrictive on build.eclipse.org (shared build server) than on emft.eclipse.org (per-project vserver), so configuration is simplified.
The shared directories where all the magic happens are under
./public_html/ (website) ./modeling/ (symlink to public_html to resolve absolute paths) ./searchcvs/ (Search CVS) ./modeling-releng-common (common releng scripts) ./tmp/ (lockfiles)
./build/downloads/ (central storage for upstream dependencies' zips) ./build/requests/ (list of dependencies, used by build pages & crons) ./build/modeling/scripts (symlink to modeling-releng-common/tools/scripts/) ./build/modeling/mdt/... (components' build folders)
Note that because eclipse.org webservers do not resolve symlinks (for security purposes) build files are actually created inside
public_html and symlinked from the
A build can be started from its build page, eg., http://build.eclipse.org/modeling/mdt/ocl/build/. These pages are .htaccess protected.
Builds are queued to run by creating a lockfile in the filesystem. On a schedule, a cron script checks for the existence of lockfiles, and runs them. Once a build is completed, the lockfile is deleted. Using this system, only one build per project/component/version can be run at a time.
Builds can be verified using the online tools, eg., http://build.eclipse.org/modeling/mdt/downloads/index.php?sortBy=date&project=eodm. This page includes links to config files, map files, build logs, test logs & test results.
Once a build has completed and has been verified, it needs to be promoted to download.eclipse.org for publication and mirroring. This can be done via the project's promote page, eg., http://build.eclipse.org/modeling/mdt/ocl/build/promo.php