330374 7 changes for Tinderbox, including a change to the way builds are uploaded. They now go to yyyy-mm-dd-hh directories according to their build id. r=preed

This commit is contained in:
mark%moxienet.com 2006-03-14 02:21:44 +00:00
Родитель bd7b62fd23
Коммит 41c7c1bbbc
4 изменённых файлов: 105 добавлений и 458 удалений

Просмотреть файл

@ -1,450 +1,38 @@
#!/usr/bin/perl
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
#!/usr/bin/perl -w
require 5.003;
# This script has split some functions off into a util
# script so they can be re-used by other scripts.
require "build-seamonkey-util.pl";
#
# This script gets called after a full mozilla build & test.
# Use this to build and test an embedded or commercial branding of Mozilla.
#
# ./build-seamonkey-utils.pl will call PostMozilla::main() after
# a successful build and testing of mozilla. This package can report
# status via the $TinderUtils::build_status variable. Yeah this is a hack,
# but it works for now. Feel free to improve this mechanism to properly
# return values & stuff. -mcafee
#
# Things to do:
# * Get pull by branch working
#
#
use strict;
use File::Path; # for rmtree();
package PostMozilla;
# "use strict" complains if we do not define these.
# They are not initialized here. The default values are after "__END__".
$TreeSpecific::name = $TreeSpecific::build_target = $TreeSpecific::checkout_target = $TreeSpecific::clobber_target = $::Version = undef;
sub checkout {
my ($mozilla_build_dir) = @_;
$::Version = '$Revision: 1.7 $ ';
# chdir to build directory
chdir "$mozilla_build_dir";
# Next, do the checkout:
print "Settings::CVS = $Settings::CVS\n";
my $status = TinderUtils::run_shell_command("$Settings::CVS checkout mozilla/camino");
# hack in the camino prefs, if needed
return $status;
{
TinderUtils::Setup();
tree_specific_overides();
TinderUtils::Build();
}
# End of main
#======================================================================
sub ReadHeapDumpToHash($$)
{
my($dumpfile, $hashref) = @_;
local(*DUMP_FILE);
open(DUMP_FILE, "< $dumpfile") || die "Can't open heap output file $dumpfile\n";
my $section = 0;
my $zone = "";
my $default_zone_bytes = 0;
while (<DUMP_FILE>)
{
my($line) = $_;
chomp($line);
sub tree_specific_overides {
$TreeSpecific::name = 'mozilla';
$TreeSpecific::build_target = 'build_all_depend';
$TreeSpecific::checkout_target = 'checkout';
$TreeSpecific::clobber_target = 'distclean';
$TreeSpecific::extrafiles = 'mozilla/camino/config';
}
if ($line =~ /^\#/ || $line =~ /^\s*$/ || $line =~ /------------------------/) { # ignore comments and empty lines
next;
}
# use the 'All zones' lines as section markers
if ($line =~ /^All zones:/) {
$section ++;
next;
}
if ($section == 2) # we're in the detailed section
{
if ($line =~ /^Zone ([^_]+).+\((\d+).+\)/)
{
$zone = $1;
if ($zone eq "DefaultMallocZone") {
$default_zone_bytes = $2;
}
TinderUtils::print_log(" $line\n");
next;
}
if ($zone eq "DefaultMallocZone")
{
if ($line =~ /(\w+)\s*=\s*(\d+)\s*\((\d+).+\)/)
{
my(%entry_hash) = ("count", $2,
"bytes", $3);
$hashref->{$1} = \%entry_hash;
}
elsif ($line =~ /^<not.+>\s*=\s*(\d+)\s*\((\d+).+\)/)
{
my(%entry_hash) = ("count", $1,
"bytes", $2);
$hashref->{"malloc_block"} = \%entry_hash;
}
}
}
}
close(DUMP_FILE);
return $default_zone_bytes;
}
sub DumpHash($)
{
my($hashref) = @_;
print "Dumping values\n";
my($key);
foreach $key (keys %{$hashref})
{
my($value) = $hashref->{$key};
print "Class $key count $value->{'count'} bytes $value->{'bytes'}\n";
}
}
sub ClassEntriesEqual($$)
{
my($hashone, $hashtwo) = @_;
return ($hashone->{"count"} == $hashtwo->{"count"}) and ($hashone->{"bytes"} == $hashtwo->{"bytes"})
}
sub DumpHashDiffs($$)
{
my($beforehash, $afterhash) = @_;
my($name_width) = 50;
my($print_format) = "%10s %-${name_width}s %8d %8d\n";
TinderUtils::print_log(sprintf "%10s %-${name_width}s %8s %8s\n", "", "Class", "Count", "Bytes");
TinderUtils::print_log("--------------------------------------------------------------------------------\n");
my($key);
foreach $key (keys %{$beforehash})
{
my($beforevalue) = $beforehash->{$key};
if (exists $afterhash->{$key})
{
my($aftervalue) = $afterhash->{$key};
if (!ClassEntriesEqual($beforevalue, $aftervalue))
{
my($count_change) = $aftervalue->{"count"} - $beforevalue->{"count"};
my($bytes_change) = $aftervalue->{"bytes"} - $beforevalue->{"bytes"};
if ($bytes_change > 0) {
TinderUtils::print_log(sprintf $print_format, "Leaked", $key, $count_change, $bytes_change);
} else {
TinderUtils::print_log(sprintf $print_format, "Freed", $key, $count_change, $bytes_change);
}
}
}
else
{
#$before_only{$key} = $beforevalue;
TinderUtils::print_log(sprintf $print_format, "Freed", $key, $beforevalue->{'count'}, $beforevalue->{'bytes'});
}
}
# now look for things only in the after cache
foreach $key (keys %{$afterhash})
{
my($value) = $afterhash->{$key};
if (!exists $beforehash->{$key})
{
#$after_only{$key} = $value;
TinderUtils::print_log(sprintf $print_format, "Leaked", $key, $value->{'count'}, $value->{'bytes'});
}
}
TinderUtils::print_log("--------------------------------------------------------------------------------\n");
}
sub ParseHeapOutput($$)
{
my($beforedump, $afterdump) = @_;
TinderUtils::print_log("Before window open:\n");
my %before_data;
my $before_heap = ReadHeapDumpToHash($beforedump, \%before_data);
TinderUtils::print_log("After window open and close:\n");
my %after_data;
my $after_heap = ReadHeapDumpToHash($afterdump, \%after_data);
# DumpHash(\%before_data);
# DumpHash(\%after_data);
TinderUtils::print_log("Open/close window leaks:\n");
DumpHashDiffs(\%before_data, \%after_data);
my $heap_diff = $after_heap - $before_heap;
TinderUtils::print_log("TinderboxPrint:<acronym title=\"Per-window leaks\">Lw:".TinderUtils::PrintSize($heap_diff, 3)."B</acronym>\n");
}
sub CaminoWindowLeaksTest($$$$$)
{
my ($test_name, $build_dir, $binary, $args, $timeout_secs) = @_;
my($status) = 'success';
my $beforefile = "/tmp/nav_before_heap.dat";
my $afterfile = "/tmp/nav_after_heap.dat";
my $run_test = 1; # useful for testing parsing code
if ($run_test)
{
my $close_window_script =<<END_SCRIPT;
tell application "Camino"
delay 5
close the first window
end tell
END_SCRIPT
my $new_window_script =<<END_SCRIPT;
tell application "Camino"
Get URL "about:blank"
delay 20
close the first window
end tell
END_SCRIPT
TinderUtils::print_log("Window leak test\n");
my $binary_basename = File::Basename::basename($binary);
my $binary_dir = File::Basename::dirname($binary);
my $binary_log = "$build_dir/$test_name.log";
my $cmd = $binary_basename;
my $pid = TinderUtils::fork_and_log($build_dir, $binary_dir, $cmd, $binary_log);
# close the existing window
system("echo '$close_window_script' | osascript");
# open and close few window to get to a stable point
system("echo '$new_window_script' | osascript");
# dump before data
system("heap $pid > $beforefile");
# run the test
system("echo '$new_window_script' | osascript");
# dump after data
system("heap $pid > $afterfile");
my $result = TinderUtils::wait_for_pid($pid, $timeout_secs);
}
ParseHeapOutput($beforefile, $afterfile);
return $status;
}
sub PreBuild {
}
sub main {
my ($mozilla_build_dir) = @_;
TinderUtils::print_log("Starting camino build.\n");
# Tell camino to unbuffer stdio, otherwise when we kill the child process
# stdout & stderr won't get flushed.
$ENV{MOZ_UNBUFFERED_STDIO} = 1;
# Pending a config file, stuff things here.
my $post_status = 'success'; # Success until we report a failure.
my $status = 0; # 0 = success
# Control tests from here, sorry no config file yet.
my $camino_alive_test = 1;
my $camino_test8_test = 0;
my $camino_layout_performance_test = 1;
my $camino_startup_test = 1;
my $camino_window_leaks_test = 0;
my $safari_layout_performance_test = 0;
my $camino_clean_profile = 1;
# Build flags
my $camino_build_static = 0;
my $camino_build_opt = 1;
my $camino_dir = "$mozilla_build_dir/mozilla/camino";
my $embedding_dir = "$mozilla_build_dir/mozilla/embedding/config";
my $camino_binary = "Camino";
unless ($Settings::TestOnly) {
TinderUtils::print_log("Testing build status...\n");
if ($status != 0) {
TinderUtils::print_log("busted, pbxbuild status non-zero\n");
$post_status = 'busted';
} elsif (not TinderUtils::BinaryExists("$camino_dir/build/Camino.app/Contents/MacOS/$camino_binary")) {
TinderUtils::print_log("Error: binary not found: $camino_dir/build/Camino.app/Contents/MacOS/$camino_binary\n");
$post_status = 'busted';
} else {
$post_status = 'success';
}
}
#
# Tests...
#
# Clean profile out, if set.
# Assume Camino always uses ~/Library/Application Support/Camino for now.
if ($camino_clean_profile) {
# Warning: workaround camino bug, delete whole Camino dir.
my $chim_profile_dir = "$ENV{HOME}/Library/Application Support/Camino";
TinderUtils::print_log("Deleting $chim_profile_dir...\n");
print "Deleting $chim_profile_dir...\n";
File::Path::rmtree([$chim_profile_dir], 0, 0);
if (-e "$chim_profile_dir") {
TinderUtils::print_log("Error: rmtree('$chim_profile_dir') failed\n");
}
# Re-create profile. We have no -CreateProfile, so we instead
# run the AliveTest first.
}
my $binary_dir = "$camino_dir/build/Camino.app/Contents/MacOS";
my $full_binary_name = "$binary_dir/Camino";
# AliveTest for camino, about:blank
if ($camino_alive_test and $post_status eq 'success') {
$post_status = TinderUtils::AliveTest("CaminoAliveTest",
$binary_dir,
[$full_binary_name, "-url", "about:blank"],
45);
}
# Find the prefs file
# e.g. /Users/cltbld/Library/Application Support/Camino/Profiles
# so File::Path::find will find the prefs.js file.
#
my $pref_file = "prefs.js";
my $start_dir = "/Users/cltbld/Library/Application Support/Camino";
my $found = undef;
my $sub = sub {$pref_file = $File::Find::name, $found++ if $pref_file eq $_};
File::Find::find($sub, $start_dir); # Find prefs.js, write this to $pref_file.
# Set up performance prefs.
if ($pref_file and ($camino_layout_performance_test or 1)) {
# Some tests need browser.dom.window.dump.enabled set to true, so
# that JS dump() will work in optimized builds.
if (system("\\grep -s browser.dom.window.dump.enabled $pref_file > /dev/null")) {
TinderUtils::print_log("Setting browser.dom.window.dump.enabled\n");
open PREFS, ">>$pref_file" or die "can't open $pref_file ($?)\n";
print PREFS "user_pref(\"browser.dom.window.dump.enabled\", true);\n";
close PREFS;
} else {
TinderUtils::print_log("Already set browser.dom.window.dump.enabled\n");
}
# Set security prefs to allow us to close our own window,
# pageloader test (and possibly other tests) needs this on.
if (system("\\grep -s dom.allow_scripts_to_close_windows $pref_file > /dev/null")) {
TinderUtils::print_log("Setting dom.allow_scripts_to_close_windows to true.\n");
open PREFS, ">>$pref_file" or die "can't open $pref_file ($?)\n";
print PREFS "user_pref(\"dom.allow_scripts_to_close_windows\", true);\n";
close PREFS;
} else {
TinderUtils::print_log("Already set dom.allow_scripts_to_close_windows\n");
}
}
# LayoutTest8
# resource:///res/samples/test8.html
if ($camino_test8_test and $post_status eq 'success') {
if(0) {
open STDOUT, ">/tmp/foo";
open STDERR, ">&/tmp/foo";
select STDOUT; $| = 1; # make STDOUT unbuffered
select STDERR; $| = 1; # make STDERR unbuffered
print STDERR "hello, world\n";
chdir("$camino_dir/build/Camino.app/Contents/MacOS");
exec "./Camino -url \"http://lxr.mozilla.org/seamonkey/source/webshell/tests/viewer/samples/test8.html\"";
#exec "foo";
} else {
$post_status = TinderUtils::AliveTest("CaminoLayoutTest8Test",
$binary_dir,
[$full_binary_name, "-url", "http://lxr.mozilla.org/seamonkey/source/webshell/tests/viewer/samples/test8.html"],
20);
}
}
# Pageload test.
if ($camino_layout_performance_test and $post_status eq 'success') {
$post_status =
TinderUtils::LayoutPerformanceTest("CaminoLayoutPerformanceTest",
"$camino_dir/build/Camino.app/Contents/MacOS",
[$full_binary_name, "-url"]);
}
# Pageload test -- Safari.
if ($safari_layout_performance_test) {
TinderUtils::run_system_cmd("/Applications/Utilities/Safari.app/Contents/MacOS/Safari-wrap.pl http://$Settings::pageload_server/page-loader/loader.pl?delay=1000%26nocache=0%26maxcyc=4%26timeout=$Settings::LayoutPerformanceTestPageTimeout%26auto=1", 30);
# This is a hack.
TinderUtils::run_system_cmd("sync; sleep 400", 405);
TinderUtils::run_system_cmd("/Applications/Utilities/Safari.app/Contents/MacOS/Safari-wrap.pl quit", 30);
TinderUtils::print_log "TinderboxPrint:" .
"<a title=\"Avg of the median per url pageload time\" href=\"http://$Settings::results_server/graph/query.cgi?testname=pageload&tbox=" . ::hostname() . "-aux&autoscale=1&days=7&avg=1\">~Tp" . "</a>\n";
}
# Startup test.
if ($camino_startup_test and $post_status eq 'success') {
$post_status =
TinderUtils::StartupPerformanceTest("CaminoStartupPerformanceTest",
$full_binary_name,
"$camino_dir/build/Camino.app/Contents/MacOS",
["-url"],
"file:$camino_dir/../../../startup-test.html");
}
if ($camino_window_leaks_test and $post_status eq 'success') {
$post_status = CaminoWindowLeaksTest("CaminoWindowLeakTest",
"$camino_dir/build/Camino.app/Contents/MacOS/",
$full_binary_name,
"-url \"http://www.mozilla.org\"",
20);
}
# Pass our status back to calling script.
return $post_status;
}
# Need to end with a true value, (since we're using "require").
1;

Просмотреть файл

@ -24,7 +24,7 @@ use Config; # for $Config{sig_name} and $Config{sig_num}
use File::Find ();
use File::Copy;
$::UtilsVersion = '$Revision: 1.312 $ ';
$::UtilsVersion = '$Revision: 1.313 $ ';
package TinderUtils;
@ -1126,6 +1126,13 @@ sub rebootSystem {
# Create a profile named $Settings::MozProfileName in the normal $build_dir place.
sub create_profile {
my ($build_dir, $binary_dir, $binary) = @_;
if ($Settings::ProductName eq 'Camino') {
my $profile_dir = get_profile_dir($build_dir);
mkdir($profile_dir);
open(PREFS, '>>'.$profile_dir.'/prefs.js');
close(PREFS);
return { exit_value=>0 };
}
my $profile_log = "$build_dir/create-profile.log";
my $result = run_cmd($build_dir, $binary_dir,
[$binary, "-CreateProfile", $Settings::MozProfileName],
@ -1141,6 +1148,7 @@ sub get_profile_dir {
my $profile_product_name = $Settings::ProductName;
$profile_product_name = "Mozilla" if ($profile_product_name eq "SeaMonkey");
$profile_product_name = "Firefox" if ($profile_product_name eq "DeerPark");
my $profile_dir;
@ -1182,6 +1190,8 @@ sub get_profile_dir {
} elsif ($profile_product_name eq 'Firefox') {
$profile_dir = "$ENV{HOME}/Library/Application Support/$profile_product_name/Profiles";
($profile_dir) = <"$profile_dir/*$Settings::MozProfileName*">;
} elsif ($profile_product_name eq 'Camino') {
$profile_dir = "$ENV{HOME}/Library/Application Support/Camino";
} else { # Mozilla's Profiles/profilename/salt
$profile_dir = "$ENV{HOME}/Library/$profile_product_name/Profiles/$Settings::MozProfileName/";
}
@ -1716,7 +1726,7 @@ sub run_all_tests {
unlink("$binary_dir/components/compreg.dat") or warn "$binary_dir/components/compreg.dat not removed\n";
if($Settings::RegxpcomTest) {
my $args;
if ($Settings::ProductName =~ /^(Firefox|Thunderbird)$/) {
if ($Settings::ProductName =~ /^(Firefox|Thunderbird|DeerPark)$/) {
$args = [$binary, "-register"];
} else {
$args = ["$binary_dir/regxpcom"];
@ -1856,6 +1866,9 @@ sub run_all_tests {
# Suppress default browser dialog
set_pref($pref_file, 'browser.shell.checkDefaultBrowser', 'false');
}
elsif ($Settings::BinaryName eq 'Camino') {
set_pref($pref_file, 'camino.check_default_browser', 'false');
}
# Suppress security warnings for QA test.
if ($Settings::QATest) {
@ -1879,6 +1892,13 @@ sub run_all_tests {
}
}
if ($Settings::BinaryName eq 'Camino') {
# stdout will be block-buffered and will not be flushed when the test
# timeout expires and the process is killed, this would make tests
# appear to fail.
$ENV{'MOZ_UNBUFFERED_STDIO'} = 1;
}
# Mozilla alive test
#
# Note: Bloat & other tests depend this on working.
@ -2015,8 +2035,19 @@ sub run_all_tests {
# Layout performance test.
if ($Settings::LayoutPerformanceTest and $test_result eq 'success') {
my $app_args = [$binary];
if ($Settings::BinaryName eq 'Camino') {
push(@$app_args, '-url');
}
# When I found this, it avoided setting the profile for Firefox.
# That didn't work on a tinderbox that had multiple profiles.
# Now, it will set the profile if it's not 'default' on the assumption
# that existing tinderboxes were all using 'default' anyway. Why
# so careful? I'm afraid of things like bug 112767, and I assume this
# had been done for a reason. -mm
unless ($Settings::BinaryName eq "TestGtkEmbed" ||
$Settings::BinaryName =~ /^firefox/) {
($Settings::BinaryName =~ /^firefox/ && $Settings::MozProfileName eq 'default') ||
$Settings::BinaryName eq 'Camino') {
push(@$app_args, "-P", $Settings::MozProfileName);
}
@ -2029,8 +2060,10 @@ sub run_all_tests {
if ($Settings::DHTMLPerformanceTest and $test_result eq 'success') {
my @app_args;
if($Settings::BinaryName eq "TestGtkEmbed" ||
$Settings::BinaryName =~ /^firefox/) {
($Settings::BinaryName =~ /^firefox/ && $Settings::MozProfileName eq 'default')) {
@app_args = [$binary];
} elsif($Settings::BinaryName eq 'Camino') {
@app_args = [$binary, '-url'];
} else {
@app_args = [$binary, "-P", $Settings::MozProfileName];
}
@ -2100,6 +2133,8 @@ sub run_all_tests {
my $app_args;
if($Settings::BinaryName eq "TestGtkEmbed") {
$app_args = [];
} elsif($Settings::BinaryName eq 'Camino') {
$app_args = ['-url'];
} else {
$app_args = ["-P", $Settings::MozProfileName];
}
@ -2381,7 +2416,7 @@ sub DHTMLPerformanceTest {
$dhtml_time = AliveTestReturnToken($test_name,
$build_dir,
[@$args, $url],
$Settings::LayoutPerformanceTestTimeout,
$Settings::DHTMLPerformanceTestTimeout,
"_x_x_mozilla_dhtml",
",");

Просмотреть файл

@ -197,9 +197,20 @@ sub makefullsoft {
TinderUtils::run_shell_command "cd $builddir/fullsoft && $builddir/build/autoconf/make-makefile -d ..";
}
TinderUtils::run_shell_command "make -C $builddir/fullsoft";
TinderUtils::run_shell_command "make -C $builddir/fullsoft fullcircle-push";
if ($Settings::BinaryName ne 'Camino') {
TinderUtils::run_shell_command "make -C $builddir/fullsoft fullcircle-push";
}
else {
# Something completely different
TinderUtils::run_shell_command "make -C $builddir/fullsoft fullcircle-push UPLOAD_FILES='`find -X $builddir/dist/Camino.app -type f -perm -111 -exec file {} \\; | grep \": Mach-O\" | sed \"s/: Mach-O.*//\" | xargs`'";
}
if (is_mac()) {
TinderUtils::run_shell_command "make -C $builddir/$Settings::mac_bundle_path";
if ($Settings::BinaryName eq 'Camino') {
TinderUtils::run_shell_command "rsync -a --copy-unsafe-links $builddir/dist/bin/components/*qfa* $builddir/dist/bin/components/talkback $builddir/dist/Camino.app/Contents/MacOS/components";
}
else {
TinderUtils::run_shell_command "make -C $builddir/$Settings::mac_bundle_path";
}
if ($Settings::MacUniversalBinary) {
# Regenerate universal binary, now including Talkback
@ -973,7 +984,11 @@ sub pushit {
$Settings::ReleaseToLatest = 1 if !defined($Settings::ReleaseToLatest);
if ( $Settings::ReleaseToDated ) {
push(@cmds,"ssh $ssh_opts -l $Settings::ssh_user $ssh_server mkdir -p $remote_path/$short_ud");
my $makedirs = "$remote_path/$short_ud";
if ($cachebuild && $Settings::ReleaseToLatest) {
$makedirs .= " $remote_path/latest-$Settings::milestone";
}
push(@cmds,"ssh $ssh_opts -l $Settings::ssh_user $ssh_server mkdir -p $makedirs");
push(@cmds,"rsync -av -e \"ssh $ssh_opts\" $upload_directory/ $Settings::ssh_user\@$ssh_server:$remote_path/$short_ud/");
push(@cmds,"ssh $ssh_opts -l $Settings::ssh_user $ssh_server chmod -R 775 $remote_path/$short_ud");
if ($Settings::ReleaseGroup ne '') {
@ -984,7 +999,7 @@ sub pushit {
push(@cmds,"ssh $ssh_opts -l $Settings::ssh_user $ssh_server rsync -avz $remote_path/$short_ud/ $remote_path/latest-$Settings::milestone/");
}
} elsif ( $Settings::ReleaseToLatest ) {
push(@cmds,"ssh $ssh_opts -l $Settings::ssh_user $ssh_server mkdir -p $remote_path");
push(@cmds,"ssh $ssh_opts -l $Settings::ssh_user $ssh_server mkdir -p $remote_path/latest-$Settings::milestone");
push(@cmds,"scp $scp_opts -r $upload_directory/* $Settings::ssh_user\@$ssh_server:$remote_path/latest-$Settings::milestone/");
push(@cmds,"ssh $ssh_opts -l $Settings::ssh_user $ssh_server chmod -R 775 $remote_path/latest-$Settings::milestone/");
if ($Settings::ReleaseGroup ne '') {
@ -1085,7 +1100,11 @@ sub PreBuild {
# build hour (which may not be today!)
# (3) subsumes (2), so there's no need to check for (2) explicitly.
if ( -e "last-built" ) {
if (!$Settings::OfficialBuildMachinery) {
TinderUtils::print_log "Configured to release hourly builds only\n";
$cachebuild = 0;
}
elsif ( -e "last-built" ) {
my $last = (stat "last-built")[9];
TinderUtils::print_log "Most recent nightly build: " .
localtime($last) . "\n";
@ -1202,13 +1221,17 @@ sub main {
my $ftp_path = $Settings::ftp_path;
my $url_path = $Settings::url_path;
my ($c_hour,$c_day,$c_month,$c_year,$c_yday) = (localtime(time))[2,3,4,5,7];
$c_year = $c_year + 1900; # ftso perl
$c_month = $c_month + 1; # ftso perl
$c_hour = pad_digit($c_hour);
$c_day = pad_digit($c_day);
$c_month = pad_digit($c_month);
my $datestamp = "$c_year-$c_month-$c_day-$c_hour-$Settings::milestone";
my $buildid = get_buildid(objdir=>$objdir);
my $datestamp;
if ($buildid ne '0000000000' &&
$buildid =~ /^(\d{4})(\d{2})(\d{2})(\d{2})$/) {
$datestamp="$1-$2-$3-$4-$Settings::milestone";
}
else {
cleanup();
return returnStatus('Could not find build id', ('busted'));
}
if (is_windows()) {
# hack for cygwin installs with "unix" filetypes
@ -1220,7 +1243,6 @@ sub main {
my($package_dir, $store_name, $local_build_dir);
my $buildid = get_buildid(objdir=>$objdir);
my $pretty_build_name = shorthost() . "-" . $Settings::milestone;
if ($cachebuild) {

Просмотреть файл

@ -194,10 +194,12 @@ $LocaleProduct = "browser";
$shiptalkback = 1;
$ReleaseToLatest = 1; # Push the release to latest-<milestone>?
$ReleaseToDated = 1; # Push the release to YYYY-MM-DD-HH-<milestone>?
$OfficialBuildMachinery = 1; # Allow official clobber nightlies. When false, $cachebuild in post-mozilla-rel.pl can never be true.
$ReleaseGroup = ''; # group to set uploaded files to (if non-empty)
$build_hour = "8";
$package_creation_path = "/xpinstall/packager";
# needs setting for mac + talkback: $mac_bundle_path = "/browser/app";
# path to make in to recreate mac bundle, needed for mac + talkback:
# $mac_bundle_path = "/browser/app";
$ssh_version = "2";
$ssh_user = "cltbld";
$ssh_server = "stage.mozilla.org";
@ -206,7 +208,7 @@ $url_path = "http://ftp.mozilla.org/pub/mozilla.org/mozilla/nightly/experim
$tbox_ftp_path = $ftp_path;
$tbox_url_path = $url_path;
$milestone = "trunk";
$notify_list = "cmp\@mozilla.org";
$notify_list = 'build-announce@mozilla.org';
$stub_installer = 1;
$sea_installer = 1;
$archive = 0;