- I tested the scripts on linux and solaris - only standard bourne shell is used - this is based on my early attempt based on ant - I'll try again later, now .sh does the job and it's enough To run the tests: 1. make sure .antrc and .antproperties are clean 2. You need the following directory structure ( or edit the .sh files to match your - the scripts are not very configurable, it's just a tool to build ): $HOME: ( the home directory of the user who have the crontab job ): $HOME/bin/nightly/* -> the scripts $HOME/java/jsse -> jsse jars ( jcert.jar jnet.jar jsse.jar) $HOME/java/xml -> jaxp jars ( jaxp.jar parser.jar ) $HOME/java/java1.1 -> link to a working 1.1 jdk installation $HOME/java/java1.2 -> link to a working 1.2+ jdk $HOME/opt/ant-1.2 -> link to ant 1.2 $HOME/opt/ant-1.1 -> link to ant 1.1 ( needed by watchdog ) $HOME/opt/ws/log -> empty dir $HOME/opt/ws/zip -> empty dir $HOME/opt/ws/build -> empty dir You must do "cvs login" first, so the passowrd is stored in .cvspass. - If behind a firewall, you can use "runsocks nightly.sh" ( or "socksify nightly.sh" ). You must run "weekly.sh" to get the initial CVS repository and build servletapi and watchdog for the first time. Then nightly.sh will only update ( cvs update ) to minimize time. What's inside ? =============== weekly.sh -> get jakarta-tomcat, watchdog, tools, build everything for the first time ( it's a fresh checkout - old dirs are removed ) nightly.sh -> main driver, call various build and test functions and scripts with various JDKs and CLASSPATHS start_tomcat.sh -> a tricky one - start tomcat and wait till it's ready ( by grep-ping the log file for HttpInterceptor starting ) stop_tomcat.sh -> ATTENTION: it'll first try to be nice, but then it'll kill all java processes ( pkill, killall ) - use a separate account for building ( and not root ) (XXX do a grep first ) run_watchdog.sh -> start, run watchdog 3 times, run sanity, grep the results for error counts functions_build.sh -> various shell functions ( I use to source it and use them in command line to repeat individual steps ) Build Functions =============== build_tomcat SUFIX TARGET -> build, add jaxp1.0 and zip the result ant_build REPOSITORY DISTNAME LOGFILE TARGET -> use ant to build repository ( jakarta-tomcat ) into DISTNAME ( tomcat ), with log ( build-full.log ) and using TARGET ( main ) cvs_update REPOSITORY CVSTAG -> update or clean get of repository cvs_get REPOSITORY CVSTAG zip_src REPOSITORY ZIPNAME -> zip_dist DISTNAME ARCHBASE -> zip dist ( tomcat ) to .zip and tgz ( tomcat-full) count_errors LOGFILE -> do greps for OK and FAILURE in a watchdog log file ... Future ====== Move back to ant ( as much as possible - we'll have to use a lot of tasks to run ant1.1 and test with different VMs ) NOTE: don't expect nice code, it's just a hack to build and test tomcat. It may be useful - if it's not, ignore this directory. Costin