Tomcat web-based build
Intro
Build is difficult - there are many small steps involved, READMEs that
are out of date, dependencies and settings. Scripts that automate it
are hard to setup and provide very little customization.
About a year ago we started nightly builds for tomcat. We than started
to run tests, build other projects. The whole thing was rewritten 3
times. Gump is a great tool that does the same thing ( in a different
way ) - but it has the same problem as most scripts I know: hard to
setup, hard to customize.
This project tries to improve the situation in few ways:
- Use a self-contained web application. The whole thing will be packaged
as a WAR, with ant, jaxp and other dependencies in WEB-INF/lib, and with
a single configuration point ( and a web-based form will be added to
set it up ).
- Open up the build process and split it in individual steps. You should be
able to run any step manually, at any time. In time we can add "wizard"
like interfaces, and logic to verify the dependencies are realized.
Goals
- Easy to use tool - get the WAR, deploy it, use the wizard
to set up the environment, run the steps you need.
- Integration with the "normal" development environment. This should
work similar with the "antidote" - except that it'll be web based.
- Integration with gump. Xml descriptions of the projects will be
used to generate the UI ( probably we'll use ant-based scripts instead
of bat/bash ).
Status
The current scripts are usable ( and used for nightly tomcat build and
test ). The user interface is not done, we just have a set of links to
various scripts. Gump integration isn't started, but few experiments were
made ( I would do it after some work on interface is done ).
Architecture
We use few jsp taglibs to allow calls to ant and create the UI.
Few custom ant tasks and scripts allow execution of ant out-of-process,
using different java VMs, starting and stoping tomcat ( or executing
different programs ).
Links:
Nightly:
- Clean tomcat workspace.
- Get the source from CVS or snapshots
- Create source packages
- Test special builds
- Build and create binary packages
Prepare
Download binaries tomcat build and testing depends on. This should be updated
for every new stable release of a binary package. In "gump" mode, this should
be done nightly using the latest builds.
- Configure and download the binary packages
- Clean ws and dist dirs (?).
- Get the source from CVS or snapshots
- Create source packages
- Build and create binary packages
Agregate targets
Testing
Other
Prepare
If you are behind a socks firewall, remember to do
"runsocks tomcat.sh run" ( or socksify ).
If you are behind a firewall, and you have a HTTP proxy, rememver to
set TOMCAT_OPTS="-Dhttp.proxyHost=MYPROXY -Dhttp.proxyPort=PROXYPORT"
- Download and install
Ant,
JSSE,
- Make sure you have JDK1.1 and JDK1.2(or later) installed
- Edit the file
TOMCAT_HOME/webapps/build/WEB-INF/scripts/ant.properties and set all the
properties to match your system.
XXX a web based page can be created - contributions welcomed.