Files
Mozilla/mozilla/tools/release/Bootstrap/Step/Build.pm
rhelmer%mozilla.com b10dcf0c62 move to new RunShellCommand, split into substeps, various fixes and features. r=preed, b=368579
git-svn-id: svn://10.0.0.236/trunk@219314 18797224-902f-48f8-a5cc-f745e15eee43
2007-02-01 03:50:47 +00:00

80 lines
2.3 KiB
Perl

#
# Build step. Calls tinderbox to produce en-US Firefox build.
#
package Bootstrap::Step::Build;
use Bootstrap::Step;
use Bootstrap::Config;
@ISA = ("Bootstrap::Step");
my $config = new Bootstrap::Config;
sub Execute {
my $this = shift;
my $buildDir = $config->Get('var' => 'buildDir');
my $productTag = $config->Get('var' => 'productTag');
my $rc = $config->Get('var' => 'rc');
my $buildPlatform = $config->Get('var' => 'buildPlatform');
my $logDir = $config->Get('var' => 'logDir');
my $rcTag = $productTag . '_RC' . $rc;
my $lastBuilt = catfile($buildDir, $buildPlatform, 'last-built');
unlink($lastBuilt)
or $this->Log('msg' => "Cannot unlink last-built file $lastBuilt: $!");
$this->Log('msg' => "Unlinked $lastBuilt");
my $buildLog = catfile($logDir, 'build_' . $rcTag . '-build.log');
$this->Shell(
'cmd' => './build-seamonkey.pl',
'cmdArgs' => ['--once', '--mozconfig', 'mozconfig', '--depend',
'--config-cvsup-dir',
catfile($buildDir, 'tinderbox-configs')],
'dir' => $buildDir,
'logFile' => $buildLog,
'timeout' => 36000
);
}
sub Verify {
my $this = shift;
my $buildDir = $config->Get('var' => 'buildDir');
my $productTag = $config->Get('var' => 'productTag');
my $rc = $config->Get('var' => 'rc');
my $rcTag = $productTag.'_RC'.$rc;
my $logDir = $config->Get('var' => 'logDir');
my $buildLog = catfile($logDir, 'build_' . $rcTag . '-build.log');
$this->CheckLog(
'log' => $buildLog,
'notAllowed' => 'tinderbox: status: failed',
);
# $this->CheckLog(
# 'log' => $buildLog,
# 'notAllowed' => '^Error:',
# );
}
sub Announce {
my $this = shift;
my $product = $config->Get('var' => 'product');
my $productTag = $config->Get('var' => 'productTag');
my $version = $config->Get('var' => 'version');
my $rc = $config->Get('var' => 'rc');
my $logDir = $config->Get('var' => 'logDir');
my $rcTag = $productTag . '_RC' . $rc;
my $buildLog = catfile($logDir, 'build_' . $rcTag . '-build.log');
$this->SendAnnouncement(
subject => "$product $version build step finished",
message => "$product $version en-US build is ready to be copied to the candidates dir.",
);
}
1;