зеркало из https://github.com/mozilla/pjs.git
better man page to explain the mail format.
This commit is contained in:
Родитель
c670b2e7eb
Коммит
57e0ddcd15
|
@ -12,8 +12,8 @@
|
||||||
# server. No locks are used by the mail processes, data is passed to
|
# server. No locks are used by the mail processes, data is passed to
|
||||||
# the tinderbox server in a maildir like format.
|
# the tinderbox server in a maildir like format.
|
||||||
|
|
||||||
# $Revision: 1.2 $
|
# $Revision: 1.3 $
|
||||||
# $Date: 2001-01-04 00:29:09 $
|
# $Date: 2001-01-06 01:32:03 $
|
||||||
# $Author: kestes%staff.mail.com $
|
# $Author: kestes%staff.mail.com $
|
||||||
# $Source: /home/jrmuizel/cvs-mirror/mozilla/webtools/tinderbox2/src/bin/processmail_builds,v $
|
# $Source: /home/jrmuizel/cvs-mirror/mozilla/webtools/tinderbox2/src/bin/processmail_builds,v $
|
||||||
# $Name: $
|
# $Name: $
|
||||||
|
@ -90,6 +90,7 @@ Informational Arguments
|
||||||
easier testing the functionality of the program. This flag is
|
easier testing the functionality of the program. This flag is
|
||||||
not recomended for production use.
|
not recomended for production use.
|
||||||
|
|
||||||
|
|
||||||
Synopsis
|
Synopsis
|
||||||
|
|
||||||
|
|
||||||
|
@ -97,35 +98,77 @@ This program handles mail acceptance for the tinderbox system. The
|
||||||
mail transerfer agent runs this program to deliver the mail. Mail is
|
mail transerfer agent runs this program to deliver the mail. Mail is
|
||||||
recived on stdin, this makes it particularly easy to test this script.
|
recived on stdin, this makes it particularly easy to test this script.
|
||||||
The script accepts no arguments and will exit with return code of zero
|
The script accepts no arguments and will exit with return code of zero
|
||||||
if successful. Mail messages are parsed to extract the tinderbox
|
if successful.
|
||||||
variables and database update files are written for the tinderbox
|
|
||||||
server to pickup when it next wakes up. The tinderbox variables must
|
|
||||||
be at the top of the mail and the last variable must be 'END'. We
|
|
||||||
ignore the line following the variables, it should be blank. Any
|
|
||||||
uuencoded binaries in the mail message are extracted and uudecoded and
|
|
||||||
stored on disk. The build logs are converted into HTML and are split
|
|
||||||
into full and summary form and stored on the disk. Both logs basnames
|
|
||||||
are the same unique id which is found by using the time this program
|
|
||||||
was stared and its pid. The logs are stored in separate directories
|
|
||||||
and compressed. The server knows how to contruct URLS to the log
|
|
||||||
files because that information is passed in the database update files.
|
|
||||||
There may be serveral instances of this program running so each
|
|
||||||
database update file is written to the disk with a unique name. No
|
|
||||||
locks are held by this code.
|
|
||||||
|
|
||||||
Should errors occur during the processing of the mail message, the
|
Should errors occur during the processing of the mail message, the
|
||||||
message is bounced by exiting with a non zero exit code and the error
|
message is bounced by exiting with a non zero exit code and the error
|
||||||
is written to the error log and standard err.
|
is written to the error log and standard err.
|
||||||
|
|
||||||
By convention all database update files are stored in a file name
|
Mail is expected to consist of
|
||||||
which matches the module name which will accept them. We are creating
|
|
||||||
information for the database controled by the module TinderDB::Build
|
1) A set of tinderbox variables with values applicable to this
|
||||||
so its update file must be named
|
build this includes information on which regular expressions
|
||||||
|
to use when parsing the build log and whether the build was
|
||||||
|
successful or not.
|
||||||
|
|
||||||
|
2) The build/test log as output by the tool which was run to
|
||||||
|
generate the build.
|
||||||
|
|
||||||
|
3) The binary which results form the build, if desired.
|
||||||
|
|
||||||
|
Mail messages are parsed to extract the tinderbox variables and
|
||||||
|
database update files are written for the tinderbox server to pickup
|
||||||
|
when it next wakes up. By convention all database update files are
|
||||||
|
stored in a file name which matches the module name which will accept
|
||||||
|
them. We are creating information for the database controled by the
|
||||||
|
module TinderDB::Build so its update file must be named
|
||||||
$TinderConfig::FILE{'TinderDB::Build::Update'} with some unique id
|
$TinderConfig::FILE{'TinderDB::Build::Update'} with some unique id
|
||||||
placed on the end. This file contains all the tinderbox variable
|
placed on the end. This file contains all the tinderbox variable
|
||||||
information extracted from the mail message and any new variables
|
information extracted from the mail message and any new variables
|
||||||
derived while parsing the log file.
|
derived while parsing the log file.
|
||||||
|
|
||||||
|
The build logs are converted into HTML and are split into full and
|
||||||
|
summary form and stored on the disk. Both logs basnames are the same
|
||||||
|
unique id which is found by using the time this program was stared and
|
||||||
|
its pid. The logs are stored in separate directories and compressed.
|
||||||
|
The server knows how to contruct URLS to the log files because that
|
||||||
|
information is passed in the database update files. There may be
|
||||||
|
serveral instances of this program running so each database update
|
||||||
|
file is written to the disk with a unique name. No locks are held by
|
||||||
|
this code.
|
||||||
|
|
||||||
|
Builds which take a long time to complete can send multiple status
|
||||||
|
mails each one conaining the log file which has been completed so far.
|
||||||
|
All mails sent before the build is finished should have the status
|
||||||
|
'building'. The last mail must contain the results of the build. The
|
||||||
|
website will make each build log availible so that everyone can see
|
||||||
|
the log file and get a feel for how far into the compilation the build
|
||||||
|
machine has progressed.
|
||||||
|
|
||||||
|
|
||||||
|
Mail Format
|
||||||
|
|
||||||
|
The mail has a very simple format and is not MIME encoded and has not
|
||||||
|
attachments.
|
||||||
|
|
||||||
|
The tinderbox variables must be at the top of the mail and the last
|
||||||
|
variable must be 'END'. We ignore the line following the variables,
|
||||||
|
it should be blank. Tinderbox variables are specified by a line which
|
||||||
|
looks like this string:
|
||||||
|
|
||||||
|
tinderbox: variablename: varaiblevalue
|
||||||
|
|
||||||
|
Any uuencoded binaries in the mail message are extracted and uudecoded
|
||||||
|
and stored on disk in the filename specified by the tinderbox variable
|
||||||
|
binaryname.
|
||||||
|
|
||||||
|
The bulk of the mail message is the output from the compilers and test
|
||||||
|
tools which created the build. Each tinderbox server must be
|
||||||
|
customized with the set of regular expressions which describe the
|
||||||
|
errors which are produced as part of the build process. These regular
|
||||||
|
expressions are stored in the module Error_Parse.pm. Each mail
|
||||||
|
contains the tinderbox variable 'errorparser' which chooses one set of
|
||||||
|
regualar expressions to use when processing the mails contents.
|
||||||
|
|
||||||
|
|
||||||
Tinderbox Variables:
|
Tinderbox Variables:
|
||||||
|
@ -229,6 +272,20 @@ File names for the output files are contructed from the values returned by:
|
||||||
FileStructure::get_filename(\$tree, 'TinderDB_Dir')
|
FileStructure::get_filename(\$tree, 'TinderDB_Dir')
|
||||||
|
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
This is the set of tinderbox variables which are used in the logsample
|
||||||
|
mail message. See the logsample file in the test directory for a more
|
||||||
|
complete example of tinderbox build mail.
|
||||||
|
|
||||||
|
tinderbox: tree: Project_A
|
||||||
|
tinderbox: starttime: 934395485
|
||||||
|
tinderbox: timenow: 934395489
|
||||||
|
tinderbox: status: success
|
||||||
|
tinderbox: buildname: worms-SunOS-sparc-5.6-Depend-apprunner
|
||||||
|
tinderbox: errorparser: unix
|
||||||
|
tinderbox: END
|
||||||
|
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче