gecko/tools/release/Bootstrap/Step/Build.pm

76 lines
2.2 KiB
Perl
Raw Normal View History

#
# Build step. Calls tinderbox to produce en-US Firefox build.
#
package Bootstrap::Step::Build;
use Bootstrap::Step;
use Bootstrap::Config;
@ISA = ("Bootstrap::Step");
sub Execute {
my $this = shift;
my $config = new Bootstrap::Config();
my $buildDir = $config->Get(sysvar => 'buildDir');
my $productTag = $config->Get(var => 'productTag');
my $rc = $config->Get(var => 'rc');
my $buildPlatform = $config->Get(sysvar => '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 $config = new Bootstrap::Config();
my $buildDir = $config->Get(sysvar => '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',
);
}
sub Announce {
my $this = shift;
my $config = new Bootstrap::Config();
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;