summaryrefslogtreecommitdiff
path: root/docs/bugzilla-build-setup.html
blob: 0deed4d6c45620a660beaa4091f19f597919605a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
  <!-- $Id$ -->
  <head>
    <title>Setting Up A Bugzilla Nightly Build</title>
  </head>

  <body text = "#000000" link="#000fff" vlink="#ff0f0f" bgcolor="#ffffff">

    <h1>Setting Up A Bugzilla Nightly Build</h1>

    <p>
      The
      <a href="http://www.cs.wustl.edu/~schmidt/doc-center.html">
	Center for Distributed Object Computing</a> has automated
      daily builds to keep track of the progress made each day for
      selected software and hardware platforms.
    </p>

    <h2>Unix Instructions</h2>

    <p>
      Below are the steps to take to add a platform to the current
      platforms included in the daily builds. BUILD_NAME should be
      replaced with the name you want to give the build (e.g.,
      Solaris8_gcc). It can be helpful to embed the OS and the compiler
      used in BUILD_NAME as in the example in the previous sentence
      (i.e., Solaris8_gcc =>
      the Solaris 8 operating system and GNU's gcc/g++ compiler).
    </p>

    <ul>
    <li>Configure CVSROOT as it will be used in the build
<pre>
    $ cvs checkout ACE_wrappers

    $ cd ACE_wrappers
    $ mkdir build build/BUILD_NAME
    $ ./bin/create_ace_build -a build/BUILD_NAME
    $ mkdir build/BUILD_NAME/auto_compile
    $ touch build/BUILD_NAME/auto_compile/history
</pre>

    <li>Configure build/BUILD_NAME/ace/config.h.
    (Solaris 8 is used here as an example.)
<pre>
    $ echo '#include "ace/config-sunos5.8.h" > build/BUILD_NAME/ace/config.h
</pre>

    <li>Configure build/BUILD_NAME/include/makeinclude/platform_macros.GNU
    Solaris 8 and GNU compiler is used here as an example. This example
    also shows building without debug.
<pre>
    $ cd build/BUILD_NAME/include/makeinclude
    $ echo 'include $(ACE_ROOT)/include/makeinclude/platform_sunos5_g++.GNU' > platform_macros.GNU
    $ echo 'debug=0' >> platform_macros.GNU
</pre>

    <li>Setup build script in ~bugzilla/bin.
    (Copy an existing build script to use as a template. Solaris 8 and GNU compiler is used here as an example.)
<pre>
    $ su bugzilla
    $ cd ~/bin
    $ cp auto_compile_sunos_gcc272 auto_compile_sunos8_gcc
</pre>
    Modify the new auto compile file as needed. At a minimum, CHECKOUT and
    BUILD will need to be modified.<BR><BR>

    <li>Create a cron job to run the build.
    (Decide which machine the build should be done. Add a cron job to bugzilla's crontab.)
<pre>
    $ ssh -l bugzilla <i>machine_of_choice</i>
    $ crontab -e
    <i>Add cron job to kick off the build every day.</i>
</pre>

    <li>After the build has been running successfully a few days (not
    necessarily that there aren't errors or warnings in the compilation or
    execution) incorporate it into the showlog.cgi script.
<pre>
    $ cd ~bugzilla/.www-docs/cgi-bin
    $ vi showlog.cgi # to include the build you're making
</pre>
    Modify the new auto compile file as needed. At a minimum, CHECKOUT and
    BUILD will need to be modified.

    </ul>

    <h2>Win32 Instructions</h2>

    <p>
	  The Win32 builds use a different set of scripts from the Unix nightly
	  builds.  Instructions will be provided here for them at a future 
	  date.
	</p>

    <h2>Scoreboard</h2>

    <p>
	  The scoreboard is the web page created by <code>
	  ACE_wrappers/bin/nightlybuilds/scoreboard_update.pl</code>.  The main 
	  build scoreboard for the DOC Group is located at <a href=
	  "http://ringil.ece.uci.edu/scoreboard/">
	  http://ringil.ece.uci.edu/scoreboard/</a>.
	</p>

    <p>
	  The <code>scoreboard_update.pl</code> works by downloading a directory 
	  via http, determining the build that has run last, download it, and 
	  then parse and create html documents based on it. It requires that the 
	  builds name their logs based on the time that the log was created (both
	  <code>auto_compile</code> and <code>prepare_log.pl</code> do this
	  correctly).
	</p>

    <p>
	  To integrate into the scoreboard, the following steps should be taken:
	</p>

    <ol>
	  <li>
	    Make the directory containing the log files accessible from the
		internet (or at least from the machine running the scoreboard, in 
		this case, ringil.ece.uci.edu).  This directory must be able to be
		browsed via the web and should not require a password.
	    <br><br>
	  </li>

	  <li>
        Add the build to the appropriate *.lst file in the <code>
		ACE_wrappers/bin/nightlybuilds/*.lst</code>.  The main scoreboard
		uses builds.lst.  Each entry looks like the following:
<pre>
    [BUILD_NAME]
    TYPE = TIMEONLY
    LIST = http://ace.cs.wustl.edu/~bugzilla/auto_compile_logs/build_dir/
    WEB  = http://ace.cs.wustl.edu/~bugzilla/cgi-bin/show_log_dir.cgi?build_dir
</pre>
        BUILD_NAME, LIST, and WEB should be updated to the appropriate values.
        TYPE currently needs to be TIMEONLY.  LIST refers to the address 
		needed to browse the logs directory.  WEB refers to the address 
		used to link to the logs directory (we usually put a url to the 
		show_log_dir.cgi script here).
	    <br><br>
	  </li>

	  <li>
	    Check in the *.lst file.  The scoreboard will automatically update 
		its copy of the list before parsing it.
	    <br><br>
	  </li>
	</ol>

    <hr>
    <address><a href="mailto:joeh@cs.wustl.edu">Joe Hoffert</a></address>
<!-- Created: Thu Feb 22 10:15:58 CST 2001 -->
<!-- hhmts start -->
Last modified: Wed Feb 28 15:32:45 CST 2001
<!-- hhmts end -->
    <br>
  </body>
</html>