Daily Build Procedure
 

Schedule: The daily build for Fetter Software occurs Sun, Mon, Wed, Fri at 7pm.


Get a copy of the current source from CVS

1)Open a console or Dos prompt and login to boa.csc.calpoly.edu
telnet boa.csc.calpoly.edu
Enter your login name and password. Note you must be a user of cscstd group.

2) Clean out any possible old source files.
cvs release -d ETA

3) Get the current source version from the cvs tree
cvs co ETA

4) Get the log of the current version and save it in a file
cvs log ETA >& cvsoutput.txt

5) Change to the directory of the source files and scripts
cd ETA/edu/calpoly/cpe205/fetter/src

6) Change permission for file linksrc.sh so that it can be executed
chmod 744 linksrc.sh
Put all the source into one jar file
./linksrc.sh

7) Change to the directory of the jar files
cd ../../../../..

8) Send the files to your falcon account
ftp falcon.csc.calpoly.edu
Enter your user name and password and change to the directory
That you want to download ETA to.

9) Then put the files from boa.csc.calpoly.edu to falcon.csc.calpoly.edu
put ETAsrc.jar

10) Change to the directory of the cvsoutput.txt file
cd ..

11) Send the cvsoutput.txt file to falcon.csc.calpoly.edu
put cvsoutput.txt

Build the Source on your machine

1) Telnet into falcon to build the source files
telnet falcon.csc.calpoly.edu

2) Extract the source files from the jar
jar -xf ETAsrc.jar

3) Change to the directory of the source and script files
cd edu/calpoly/cpe205/fetter/src

4) Change the mode of the build.sh file so that is can be executed
chmod 744 build.sh

5) Compile the build and jar the source files jar the javadoc files
jar the byte code and log the output
./build.sh

6) Change you directory to the output files of build.sh
cd ../../../../..

7) Review the build output and check for errors
less buildOutput.txt
Record any compile errors, write reports, and email module owners with compiler errors
See How to do Build Reports

If the build won't compile, do the Broken Build Procedure.

Otherwise (the build is successful) continue with running the smoke test (follows).

Run smoke test on the current build

1) Transfer the ETAbyte.jar file to any computer that has a graphical
display and a java 1.2.2 run time environment
ftp wherever.iwantto.smoketest.org

2) put the ETAbyte.jar file on the remote machine
put ETAbyte.jar

3) Telnet over to the remote computer
telnet wherever.iwantto.smoketest.org

4) Run the build and play with current features as specified in the
Integration Plan and matrix
java -jar ETAbyte.jar

Update the group webpage with the new builds.

1) Start a file transfer to boa.csc.calpoly.edu
ftp boa.csc.calpoly.edu

2) Change to the remote directory of ~team_4/www/downloads
cd www/downloads

3) Send the new build files over to boa
put ETAsrc.jar
put ETAbyte.jar
put ETAdocs.jar
put cvsoutput.txt
put buildOutput.txt

4) Telnet to boa.csc.calpoly.edu as team_4
telnet boa.csc.calpoly.edu

5) Change to the web directory
cd ~team_4/www

6) Update the web files with the new build, this includes the source,
the javadocs, the build reports, the source jar, the byte jar, and thei
javadoc jar ./finishBuild.sh YYYYMMDD
Where YYYYMMDD is the date for example 02-05-2001 would be 20010205

7) Edit the web files (.html) to report all the
information for the new build.
vi ~team_4/www/downloads/index.html
vi ~team_4/www/index.html
vi ~team_4/www/buildReports/index.html
vi ~team_4/www/buildReports/buildReportYYYYMMDD.html

8) Update document history tables


Broken Build Procedure

From the build report, identify the module owners whose modules generated errors.
From the team contact list, obtain their telephone number.
Phone them and inform them that their module broke the build, they have been sent an e-mail, and they can consult the build report for details.  If you can't reach them in person leave a message.
Assuming the build was run at 7pm as scheduled, ask them to call you back by 9pm with the status.
IF the developer calls by 9pm THEN
    IF the status is fixed THEN rerun the daily build procedure. 
    IF the status is will fix time before 8am the next day THEN write yourself a note to rerun the build at 8am the next morning.
    IF the status is can't fix before 8am the next day THEN revert the build to last successful version and update build report.
IF the developer doesn't call by 9pm THEN
    Call team manager and inform her that the build is broken and you've been unable to contact developer.
    Team manager continues efforts to contact developer.
IF developer submits fix to cvs and contacts you by 8am the next day THEN
    Rerun the daily build procedure at 8am.
IF no developer contact (and no fix) by 8am the next day THEN
    Revert the build to last successful version and update build report.
    Send e-mail note to entire team informing everyone that the offending developer broke the build and didn't get it fixed.  Inform them that the build is reverted. Announce that the offending developer is now obligated to bring to the next lab meeting either a) one package of Mint Milano Pepperidge Farm cookies or b) one package of Famous Amos Chocolate Chip cookes. 




Date Author Change
2/4/04
jdalbey
Added Broken Build Procedure
2/5 mpower Updated Build Procedure to support new more advanced build scripts
1/28 mpower Added procedure to tag current build
1/28 mpower rough draft posted, format taken from mhebron's document on cvs procedures