Author: wade
Date: 2005-05-12 19:28:35 -0400 (Thu, 12 May 2005)
New Revision: 44481
Added:
trunk/release/monobuild/tests/
trunk/release/monobuild/tests/get_latest_revision.pl
trunk/release/monobuild/tests/get_state.pl
trunk/release/monobuild/www/builds/
trunk/release/monobuild/www/builds/testing/
trunk/release/monobuild/www/builds/testing/fedora-3-i386/
trunk/release/monobuild/www/builds/testing/fedora-3-i386/gtk-sharp/
trunk/release/monobuild/www/builds/testing/fedora-3-i386/gtk-sharp/r4543/
trunk/release/monobuild/www/builds/testing/fedora-3-i386/gtk-sharp/r4543/files/
trunk/release/monobuild/www/builds/testing/fedora-3-i386/gtk-sharp/r4543/files/gtk-sharp.rpm
trunk/release/monobuild/www/builds/testing/fedora-3-i386/gtk-sharp/r4543/files/gtk-sharp.tar.gz
trunk/release/monobuild/www/builds/testing/fedora-3-i386/gtk-sharp/r4543/info.xml
trunk/release/monobuild/www/builds/testing/fedora-3-i386/gtk-sharp/r4543/logs/
trunk/release/monobuild/www/builds/testing/fedora-3-i386/gtk-sharp/r4543/logs/build.log
trunk/release/monobuild/www/builds/testing/fedora-3-i386/gtk-sharp/r4543/logs/mktarball.log
trunk/release/monobuild/www/builds/testing/fedora-3-i386/gtk-sharp/r4543/logs/rpm.log
trunk/release/monobuild/www/builds/testing/suse-93-i586/
trunk/release/monobuild/www/builds/testing/suse-93-i586/gecko-sharp-2.0/
trunk/release/monobuild/www/builds/testing/suse-93-i586/gecko-sharp-2.0/r4543/
trunk/release/monobuild/www/builds/testing/suse-93-i586/gecko-sharp-2.0/r4543/files/
trunk/release/monobuild/www/builds/testing/suse-93-i586/gecko-sharp-2.0/r4543/files/gecko.rpm
trunk/release/monobuild/www/builds/testing/suse-93-i586/gecko-sharp-2.0/r4543/files/gecko.tar.gz
trunk/release/monobuild/www/builds/testing/suse-93-i586/gecko-sharp-2.0/r4543/info.xml
trunk/release/monobuild/www/builds/testing/suse-93-i586/gecko-sharp-2.0/r4543/logs/
trunk/release/monobuild/www/builds/testing/suse-93-i586/gecko-sharp-2.0/r4543/logs/build.log
trunk/release/monobuild/www/builds/testing/suse-93-i586/gecko-sharp-2.0/r4543/logs/mktarball.log
trunk/release/monobuild/www/builds/testing/suse-93-i586/gecko-sharp-2.0/r4543/logs/rpm.log
trunk/release/monobuild/www/cgi-perl/packagestatus.pl
trunk/release/monobuild/www/favicon.ico
Modified:
trunk/release/monobuild/HOWTO
trunk/release/monobuild/Mono/Build.pm
trunk/release/monobuild/Mono/Build/Config.pm
trunk/release/monobuild/design.txt
trunk/release/monobuild/www/build.css
trunk/release/monobuild/www/cgi-perl/buildstatus.pl
Log:
Established framework of the structure of builds, the xml structure, and
pulling data out of
both of these.
This structure isn't set in stone, just a first run through.
Added some test builds to generate all of the information in the
buildstatus page (as well as the package status).
Modified: trunk/release/monobuild/HOWTO
===================================================================
--- trunk/release/monobuild/HOWTO 2005-05-12 23:11:58 UTC (rev 44480)
+++ trunk/release/monobuild/HOWTO 2005-05-12 23:28:35 UTC (rev 44481)
@@ -7,6 +7,9 @@
Configuring Apache for MonoBuild
--------------------------------
+Make sure you have mod_perl installed and working
+ - On SuSE type systems, add perl to the APACHE_MODULES list in
/etc/sysconfig/apache2
+
Add the following to /etc/apache2/mod_perl-startup.pl:
use lib qw(/home/wberrier/wa/mono/msvn/release/monobuild);
Modified: trunk/release/monobuild/Mono/Build/Config.pm
===================================================================
--- trunk/release/monobuild/Mono/Build/Config.pm 2005-05-12 23:11:58 UTC
(rev 44480)
+++ trunk/release/monobuild/Mono/Build/Config.pm 2005-05-12 23:28:35 UTC
(rev 44481)
@@ -4,8 +4,16 @@
our $releaseRepo = "/home/wberrier/wa/mono/msvn/release";
-our $distroDir = "$releaseRepo/packaging/conf";
-our $componentDir = "$releaseRepo/packaging/defs";
+our $platformDir = "$releaseRepo/packaging/conf";
+our $packageDir = "$releaseRepo/packaging/defs";
+# Full path to where the builds are output
+our $buildsDir = "$releaseRepo/monobuild/www/builds";
+# Url path from view of webserver
+our $buildsUrl = "builds";
+# Testing
+$buildsDir = "$releaseRepo/monobuild/www/builds/testing";
+$buildsUrl = "builds/testing";
+
1;
Modified: trunk/release/monobuild/Mono/Build.pm
===================================================================
--- trunk/release/monobuild/Mono/Build.pm 2005-05-12 23:11:58 UTC (rev
44480)
+++ trunk/release/monobuild/Mono/Build.pm 2005-05-12 23:28:35 UTC (rev
44481)
@@ -2,39 +2,41 @@
package Mono::Build;
+use XML::XPath;
+
+# Local packages
use Mono::Build::Config;
use Env::Bash;
-sub getDistros
+sub getPlatforms
{
- my $dir = $Mono::Build::Config::distroDir;
- my @distros;
+ my $dir = $Mono::Build::Config::platformDir;
+ my @platforms;
opendir(DIR, $dir) or die "Can't open dir: $dir\n";
-
while($dir = readdir(DIR))
{
# For some reason... .svn fails the -d perl test...???
#if(!-d $dir)
if($dir ne "." && $dir ne ".." && $dir ne ".svn" && $dir ne
"hosts")
{
- push @distros, $dir;
+ push @platforms, $dir;
}
}
closedir(DIR);
- return sort @distros;
+ return sort @platforms;
}
-sub getComponents
+sub getPackages
{
- my $dir = $Mono::Build::Config::componentDir;
- my @components;
+ my $dir = $Mono::Build::Config::packageDir;
+ my @packages;
opendir(DIR, $dir) or die "Can't open dir: $dir\n";
@@ -44,14 +46,14 @@
# For some reason... .svn fails the -d perl test...???
if(!-d $dir && $dir ne ".svn")
{
- push @components, $dir;
+ push @packages, $dir;
}
}
closedir(DIR);
- return sort @components;
+ return sort @packages;
}
@@ -60,34 +62,118 @@
my $pkg = shift;
my $var = shift;
- my $dir = $Mono::Build::Config::componentDir;
+ my $dir = $Mono::Build::Config::packageDir;
return get_env_var( $var, Source => "$dir/$pkg", );
}
-sub getState
+sub getLatestRevision
{
- my $index = shift;
- # This info will eventually come out of a file or something...
- my @states = (
- 'notused',
- 'success',
- 'failure',
- 'building',
- );
+ my $platform = shift;
+ my $package = shift;
- return $states[$index % @states];
+ my $revision;
+
+ my $dir = "$Mono::Build::Config::buildsDir/$platform/$package";
+ eval {
+
+ opendir(DIR, $dir) or die "Can't open dir: $dir\n";
+
+ while($dir = readdir(DIR))
+ {
+ # For some reason... .svn fails the -d perl test...???
+ #if(!-d $dir)
+ if($dir ne "." && $dir ne ".." && $dir ne ".svn")
+ {
+ push @revisions, $dir;
+ }
+
+ }
+
+ closedir(DIR);
+
+ @revisions = sort @revisions;
+ $revision = pop @revisions;
+
+ };
+
+ if($@)
+ {
+ # No builds done with this platform or package
+ $revision = "";
+ }
+
+ return $revision;
+
}
-
-# Read in distro->component map
-sub getValidDistroComponents
+# Get the state of a package on a platform, not of a particular step
+sub getState
{
+ my $platform = shift;
+ my $package = shift;
+ my $revision = shift;
+
+ my $xp;
+ my @states;
+
+ my $nodeset;
+ my $node;
+ my $state;
+
+ my $xmlFile =
"$Mono::Build::Config::buildsDir/$platform/$package/$revision/info.xml";
+
+ eval {
+ $xp = XML::XPath->new(filename => $xmlFile);
+ $nodeset = $xp->find('/build/steps/step/status');
+
+ foreach my $node ($nodeset->get_nodelist)
+ {
+ $state = XML::XPath::Node::Text::string_value($node);
+
+ #print "State: $state\n";
+ push @states, $state;
+
+ }
+ };
+
+ if($@)
+ {
+ $state = "";
+
+ }
+
+ # State order of preference: inprogress, failure, success, <null>
+
+ if(arrayContains("inprogress", @states))
+ {
+ $state = "inprogress";
+ }
+
+ elsif(arrayContains("failure", @states))
+ {
+ $state = "failure";
+ }
+
+ # If I get this far, I assume everything succeeded
+ elsif(arrayContains("success", @states))
+ {
+ $state = "success";
+ }
+
+ else
+ {
+ $state = "";
+ }
+
+ return $state;
+
}
+
sub arrayContains
{
my $needle = shift;
Modified: trunk/release/monobuild/design.txt
===================================================================
--- trunk/release/monobuild/design.txt 2005-05-12 23:11:58 UTC (rev 44480)
+++ trunk/release/monobuild/design.txt 2005-05-12 23:28:35 UTC (rev 44481)
@@ -28,7 +28,17 @@
One the log and download page that Ben sent me, we can have all the logs and
builds available from there
+The xml format:
+---------------
+I don't want to have to parse tons of xml files for every hit to the main
status page...
+ I don't, because you can get the revisions from the directory listing,
you'll
+ only need to parse the xml once you go to the downloads page
+ One of the main issues is whether to have the xml contain multiple
builds, or have
+ an xml document for each build.
+ It would probably be easier to remove a build if you could just
delete the directory... I think I'll do that
+ So, I'll need to modify my xml
+
-------
Phase 2
-------
Added: trunk/release/monobuild/tests/get_latest_revision.pl
===================================================================
--- trunk/release/monobuild/tests/get_latest_revision.pl 2005-05-12
23:11:58 UTC (rev 44480)
+++ trunk/release/monobuild/tests/get_latest_revision.pl 2005-05-12
23:28:35 UTC (rev 44481)
@@ -0,0 +1,15 @@
+#!/usr/bin/perl
+
+
+use FindBin;
+use lib "$FindBin::RealBin/..";
+
+use Mono::Build;
+
+my $platform = 'suse-93-i586';
+my $package = 'gecko-sharp-2.0';
+
+my $revision = Mono::Build::getLatestRevision($platform, $package);
+
+print "Revision: $revision\n";
+
Property changes on: trunk/release/monobuild/tests/get_latest_revision.pl
___________________________________________________________________
Name: svn:executable
+ *
Added: trunk/release/monobuild/tests/get_state.pl
===================================================================
--- trunk/release/monobuild/tests/get_state.pl 2005-05-12 23:11:58 UTC (rev
44480)
+++ trunk/release/monobuild/tests/get_state.pl 2005-05-12 23:28:35 UTC (rev
44481)
@@ -0,0 +1,16 @@
+#!/usr/bin/perl
+
+
+use FindBin;
+use lib "$FindBin::RealBin/..";
+
+use Mono::Build;
+
+my $platform = 'suse-93-i586';
+my $package = 'gecko-sharp-2.0';
+my $rev = 'r4543';
+
+my $state = Mono::Build::getState($platform, $package, $rev);
+
+print "State: $state\n";
+
Property changes on: trunk/release/monobuild/tests/get_state.pl
___________________________________________________________________
Name: svn:executable
+ *
Modified: trunk/release/monobuild/www/build.css
===================================================================
--- trunk/release/monobuild/www/build.css 2005-05-12 23:11:58 UTC (rev
44480)
+++ trunk/release/monobuild/www/build.css 2005-05-12 23:28:35 UTC (rev
44481)
@@ -92,7 +92,7 @@
background:red;
}
-td.building {
+td.inprogress{
background:yellow
}
@@ -100,6 +100,10 @@
background:white;
}
+td.new {
+ background:lightgray;
+}
+
table.legend th {
font-weight:normal;
text-align:right;
Added:
trunk/release/monobuild/www/builds/testing/fedora-3-i386/gtk-sharp/r4543/files/gtk-sharp.rpm
===================================================================
Added:
trunk/release/monobuild/www/builds/testing/fedora-3-i386/gtk-sharp/r4543/files/gtk-sharp.tar.gz
===================================================================
Added:
trunk/release/monobuild/www/builds/testing/fedora-3-i386/gtk-sharp/r4543/info.xml
===================================================================
---
trunk/release/monobuild/www/builds/testing/fedora-3-i386/gtk-sharp/r4543/info.xml
2005-05-12 23:11:58 UTC (rev 44480)
+++
trunk/release/monobuild/www/builds/testing/fedora-3-i386/gtk-sharp/r4543/info.xml
2005-05-12 23:28:35 UTC (rev 44481)
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!-- Data describing a set of builds for a component on a platform -->
+
+
+<build>
+ <platform>fedora-3-i386</platform>
+ <package>gtk-sharp</package>
+ <revision>123</revision>
+
+ <buildhost>monobuild1</buildhost>
+ <start>Fri Apr 29 14:20:47</start>
+ <finish>Fri Apr 29 15:20:47</finish>
+
+ <steps>
+ <step>
+ <name>Make Tarballs</name>
+ <status>success</status>
+ <log>mktarball.log</log>
+ <download>gtk-sharp.tar.gz</download>
+ </step>
+ <step>
+ <name>Build</name>
+ <status>success</status>
+ <log>build.log</log>
+ </step>
+ <step>
+ <name>Make RPMS</name>
+ <status>failure</status>
+ <log>rpm.log</log>
+ <download>gtk-sharp.rpm</download>
+ </step>
+
+ </steps>
+
+
+</build>
+
+
+
+
Added:
trunk/release/monobuild/www/builds/testing/fedora-3-i386/gtk-sharp/r4543/logs/build.log
===================================================================
---
trunk/release/monobuild/www/builds/testing/fedora-3-i386/gtk-sharp/r4543/logs/build.log
2005-05-12 23:11:58 UTC (rev 44480)
+++
trunk/release/monobuild/www/builds/testing/fedora-3-i386/gtk-sharp/r4543/logs/build.log
2005-05-12 23:28:35 UTC (rev 44481)
@@ -0,0 +1,2 @@
+Testing...
+Testing...
Added:
trunk/release/monobuild/www/builds/testing/fedora-3-i386/gtk-sharp/r4543/logs/mktarball.log
===================================================================
---
trunk/release/monobuild/www/builds/testing/fedora-3-i386/gtk-sharp/r4543/logs/mktarball.log
2005-05-12 23:11:58 UTC (rev 44480)
+++
trunk/release/monobuild/www/builds/testing/fedora-3-i386/gtk-sharp/r4543/logs/mktarball.log
2005-05-12 23:28:35 UTC (rev 44481)
@@ -0,0 +1 @@
+Testing...
Added:
trunk/release/monobuild/www/builds/testing/fedora-3-i386/gtk-sharp/r4543/logs/rpm.log
===================================================================
---
trunk/release/monobuild/www/builds/testing/fedora-3-i386/gtk-sharp/r4543/logs/rpm.log
2005-05-12 23:11:58 UTC (rev 44480)
+++
trunk/release/monobuild/www/builds/testing/fedora-3-i386/gtk-sharp/r4543/logs/rpm.log
2005-05-12 23:28:35 UTC (rev 44481)
@@ -0,0 +1 @@
+Testing...
Added:
trunk/release/monobuild/www/builds/testing/suse-93-i586/gecko-sharp-2.0/r4543/files/gecko.rpm
===================================================================
Added:
trunk/release/monobuild/www/builds/testing/suse-93-i586/gecko-sharp-2.0/r4543/files/gecko.tar.gz
===================================================================
Added:
trunk/release/monobuild/www/builds/testing/suse-93-i586/gecko-sharp-2.0/r4543/info.xml
===================================================================
---
trunk/release/monobuild/www/builds/testing/suse-93-i586/gecko-sharp-2.0/r4543/info.xml
2005-05-12 23:11:58 UTC (rev 44480)
+++
trunk/release/monobuild/www/builds/testing/suse-93-i586/gecko-sharp-2.0/r4543/info.xml
2005-05-12 23:28:35 UTC (rev 44481)
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!-- Data describing a set of builds for a component on a platform -->
+
+
+<build>
+ <platform>suse-93-i586</platform>
+ <package>gecko-sharp-2.0</package>
+ <revision>123</revision>
+
+ <buildhost>monobuild1</buildhost>
+ <start>Fri Apr 29 14:20:47</start>
+ <finish>Fri Apr 29 15:20:47</finish>
+
+ <steps>
+ <step>
+ <name>Make Tarballs</name>
+ <status>success</status>
+ <log>mktarball.log</log>
+ <download>gecko.tar.gz</download>
+ </step>
+ <step>
+ <name>Build</name>
+ <status>success</status>
+ <log>build.log</log>
+ </step>
+ <step>
+ <name>Make RPMS</name>
+ <status>success</status>
+ <log>rpm.log</log>
+ <download>gecko.rpm</download>
+ </step>
+
+ </steps>
+
+
+</build>
+
+
+
+
Added:
trunk/release/monobuild/www/builds/testing/suse-93-i586/gecko-sharp-2.0/r4543/logs/build.log
===================================================================
---
trunk/release/monobuild/www/builds/testing/suse-93-i586/gecko-sharp-2.0/r4543/logs/build.log
2005-05-12 23:11:58 UTC (rev 44480)
+++
trunk/release/monobuild/www/builds/testing/suse-93-i586/gecko-sharp-2.0/r4543/logs/build.log
2005-05-12 23:28:35 UTC (rev 44481)
@@ -0,0 +1,2 @@
+Testing...
+Testing...
Added:
trunk/release/monobuild/www/builds/testing/suse-93-i586/gecko-sharp-2.0/r4543/logs/mktarball.log
===================================================================
---
trunk/release/monobuild/www/builds/testing/suse-93-i586/gecko-sharp-2.0/r4543/logs/mktarball.log
2005-05-12 23:11:58 UTC (rev 44480)
+++
trunk/release/monobuild/www/builds/testing/suse-93-i586/gecko-sharp-2.0/r4543/logs/mktarball.log
2005-05-12 23:28:35 UTC (rev 44481)
@@ -0,0 +1 @@
+Testing...
Added:
trunk/release/monobuild/www/builds/testing/suse-93-i586/gecko-sharp-2.0/r4543/logs/rpm.log
===================================================================
---
trunk/release/monobuild/www/builds/testing/suse-93-i586/gecko-sharp-2.0/r4543/logs/rpm.log
2005-05-12 23:11:58 UTC (rev 44480)
+++
trunk/release/monobuild/www/builds/testing/suse-93-i586/gecko-sharp-2.0/r4543/logs/rpm.log
2005-05-12 23:28:35 UTC (rev 44481)
@@ -0,0 +1 @@
+Testing...
Modified: trunk/release/monobuild/www/cgi-perl/buildstatus.pl
===================================================================
--- trunk/release/monobuild/www/cgi-perl/buildstatus.pl 2005-05-12 23:11:58 UTC
(rev 44480)
+++ trunk/release/monobuild/www/cgi-perl/buildstatus.pl 2005-05-12 23:28:35 UTC
(rev 44481)
@@ -9,8 +9,8 @@
use Mono::Build;
# Read these in from a file later...
-my @linux_distros = Mono::Build::getDistros();
-my @linux_components = Mono::Build::getComponents();
+my @linux_platforms = Mono::Build::getPlatforms();
+my @linux_packages = Mono::Build::getPackages();
my @other_platforms = (
'sparc',
@@ -18,7 +18,7 @@
'mac'
);
-my @other_components = ('mono-1.1');
+my @other_packages = ('mono-1.1');
my $rev;
@@ -37,45 +37,47 @@
END
print<<END;
-<h3>Linux Distros</h3>
+<h3>Linux Platforms</h3>
<p>
<table class="buildstatus">
<thead><td></td>
END
-foreach my $distro (sort @linux_distros)
+foreach my $platform (sort @linux_platforms)
{
- print "<td>$distro</td>\n";
+ print "<td>$platform</td>\n";
}
print "</thead><tbody>";
-foreach my $component (sort @linux_components)
+foreach my $package (sort @linux_packages)
{
- print "<tr><td>$component</td>\n";
+ print "<tr><td>$package</td>\n";
my @buildhosts;
- @buildhosts = Mono::Build::getPackageInfo($component, "BUILD_HOSTS");
+ @buildhosts = Mono::Build::getPackageInfo($package, "BUILD_HOSTS");
- foreach my $distro (sort @linux_distros)
+ foreach my $platform (sort @linux_platforms)
{
print "<td ";
- my $rand = randomResult();
- my $state = Mono::Build::getState($rand);
+ my $rev = Mono::Build::getLatestRevision($platform, $package);
+ my $state = Mono::Build::getState($platform, $package, $rev);
-
- unless (Mono::Build::arrayContains($distro, @buildhosts)) {
+ unless (Mono::Build::arrayContains($platform, @buildhosts)) {
$state = "notused"
}
+ # if it hasn't been been yet...
+ if($rev eq "" && $state eq "")
+ {
+ $state = "new";
+ }
+
print "class=$state>";
- $rev = "r454";
-
if($state ne 'notused')
{
- #print "<a
href=logs/$component-$distro-$rev$rand.log>$rev$rand</a>";
- print "<a
href=/package_status_example.html>$rev$rand</a>";
+ print "<a
href=packagestatus.pl?platform=$platform&package=$package&revision=$rev>$rev</a>";
}
print "</td>\n";
@@ -101,18 +103,18 @@
<thead><td></td>
END
-foreach my $distro (sort @other_platforms)
+foreach my $other_platform (sort @other_platforms)
{
- print "<td>$distro</td>\n";
+ print "<td>$other_platform</td>\n";
}
print "</thead><tbody>";
-foreach my $component (sort @other_components)
+foreach my $other_package (sort @other_packages)
{
- print "<tr><td>$component</td>\n";
+ print "<tr><td>$other_package</td>\n";
- foreach my $distro (sort @other_platforms)
+ foreach my $other_platform (sort @other_platforms)
{
print "<td ";
my $rand;
@@ -122,15 +124,15 @@
# Make sure you don't get unused
do
{
- $rand = randomResult();
- $state = Mono::Build::getState($rand);
+ $rand = randomRev();
+ $state = randomState($rand);
} while($state eq 'notused');
print "class=$state>";
$rev = "r454";
- #print "<a
href=logs/$component-$distro-$rev$rand.log>$rev$rand</a>";
+ #print "<a
href=logs/$package-$platform-$rev$rand.log>$rev$rand</a>";
print "<a href=/package_status_example.html>$rev$rand</a>";
print "</td>\n";
@@ -155,9 +157,10 @@
<table class=legend>
<tbody>
-<tr><th>In Progress</th><td class=building></td></tr>
+<tr><th>In Progress</th><td class=inprogress></td></tr>
<tr><th>Success</td><td class=success></td></tr>
<tr><th>Failed</td><td class=failure></td></tr>
+<tr><th>Never Built</td><td class=new></td></tr>
</tbody>
</table>
@@ -174,9 +177,20 @@
END
-sub randomResult
+sub randomRev
{
- return int(rand(3)) + 1;
+ return int(rand(3) + 1);
}
-
+sub randomState
+{
+ my $index = shift;
+ my @states = (
+ 'notused',
+ 'success',
+ 'failure',
+ 'inprogress',
+ );
+
+ return $states[$index % @states];
+}
Added: trunk/release/monobuild/www/cgi-perl/packagestatus.pl
===================================================================
--- trunk/release/monobuild/www/cgi-perl/packagestatus.pl 2005-05-12
23:11:58 UTC (rev 44480)
+++ trunk/release/monobuild/www/cgi-perl/packagestatus.pl 2005-05-12
23:28:35 UTC (rev 44481)
@@ -0,0 +1,138 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+# Decided on XPath because it's simpler to install, even though it's probably
slower than XML::LibXML
+use XML::XPath;
+use CGI qw(:standard);
+
+# Local modules
+use FindBin;
+use lib "$FindBin::RealBin/../..";
+use Mono::Build;
+
+my $html;
+
+my $xp;
+my $buildhost;
+my $start;
+my $finish;
+
+my $platform = param('platform');
+my $package = param('package');
+my $revision = param('revision');
+
+# Just for testing...
+#$platform = "suse-93-i586";
+#$package = "gecko-sharp-2.0";
+#$revision = "r4543";
+
+# Figure out where the xml file is at
+my $xmlFile =
"$Mono::Build::Config::buildsDir/$platform/$package/$revision/info.xml";
+
+# Try to open and get data out of the xml document
+eval {
+ $xp = XML::XPath->new(filename => $xmlFile);
+ $buildhost = $xp->findvalue('/build/buildhost');
+ $start = $xp->findvalue('/build/start');
+ $finish = $xp->findvalue('/build/finish');
+};
+
+if($@)
+{
+ $html = "<h1>Mono Build Status</h1>";
+ $html .= "<p>No information found: $package -- $platform --
$revision</p>";
+
+}
+else
+{
+
+ $html = qq(
+
+ <h1>$package -- $platform -- $revision</h1>
+
+ <h3>Build status</h3>
+
+ <p>
+ <table>
+ <tbody>
+ <tr>
+ <th>Build started:</th>
+
+ <td>$start</td>
+
+ <th>Build completed:</th>
+ <td>$finish</td>
+
+ </tr>
+
+ <tr>
+ <th>Build host</th>
+ <td>$buildhost</td>
+
+ </tr>
+ </tbody></table>
+
+ <h3>Build Steps</h3>
+ <p>
+ <table>
+ <tbody>);
+
+ # Start through the build steps...
+
+ my $steps = $xp->find('/build/steps/step');
+
+ foreach my $step ($steps->get_nodelist())
+ {
+
+ # Get each data out of the step...
+ my $name = $step->find('name');
+ my $status = $step->find('status');
+ my $log =
"/$Mono::Build::Config::buildsUrl/$platform/$package/$revision/logs/" .
$step->find('log');
+ my $download_file = $step->find('download');
+ my $download =
"/$Mono::Build::Config::buildsUrl/$platform/$package/$revision/files/$download_file";
+
+ $html .= qq(
+ <tr>
+ <th>$name</th>
+ <td><a href="$log">$status</a></td>
+
+ );
+
+ if($download)
+ {
+ $html .= qq(
+ <td><a
href="$download">$download_file</a></td>
+ </tr>
+ );
+
+ }
+ }
+
+ $html .= "</tbody></table></p>";
+
+
+}
+
+# Print out the html
+
+print<<END;
+Content-type: text/html
+
+<html><head>
+
+<title>Mono Build Status</title><link rel="stylesheet" href="/build.css"
type="text/css"></head>
+
+<body>
+
+$html
+
+</body>
+</html>
+
+END
+
+
+
+
Property changes on: trunk/release/monobuild/www/cgi-perl/packagestatus.pl
___________________________________________________________________
Name: svn:executable
+ *
Added: trunk/release/monobuild/www/favicon.ico
===================================================================
(Binary files differ)
Property changes on: trunk/release/monobuild/www/favicon.ico
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches