bug 428063: support major releases & quit using rc in overloaded ways. r=rhelmer,bhearsum, patch=nrthomas

This commit is contained in:
bhearsum@mozilla.com 2008-04-28 06:48:21 -07:00
Родитель 6f39c3865f
Коммит 7e3f40c1b4
31 изменённых файлов: 295 добавлений и 242 удалений

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

@ -152,9 +152,9 @@ sub GetFtpCandidateDir {
my $bitsUnsigned = $args{'bitsUnsigned'};
my $version = $this->Get(var => 'version');
my $rc = $this->Get(var => 'rc');
my $build = $this->Get(var => 'build');
my $candidateDir = CvsCatfile(GetFtpNightlyDir(), $version . '-candidates', 'rc' . $rc ) . '/';
my $candidateDir = CvsCatfile(GetFtpNightlyDir(), $version . '-candidates', 'build' . $build ) . '/';
my $osFileMatch = $this->SystemInfo(var => 'osname');
@ -187,12 +187,24 @@ sub GetVersion {
my $version = $this->Get(var => 'version');
my $longVersion = $version;
$longVersion =~ s/a([0-9]+)/ Alpha $1/;
$longVersion =~ s/b([0-9]+)/ Beta $1/;
$longVersion =~ s/a([0-9]+)$/ Alpha $1/;
$longVersion =~ s/b([0-9]+)$/ Beta $1/;
$longVersion =~ s/rc([0-9]+)$/ RC $1/;
return ($longName) ? $longVersion : $version;
}
# Sometimes we need the application version to be different from what we "call"
# the build, eg public release candidates for a major release (3.0 RC1). The var
# appVersion is an optional definition used for $appName/config/version.txt, and
# hence in the filenames coming off the tinderbox.
sub GetAppVersion {
my $this = shift;
return ($this->Exists(var => 'appVersion')) ?
$this->Get(var => 'appVersion') : $this->GetVersion(longName => 0);
}
sub GetOldVersion {
my $this = shift;
my %args = @_;
@ -210,6 +222,15 @@ sub GetOldVersion {
return ($longName) ? $oldLongVersion : $oldVersion;
}
# Like GetAppVersion(), but for the previous release
# eg we're doing 3.0RC2 and need to refer to 3.0RC1
sub GetOldAppVersion {
my $this = shift;
return ($this->Exists(var => 'oldAppVersion')) ?
$this->Get(var => 'oldAppVersion') : $this->GetOldVersion(longName => 0);
}
##
# Exists checks to see if a config variable exists.
# Returns boolean (1 or 0)

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

@ -327,7 +327,7 @@ sub CreateCandidatesDir() {
#
# Note the '..' at the end of the chmod string; this is because
# Config::GetFtpCandidateDir() returns the full path, including the
# rcN directories on the end. What we really want to ensure
# buildN directories on the end. What we really want to ensure
# have the correct permissions (from the mkdir call above) is the
# firefox/nightly/$version-candidates/ directory.
#

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

@ -19,11 +19,11 @@ sub Execute {
my $version = $config->GetVersion(longName => 0);
my $buildDir = $config->Get(sysvar => 'buildDir');
my $productTag = $config->Get(var => 'productTag');
my $rc = $config->Get(var => 'rc');
my $build = $config->Get(var => 'build');
my $buildPlatform = $config->Get(sysvar => 'buildPlatform');
my $logDir = $config->Get(sysvar => 'logDir');
my $sysname = $config->SystemInfo(var => 'sysname');
my $rcTag = $productTag . '_RC' . $rc;
my $buildTag = $productTag . '_BUILD' . $build;
if ($version eq 'nightly') {
$this->Log(msg => 'Skip force-clobber for nightly mode');
@ -36,7 +36,7 @@ sub Execute {
}
}
my $buildLog = catfile($logDir, 'build_' . $rcTag . '-build.log');
my $buildLog = catfile($logDir, 'build_' . $buildTag . '-build.log');
# For Cygwin only, ensure that the system mount point is binmode
# This forces CVS to use Unix-style linefeed EOL characters.
@ -78,8 +78,8 @@ sub Verify {
my $version = $config->GetVersion(longName => 0);
my $buildDir = $config->Get(sysvar => 'buildDir');
my $productTag = $config->Get(var => 'productTag');
my $rc = $config->Get(var => 'rc');
my $rcTag = $productTag.'_RC'.$rc;
my $build = $config->Get(var => 'build');
my $buildTag = $productTag.'_BUILD'.$build;
my $logDir = $config->Get(sysvar => 'logDir');
if ($version eq 'nightly') {
@ -87,7 +87,7 @@ sub Verify {
return;
}
my $buildLog = catfile($logDir, 'build_' . $rcTag . '-build.log');
my $buildLog = catfile($logDir, 'build_' . $buildTag . '-build.log');
$this->CheckLog(
log => $buildLog,
@ -112,7 +112,7 @@ sub Push {
my $config = new Bootstrap::Config();
my $version = $config->GetVersion(longName => 0);
my $productTag = $config->Get(var => 'productTag');
my $rc = $config->Get(var => 'rc');
my $build = $config->Get(var => 'build');
my $logDir = $config->Get(sysvar => 'logDir');
my $stagingUser = $config->Get(var => 'stagingUser');
my $stagingServer = $config->Get(var => 'stagingServer');
@ -122,9 +122,9 @@ sub Push {
return;
}
my $rcTag = $productTag . '_RC' . $rc;
my $buildLog = catfile($logDir, 'build_' . $rcTag . '-build.log');
my $pushLog = catfile($logDir, 'build_' . $rcTag . '-push.log');
my $buildTag = $productTag . '_BUILD' . $build;
my $buildLog = catfile($logDir, 'build_' . $buildTag . '-build.log');
my $pushLog = catfile($logDir, 'build_' . $buildTag . '-push.log');
my $logParser = new MozBuild::TinderLogParse(
logFile => $buildLog,
@ -165,7 +165,7 @@ sub Announce {
my $version = $config->GetVersion(longName => 0);
my $product = $config->Get(var => 'product');
my $productTag = $config->Get(var => 'productTag');
my $rc = $config->Get(var => 'rc');
my $build = $config->Get(var => 'build');
my $logDir = $config->Get(sysvar => 'logDir');
if ($version eq 'nightly') {
@ -173,8 +173,8 @@ sub Announce {
return;
}
my $rcTag = $productTag . '_RC' . $rc;
my $buildLog = catfile($logDir, 'build_' . $rcTag . '-build.log');
my $buildTag = $productTag . '_BUILD' . $build;
my $buildLog = catfile($logDir, 'build_' . $buildTag . '-build.log');
my $logParser = new MozBuild::TinderLogParse(
logFile => $buildLog,
@ -200,14 +200,14 @@ sub StoreBuildID() {
my $config = new Bootstrap::Config();
my $productTag = $config->Get(var => 'productTag');
my $rc = $config->Get(var => 'rc');
my $build = $config->Get(var => 'build');
my $logDir = $config->Get(sysvar => 'logDir');
my $stagingUser = $config->Get(var => 'stagingUser');
my $stagingServer = $config->Get(var => 'stagingServer');
my $rcTag = $productTag . '_RC' . $rc;
my $buildLog = catfile($logDir, 'build_' . $rcTag . '-build.log');
my $pushLog = catfile($logDir, 'build_' . $rcTag . '-push.log');
my $buildTag = $productTag . '_BUILD' . $build;
my $buildLog = catfile($logDir, 'build_' . $buildTag . '-build.log');
my $pushLog = catfile($logDir, 'build_' . $buildTag . '-push.log');
my $logParser = new MozBuild::TinderLogParse(
logFile => $buildLog,
@ -252,7 +252,7 @@ sub PublishTalkbackSymbols() {
my $config = new Bootstrap::Config();
my $product = $config->Get(var => 'product');
my $version = $config->Get(var => 'version');
my $rc = $config->Get(var => 'rc');
my $build = $config->Get(var => 'build');
my $productTag = $config->Get(var => 'productTag');
my $logDir = $config->Get(sysvar => 'logDir');
my $buildDir = $config->Get(sysvar => 'buildDir');
@ -264,11 +264,11 @@ sub PublishTalkbackSymbols() {
my $symbolServerPath = $config->Get(var => 'symbolServerPath');
my $symbolServerKey = $config->Get(var => 'symbolServerKey');
my $rcTag = $productTag . '_RC' . $rc;
my $buildLog = catfile($logDir, 'build_' . $rcTag . '-build.log');
my $symbolLog = catfile($logDir, 'build_' . $rcTag . '-symbols.log');
my $buildTag = $productTag . '_BUILD' . $build;
my $buildLog = catfile($logDir, 'build_' . $buildTag . '-build.log');
my $symbolLog = catfile($logDir, 'build_' . $buildTag . '-symbols.log');
my $versionedSymbolDir = catfile($symbolDir, $product . '-' . $version,
'rc' . $rc);
'build' . $build);
# Create symbols work area.
if (-e $versionedSymbolDir) {
@ -319,7 +319,7 @@ sub PublishTalkbackSymbols() {
'symbol',
$pdbFile],
logFile => catfile($symbolOutputDir,
$product . '-' . $version . 'rc' . $rc .
$product . '-' . $version . 'build' . $build .
'-WINNT-' . $buildID . '-symbols.txt'),
dir => $versionedSymbolDir,
timeout => 600,

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

@ -18,7 +18,8 @@ use Bootstrap::Util qw(CvsCatfile GetBouncerPlatforms
use strict;
my $RELEASE_CANDIDATE_CHANNELS = ['beta', 'betatest','DisableCompleteJump'];
# Channels that we want to add an extra annotation to
my $RELEASE_CANDIDATE_CHANNELS = ['betatest','DisableCompleteJump'];
sub Execute {
my $this = shift;
@ -27,7 +28,7 @@ sub Execute {
my $logDir = $config->Get(sysvar => 'logDir');
my $configBumpDir = $config->Get(var => 'configBumpDir');
my $product = $config->Get(var => 'product');
my $rc = $config->Get(var => 'rc');
my $build = $config->Get(var => 'build');
my $version = $config->GetVersion(longName => 0);
my $oldVersion = $config->GetOldVersion(longName => 0);
my $mozillaCvsroot = $config->Get(var => 'mozillaCvsroot');
@ -36,7 +37,7 @@ sub Execute {
my $bouncerServer = $config->Get(var => 'bouncerServer');
my $versionedConfigBumpDir = catfile($configBumpDir,
"$product-$version-rc$rc");
"$product-$version-build$build");
# Create patcher config area in the config bump area.
if (not -d $versionedConfigBumpDir) {
@ -88,8 +89,9 @@ sub BumpPatcherConfig {
my $version = $config->GetVersion(longName => 0);
my $prettyVersion = $config->GetVersion(longName => 1);
my $oldVersion = $config->GetOldVersion(longName => 0);
my $rc = $config->Get(var => 'rc');
my $oldRc = $config->Get(var => 'oldRc');
my $appVersion = $config->GetAppVersion();
my $oldAppVersion = $config->GetOldAppVersion();
my $build = $config->Get(var => 'build');
my $localeInfo = $config->GetLocaleInfo();
my $patcherConfig = $config->Get(var => 'patcherConfig');
my $stagingUser = $config->Get(var => 'stagingUser');
@ -97,9 +99,10 @@ sub BumpPatcherConfig {
my $ftpServer = $config->Get(var => 'ftpServer');
my $bouncerServer = $config->Get(var => 'bouncerServer');
my $logDir = $config->Get(sysvar => 'logDir');
my $useBetaChannel = $config->Get(var => 'useBetaChannel');
my $versionedConfigBumpDir = catfile($configBumpDir,
"$product-$version-rc$rc");
"$product-$version-build$build");
# First, parse the file.
my $checkedOutPatcherConfig = catfile($versionedConfigBumpDir, 'patcher',
@ -118,7 +121,7 @@ sub BumpPatcherConfig {
my $currentUpdateObj = $appObj->{'current-update'};
# Add the release we're replacing to the past-releases array, but only if
# it's a new release; we used to determine this by looking at the rc
# it's a new release; we used to determine this by looking at the build
# value, but that can be misleading because sometimes we may not get to
# the update step before a respin; so what we really need to compare is
# whether our current version in bootstrap.cfg is in the to clause of the
@ -151,7 +154,7 @@ sub BumpPatcherConfig {
# the partial and complete update patches
#
# Only bump the to/from versions if we're really a new release. We used
# to determine this by looking at the rc value, but now we use
# to determine this by looking at the build value, but now we use
# doOnetimePatcherBump
if ($doOnetimePatcherBumps) {
@ -160,14 +163,17 @@ sub BumpPatcherConfig {
}
$currentUpdateObj->{'details'} = 'http://%locale%.www.mozilla.com/%locale%/' .
$product . '/' . $version . '/releasenotes/';
$product . '/' . $appVersion . '/releasenotes/';
if ($useBetaChannel) {
push(@{$RELEASE_CANDIDATE_CHANNELS},'beta');
}
$currentUpdateObj->{'rc'} = {};
foreach my $c (@{$RELEASE_CANDIDATE_CHANNELS}) {
$currentUpdateObj->{'rc'}->{$c} = "$rc";
$currentUpdateObj->{'rc'}->{$c} = "$build";
}
my $rcStr = 'rc' . $rc;
my $buildStr = 'build' . $build;
my $partialUpdate = {};
$partialUpdate->{'url'} = 'http://' . $bouncerServer . '/?product=' .
@ -176,20 +182,21 @@ sub BumpPatcherConfig {
'&os=%bouncer-platform%&lang=%locale%';
$partialUpdate->{'path'} = catfile($product, 'nightly', $version .
'-candidates', $rcStr, $product. '-' .
'-candidates', $buildStr, $product. '-' .
$oldVersion . '-' . $version .
'.%locale%.%platform%.partial.mar');
$partialUpdate->{'betatest-url'} =
'http://' . $stagingServer. '/pub/mozilla.org/' . $product .
'/nightly/' . $version . '-candidates/' . $rcStr . '/' . $product .
'/nightly/' . $version . '-candidates/' . $buildStr . '/' . $product .
'-' . $oldVersion . '-' . $version . '.%locale%.%platform%.partial.mar';
$partialUpdate->{'beta-url'} =
'http://' . $ftpServer . '/pub/mozilla.org/' . $product. '/nightly/' .
$version . '-candidates/' . $rcStr . '/' . $product . '-' . $oldVersion .
'-' . $version . '.%locale%.%platform%.partial.mar';
if ($useBetaChannel) {
$partialUpdate->{'beta-url'} =
'http://' . $ftpServer . '/pub/mozilla.org/' . $product. '/nightly/' .
$version . '-candidates/' . $buildStr . '/' . $product . '-' . $oldVersion .
'-' . $version . '.%locale%.%platform%.partial.mar';
}
$currentUpdateObj->{'partial'} = $partialUpdate;
# Now the same thing, only complete update
@ -199,19 +206,20 @@ sub BumpPatcherConfig {
'-complete&os=%bouncer-platform%&lang=%locale%';
$completeUpdate->{'path'} = catfile($product, 'nightly', $version .
'-candidates', $rcStr, $product . '-' . $version .
'-candidates', $buildStr, $product . '-' . $appVersion .
'.%locale%.%platform%.complete.mar');
$completeUpdate->{'betatest-url'} =
'http://' . $stagingServer . '/pub/mozilla.org/' . $product .
'/nightly/' . $version . '-candidates/' . $rcStr . '/' . $product .
'-' . $version . '.%locale%.%platform%.complete.mar';
$completeUpdate->{'beta-url'} =
'http://' . $ftpServer . '/pub/mozilla.org/' . $product. '/nightly/' .
$version . '-candidates/' . $rcStr . '/' . $product . '-' . $version .
'.%locale%.%platform%.complete.mar';
'/nightly/' . $version . '-candidates/' . $buildStr . '/' . $product .
'-' . $appVersion . '.%locale%.%platform%.complete.mar';
if ($useBetaChannel) {
$completeUpdate->{'beta-url'} =
'http://' . $ftpServer . '/pub/mozilla.org/' . $product. '/nightly/' .
$version . '-candidates/' . $buildStr . '/' . $product . '-' . $appVersion .
'.%locale%.%platform%.complete.mar';
}
$currentUpdateObj->{'complete'} = $completeUpdate;
# Now, add the new <release> stanza for the release we're working on
@ -220,7 +228,7 @@ sub BumpPatcherConfig {
$appObj->{'release'}->{$version} = $releaseObj = {};
$releaseObj->{'schema'} = '1';
$releaseObj->{'version'} = $releaseObj->{'extension-version'} = $version;
$releaseObj->{'version'} = $releaseObj->{'extension-version'} = $appVersion;
$releaseObj->{'prettyVersion'} = $prettyVersion;
my $linBuildId;
@ -251,8 +259,8 @@ sub BumpPatcherConfig {
$releaseObj->{'completemarurl'} =
'http://' . $stagingServer . '/pub/mozilla.org/' . $product.
'/nightly/' . $version . '-candidates/' . $rcStr . '/' . $product . '-'.
$version . '.%locale%.%platform%.complete.mar',
'/nightly/' . $version . '-candidates/' . $buildStr . '/' . $product . '-'.
$appVersion . '.%locale%.%platform%.complete.mar',
# Compute locale exceptions;
# $localeInfo is hash ref of locales -> array of platforms the locale

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

@ -15,13 +15,13 @@ sub Execute {
my $config = new Bootstrap::Config();
my $l10n_buildDir = $config->Get(sysvar => 'l10n_buildDir');
my $productTag = $config->Get(var => 'productTag');
my $rc = $config->Get(var => 'rc');
my $build = $config->Get(var => 'build');
my $logDir = $config->Get(sysvar => 'logDir');
my $l10n_buildPlatform = $config->Get(sysvar => 'l10n_buildPlatform');
my $sysname = $config->SystemInfo(var => 'sysname');
my $rcTag = $productTag . '_RC' . $rc;
my $buildTag = $productTag . '_BUILD' . $build;
my $buildLog = catfile($logDir, 'repack_' . $rcTag . '-build-l10n.log');
my $buildLog = catfile($logDir, 'repack_' . $buildTag . '-build-l10n.log');
my $lastBuilt = catfile($l10n_buildDir, $l10n_buildPlatform, 'last-built');
unlink($lastBuilt)
or $this->Log(msg => "Cannot unlink last-built file $lastBuilt: $!");
@ -64,8 +64,8 @@ sub Verify {
my $config = new Bootstrap::Config();
my $productTag = $config->Get(var => 'productTag');
my $product = $config->Get(var => 'product');
my $rc = $config->Get(var => 'rc');
my $oldRc = $config->Get(var => 'oldRc');
my $build = $config->Get(var => 'build');
my $oldBuild = $config->Get(var => 'oldBuild');
my $logDir = $config->Get(sysvar => 'logDir');
my $version = $config->GetVersion(longName => 0);
my $oldVersion = $config->GetOldVersion(longName => 0);
@ -73,7 +73,7 @@ sub Verify {
my $verifyDir = $config->Get(var => 'verifyDir');
my $stagingServer = $config->Get(var => 'stagingServer');
my $linuxExtension = $config->GetLinuxExtension();
my $rcTag = $productTag.'_RC'.$rc;
my $buildTag = $productTag.'_BUILD'.$build;
# l10n metadiff test
@ -104,8 +104,8 @@ sub Verify {
'--include=*.tar.'.$linuxExtension,
'--exclude=*',
$stagingServer . ':/home/ftp/pub/' . $product
. '/nightly/' . $version . '-candidates/rc' . $rc . '/*',
$product . '-' . $version . '-rc' . $rc . '/',
. '/nightly/' . $version . '-candidates/build' . $build . '/*',
$product . '-' . $version . '-build' . $build . '/',
],
dir => catfile($verifyDirVersion, 'l10n'),
logFile =>
@ -123,9 +123,9 @@ sub Verify {
'--include=*.tar.'.$linuxExtension,
'--exclude=*',
$stagingServer . ':/home/ftp/pub/' . $product
. '/nightly/' . $oldVersion . '-candidates/rc'
. $oldRc . '/*',
$product . '-' . $oldVersion . '-rc' . $oldRc . '/',
. '/nightly/' . $oldVersion . '-candidates/build'
. $oldBuild . '/*',
$product . '-' . $oldVersion . '-build' . $oldBuild . '/',
],
dir => catfile($verifyDirVersion, 'l10n'),
logFile =>
@ -133,8 +133,8 @@ sub Verify {
timeout => 3600
);
my $newProduct = $product . '-' . $version . '-' . 'rc' . $rc;
my $oldProduct = $product . '-' . $oldVersion . '-' . 'rc' . $oldRc;
my $newProduct = $product . '-' . $version . '-' . 'build' . $build;
my $oldProduct = $product . '-' . $oldVersion . '-' . 'build' . $oldBuild;
foreach my $product ($newProduct, $oldProduct) {
MkdirWithPath(dir => catfile($verifyDirVersion, 'l10n', $product))
@ -187,14 +187,14 @@ sub Push {
my $config = new Bootstrap::Config();
my $productTag = $config->Get(var => 'productTag');
my $rc = $config->Get(var => 'rc');
my $build = $config->Get(var => 'build');
my $logDir = $config->Get(sysvar => 'logDir');
my $stagingUser = $config->Get(var => 'stagingUser');
my $stagingServer = $config->Get(var => 'stagingServer');
my $rcTag = $productTag . '_RC' . $rc;
my $buildLog = catfile($logDir, 'repack_' . $rcTag . '-build-l10n.log');
my $pushLog = catfile($logDir, 'repack_' . $rcTag . '-push-l10n.log');
my $buildTag = $productTag . '_BUILD' . $build;
my $buildLog = catfile($logDir, 'repack_' . $buildTag . '-build-l10n.log');
my $pushLog = catfile($logDir, 'repack_' . $buildTag . '-push-l10n.log');
my $logParser = new MozBuild::TinderLogParse(
logFile => $buildLog,
@ -235,11 +235,11 @@ sub Announce {
my $product = $config->Get(var => 'product');
my $productTag = $config->Get(var => 'productTag');
my $version = $config->GetVersion(longName => 0);
my $rc = $config->Get(var => 'rc');
my $build = $config->Get(var => 'build');
my $logDir = $config->Get(sysvar => 'logDir');
my $rcTag = $productTag . '_RC' . $rc;
my $buildLog = catfile($logDir, 'repack_' . $rcTag . '-build-l10n.log');
my $buildTag = $productTag . '_BUILD' . $build;
my $buildLog = catfile($logDir, 'repack_' . $buildTag . '-build-l10n.log');
my $logParser = new MozBuild::TinderLogParse(
logFile => $buildLog,

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

@ -12,12 +12,12 @@ sub Execute {
my $config = new Bootstrap::Config();
my $product = $config->Get(var => 'product');
my $version = $config->Get(var => 'version');
my $rc = $config->Get(var => 'rc');
my $build = $config->Get(var => 'build');
my $stagingServer = $config->Get(var => 'stagingServer');
my $logFile = 'win32_signing_rc' . $rc . '.log';
my $logFile = 'win32_signing_build' . $build . '.log';
my $url = 'http://' . $stagingServer . '/pub/mozilla.org/' . $product .
'/nightly/' . $version . '-candidates/' . 'rc' . $rc . '/' . $logFile;
'/nightly/' . $version . '-candidates/' . 'build' . $build . '/' . $logFile;
$this->Log(msg => 'Looking for url ' . $url);

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

@ -18,14 +18,14 @@ sub Execute {
my $appName = $config->Get(var => 'appName');
my $productTag = $config->Get(var => 'productTag');
my $version = $config->GetVersion(longName => 0);
my $rc = $config->Get(var => 'rc');
my $build = $config->Get(var => 'build');
my $logDir = $config->Get(sysvar => 'logDir');
my $sourceDir = $config->Get(var => 'sourceDir');
my $mozillaCvsroot = $config->Get(var => 'mozillaCvsroot');
# create staging area
my $versionedSourceDir = catfile($sourceDir, $product . '-' . $version,
'batch-source', 'rc' . $rc);
'batch-source', 'build' . $build);
if (not -d $versionedSourceDir) {
MkdirWithPath(dir => $versionedSourceDir)
@ -92,7 +92,7 @@ sub Push {
my $config = new Bootstrap::Config();
my $product = $config->Get(var => 'product');
my $version = $config->GetVersion(longName => 0);
my $rc = $config->Get(var => 'rc');
my $build = $config->Get(var => 'build');
my $logDir = $config->Get(sysvar => 'logDir');
my $sourceDir = $config->Get(var => 'sourceDir');
my $stagingUser = $config->Get(var => 'stagingUser');
@ -106,7 +106,7 @@ sub Push {
$this->Shell(
cmd => 'rsync',
cmdArgs => ['-av', '-e', 'ssh', catfile('batch-source', 'rc' . $rc,
cmdArgs => ['-av', '-e', 'ssh', catfile('batch-source', 'build' . $build,
$product . '-' . $version . '-source.tar.bz2'),
$stagingUser . '@' . $stagingServer . ':' . $candidateDir],
logFile => catfile($logDir, 'source.log'),

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

@ -192,7 +192,7 @@ sub Execute {
my $product = $config->Get(var => 'product');
my $productTag = $config->Get(var => 'productTag');
my $version = $config->GetVersion(longName => 0);
my $rc = $config->Get(var => 'rc');
my $build = $config->Get(var => 'build');
my $logDir = $config->Get(sysvar => 'logDir');
my $stageHome = $config->Get(var => 'stageHome');
my $appName = $config->Get(var => 'appName');
@ -410,7 +410,7 @@ sub Verify {
my $product = $config->Get(var => 'product');
my $appName = $config->Get(var => 'appName');
my $logDir = $config->Get(sysvar => 'logDir');
my $rc = $config->Get(var => 'rc');
my $build = $config->Get(var => 'build');
my $stageHome = $config->Get(var => 'stageHome');
my $productTag = $config->Get(var => 'productTag');
my $mozillaCvsroot = $config->Get(var => 'mozillaCvsroot');
@ -556,7 +556,7 @@ sub TrimCallback {
# ZIP files are not shipped; neither are en-US lang packs
($dirent =~ /\.zip$/) || ($dirent =~ /en-US\.xpi$/) ||
# nor the BuildID files, nor the 2.0.0.x signing log
($dirent =~ /_info.txt$/) || ($dirent =~ /win32_signing_rc\d+\.log/) ) {
($dirent =~ /_info.txt$/) || ($dirent =~ /win32_signing_build\d+\.log/) ) {
unlink($dirent) || die "Could not unlink $dirent: $!";
$this->Log(msg => "Unlinked $dirent");
return;
@ -801,6 +801,7 @@ sub GeneratePrettyName {
my $config = new Bootstrap::Config();
my $currentVersion = $config->GetVersion(longName => 1);
my $currentVersionShort = $config->GetVersion(longName => 0);
my $oldVersionShort = $config->GetOldVersion(longName => 0);
my @result;
@ -819,7 +820,8 @@ sub GeneratePrettyName {
} elsif ( $name =~ m/ $win_partial_update_re /x ) {
# Windows partial update files.
push @result, "update/$5/$4/$1$2-$3" . ".partial.mar";
push @result, "update/$5/$4/$1$2-" . $oldVersionShort . '-' .
$currentVersionShort . ".partial.mar";
# Windows installer files.
} elsif ( $name =~ m/ $win_installer_re /x ) {
@ -838,8 +840,9 @@ sub GeneratePrettyName {
".complete.mar";
} elsif ( $name =~ m/ $mac_partial_update_re /x ) {
# Mac partial update files.
push @result, "update/$5/$4/$1$2-$3" . ".partial.mar";
# Mac partial update files.
push @result, "update/$5/$4/$1$2-" . $oldVersionShort . '-' .
$currentVersionShort . ".partial.mar";
# Linux tarballs.
} elsif ( $name =~ m/ $linux_re /x ) {
@ -854,7 +857,8 @@ sub GeneratePrettyName {
} elsif ( $name =~ m/ $linux_partial_update_re /x ) {
# Linux partial update files.
push @result, "update/$5/$4/$1$2-$3" . ".partial.mar";
push @result, "update/$5/$4/$1$2-" . $oldVersionShort . '-' .
$currentVersionShort . ".partial.mar";
# Source tarballs.
} elsif ( $name =~ m/ $source_re /x ) {

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

@ -32,7 +32,7 @@ sub Execute {
my $config = new Bootstrap::Config();
my $productTag = $config->Get(var => 'productTag');
my $rc = $config->Get(var => 'rc');
my $build = $config->Get(var => 'build');
my $milestone = $config->Get(var => 'milestone');
my $tagDir = $config->Get(var => 'tagDir');
my $mozillaCvsroot = $config->Get(var => 'mozillaCvsroot');
@ -43,9 +43,9 @@ sub Execute {
$config->Get(var => 'useTalkback') : 0;
my $releaseTag = $productTag . '_RELEASE';
my $rcTag = $productTag . '_RC' . $rc;
my $buildTag = $productTag . '_BUILD' . $build;
my $releaseTagDir = catfile($tagDir, $releaseTag);
my $rcTagDir = catfile($tagDir, $rcTag);
my $buildTagDir = catfile($tagDir, $buildTag);
# If specified, tag Talkback
if ($useTalkback) {
@ -53,13 +53,13 @@ sub Execute {
}
# create the main tag directory
if (not -d $rcTagDir) {
MkdirWithPath(dir => $rcTagDir)
or die("Cannot mkdir $rcTagDir: $!");
if (not -d $buildTagDir) {
MkdirWithPath(dir => $buildTagDir)
or die("Cannot mkdir $buildTagDir: $!");
}
# Tagging area for Mozilla
my $cvsrootTagDir = catfile($rcTagDir, 'cvsroot');
my $cvsrootTagDir = catfile($buildTagDir, 'cvsroot');
if (-e $cvsrootTagDir) {
die "ASSERT: Tag::Execute(): $cvsrootTagDir already exists?";
}
@ -72,7 +72,7 @@ sub Execute {
my $geckoTag = undef;
if (1 == $rc) {
if (1 == $build) {
$this->CvsCo(cvsroot => $mozillaCvsroot,
tag => $branchTag,
date => $pullDate,
@ -127,8 +127,8 @@ sub Execute {
# datespec without forcing it to be specified. Because of this,
# there's lots of icky CVS parsing.
my $rcOneTag = $productTag . '_RC1';
my $checkoutLog = "tag_rc${rc}_checkout_client_ck.log";
my $buildOneTag = $productTag . '_BUILD1';
my $checkoutLog = "tag_build${build}_checkout_client_ck.log";
$this->CvsCo(cvsroot => $mozillaCvsroot,
tag => $branchTag,
@ -160,7 +160,7 @@ sub Execute {
my $cvsRev = '';
my $cvsDateSpec = '';
foreach my $logLine (split(/\n/, $clientMkInfo->{'output'})) {
if ($inSymbolic && $logLine =~ /^\s+$rcOneTag:\s([\d\.]+)$/) {
if ($inSymbolic && $logLine =~ /^\s+$buildOneTag:\s([\d\.]+)$/) {
$cvsRev = $1;
$inSymbolic = 0;
next;
@ -228,7 +228,7 @@ sub Verify {
# This step doesn't really do anything now, because the verification it used
# to do (which wasn't much) is now done in the Execute() method, since the
# biz logic for rc 1 vs. rc > 1 is different.
# biz logic for build 1 vs. build > 1 is different.
}
#
@ -314,6 +314,10 @@ sub GenerateRelbranchName {
elsif ($geckoVersion =~ m/\d\.\d[ab]\d+/i) {
$geckoVersion =~ s/\.//g;
}
# new major version, eg 1.9 (Fx3)
elsif ($geckoVersion =~ m/^\d\.\d$/) {
$geckoVersion =~ s/\.//g;
}
else {
die "ASSERT: GenerateRelbranchName(): Unknown Gecko version format";
}

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

@ -25,7 +25,8 @@ sub Execute {
my $branchTag = $config->Get(var => 'branchTag');
my $pullDate = $config->Get(var => 'pullDate');
my $version = $config->GetVersion(longName => 0);
my $rc = int($config->Get(var => 'rc'));
my $appVersion = $config->GetAppVersion();
my $build = int($config->Get(var => 'build'));
my $milestone = $config->Exists(var => 'milestone') ?
$config->Get(var => 'milestone') : undef;
my $appName = $config->Get(var => 'appName');
@ -35,19 +36,19 @@ sub Execute {
my $geckoBranchTag = $config->Get(var => 'geckoBranchTag');
my $releaseTag = $productTag . '_RELEASE';
my $rcTag = $productTag . '_RC' . $rc;
my $buildTag = $productTag . '_BUILD' . $build;
my $rcTagDir = catfile($tagDir, $rcTag);
my $cvsrootTagDir = catfile($rcTagDir, 'cvsroot');
my $buildTagDir = catfile($tagDir, $buildTag);
my $cvsrootTagDir = catfile($buildTagDir, 'cvsroot');
## TODO - we need to handle the case here where we're in security firedrill
## mode, and we need to bump versions on the GECKO_ branch, but they
## won't have "pre" in them. :-o
#
# We only do the bump step for rc1
# We only do the bump step for build1
if ($rc > 1) {
$this->Log(msg => "Skipping Tag::Bump::Execute substep for RC $rc.");
if ($build > 1) {
$this->Log(msg => "Skipping Tag::Bump::Execute substep for build $build.");
return;
}
@ -105,13 +106,13 @@ sub Execute {
'^LDAPCSDK_CO_TAG\s+=\s+' . $branchTag . '$' =>
'LDAPCSDK_CO_TAG = ' . $releaseTag);
} elsif ($fileName eq $moduleVer) {
$preVersion = $version . 'pre';
$preVersion = $appVersion . 'pre';
%searchReplace = ('^WIN32_MODULE_PRODUCTVERSION_STRING=' .
$preVersion . '$' => 'WIN32_MODULE_PRODUCTVERSION_STRING=' .
$version);
$appVersion);
} elsif ($fileName eq $versionTxt) {
$preVersion = $version . 'pre';
%searchReplace = ('^' . $preVersion . '$' => $version);
$preVersion = $appVersion . 'pre';
%searchReplace = ('^' . $preVersion . '$' => $appVersion);
} elsif ($fileName eq $milestoneTxt) {
$preVersion = $milestone . 'pre';
%searchReplace = ('^' . $preVersion . '$' => $milestone);
@ -159,7 +160,7 @@ sub Execute {
cmdArgs => ['commit', '-m', $bumpCiMsg,
@bumpFiles,
],
dir => catfile($rcTagDir, 'cvsroot', 'mozilla'),
dir => catfile($buildTagDir, 'cvsroot', 'mozilla'),
logFile => catfile($logDir, 'tag-bump_checkin.log'),
);
}
@ -172,10 +173,10 @@ sub Verify {
my $appName = $config->Get(var => 'appName');
my $milestone = $config->Exists(var => 'milestone') ?
$config->Get(var => 'milestone') : undef;
my $rc = $config->Get(var => 'rc');
my $build = $config->Get(var => 'build');
if ($rc > 1) {
$this->Log(msg => "Skipping Tag::Bump::Verify substep for RC $rc.");
if ($build > 1) {
$this->Log(msg => "Skipping Tag::Bump::Verify substep for build $build.");
return;
}

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

@ -21,37 +21,37 @@ sub Execute {
my $config = new Bootstrap::Config();
my $productTag = $config->Get(var => 'productTag');
my $rc = int($config->Get(var => 'rc'));
my $build = int($config->Get(var => 'build'));
my $logDir = $config->Get(sysvar => 'logDir');
my $mozillaCvsroot = $config->Get(var => 'mozillaCvsroot');
my $tagDir = $config->Get(var => 'tagDir');
my $releaseTag = $productTag . '_RELEASE';
my $rcTag = $productTag . '_RC' . $rc;
my $rcTagDir = catfile($tagDir, $rcTag);
my $cvsrootTagDir = catfile($rcTagDir, 'cvsroot');
my $buildTag = $productTag . '_BUILD' . $build;
my $buildTagDir = catfile($tagDir, $buildTag);
my $cvsrootTagDir = catfile($buildTagDir, 'cvsroot');
# Create the RC tag
# Create the BUILD tag
$this->CvsTag(
tagName => $rcTag,
tagName => $buildTag,
coDir => catfile($cvsrootTagDir, 'mozilla'),
logFile => catfile($logDir,
'tag-mozilla_cvsroot_tag-' . $rcTag . '.log'),
'tag-mozilla_cvsroot_tag-' . $buildTag . '.log'),
);
# Create or move the RELEASE tag
#
# This is for the Verify() method; we assume that we actually set (or reset,
# in the case of rc > 1) the _RELEASE tag; if that's not the case, we reset
# in the case of build > 1) the _RELEASE tag; if that's not the case, we reset
# this value below.
$config->Set(var => 'tagModifyMozillaReleaseTag', value => 1);
if ($rc > 1) {
my $previousRcTag = $productTag . '_RC' . ($rc - 1);
if ($build > 1) {
my $previousBuildTag = $productTag . '_BUILD' . ($build - 1);
my $diffFileList = GetDiffFileList(cvsDir => catfile($cvsrootTagDir,
'mozilla'),
prevTag => $previousRcTag,
newTag => $rcTag);
prevTag => $previousBuildTag,
newTag => $buildTag);
if (scalar(@{$diffFileList}) > 0) {
$this->CvsTag(
@ -66,7 +66,7 @@ sub Execute {
} else {
$config->Set(var => 'tagModifyMozillaReleaseTag', value => 0,
force => 1);
$this->Log(msg => "No diffs found in cvsroot for RC $rc; NOT " .
$this->Log(msg => "No diffs found in cvsroot for build $build; NOT " .
"modifying $releaseTag");
}
} else {
@ -86,14 +86,14 @@ sub Verify {
my $config = new Bootstrap::Config();
my $productTag = $config->Get(var => 'productTag');
my $logDir = $config->Get(sysvar => 'logDir');
my $rc = $config->Get(var => 'rc');
my $build = $config->Get(var => 'build');
my $releaseTag = $productTag . '_RELEASE';
my $rcTag = $productTag . '_RC' . $rc;
my $buildTag = $productTag . '_BUILD' . $build;
my @checkTags = ($rcTag);
my @checkTags = ($buildTag);
# If RC > 1 and we took no changes in cvsroot for that RC, the _RELEASE
# If build > 1 and we took no changes in cvsroot for that build, the _RELEASE
# tag won't have changed, so we shouldn't attempt to check it.
if ($config->Get(var => 'tagModifyMozillaReleaseTag')) {
push(@checkTags, $releaseTag);

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

@ -22,20 +22,20 @@ sub Execute {
my $config = new Bootstrap::Config();
my $productTag = $config->Get(var => 'productTag');
my $branchTag = $config->Get(var => 'branchTag');
my $rc = int($config->Get(var => 'rc'));
my $build = int($config->Get(var => 'build'));
my $pullDate = $config->Get(var => 'pullDate');
my $logDir = $config->Get(sysvar => 'logDir');
my $mofoCvsroot = $config->Get(var => 'mofoCvsroot');
my $tagDir = $config->Get(var => 'tagDir');
my $releaseTag = $productTag . '_RELEASE';
my $rcTag = $productTag . '_RC' . $rc;
my $releaseTagDir = catfile($tagDir, $rcTag);
my $buildTag = $productTag . '_BUILD' . $build;
my $releaseTagDir = catfile($tagDir, $buildTag);
# Since talkback so seldom changes, we don't include it in our fancy
# respin logic; we only need to tag it for RC 1.
if ($rc > 1) {
$this->Log(msg => "Not tagging Talkback repo for RC $rc.");
# respin logic; we only need to tag it for build 1.
if ($build > 1) {
$this->Log(msg => "Not tagging Talkback repo for build $build.");
return;
}
@ -71,10 +71,10 @@ sub Verify {
my $config = new Bootstrap::Config();
my $logDir = $config->Get(sysvar => 'logDir');
my $productTag = $config->Get(var => 'productTag');
my $rc = $config->Get(var => 'rc');
my $build = $config->Get(var => 'build');
if ($rc > 1) {
$this->Log(msg => "Not verifying Talkback repo for RC $rc.");
if ($build > 1) {
$this->Log(msg => "Not verifying Talkback repo for build $build.");
return;
}

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

@ -26,15 +26,15 @@ sub Execute {
my $productTag = $config->Get(var => 'productTag');
my $branchTag = $config->Get(var => 'branchTag');
my $l10n_pullDate = $config->Get(var => 'l10n_pullDate');
my $rc = int($config->Get(var => 'rc'));
my $build = int($config->Get(var => 'build'));
my $appName = $config->Get(var => 'appName');
my $logDir = $config->Get(sysvar => 'logDir');
my $l10nCvsroot = $config->Get(var => 'l10nCvsroot');
my $tagDir = $config->Get(var => 'tagDir');
my $releaseTag = $productTag . '_RELEASE';
my $rcTag = $productTag . '_RC' . $rc;
my $releaseTagDir = catfile($tagDir, $rcTag);
my $buildTag = $productTag . '_BUILD' . $build;
my $releaseTagDir = catfile($tagDir, $buildTag);
# Create the l10n tag directory.
my $l10nTagDir = catfile($releaseTagDir, 'l10n');
@ -58,10 +58,10 @@ sub Execute {
# skip en-US; it's kept in the main repo
next if ($locale eq 'en-US');
# Make sure to pull from the right tag and/or date for rcN.
# Make sure to pull from the right tag and/or date for buildN.
$this->CvsCo(cvsroot => $l10nCvsroot,
tag => (1 == $rc) ? $branchTag : $geckoTag,
date => (1 == $rc) ? $l10n_pullDate : 0,
tag => (1 == $build) ? $branchTag : $geckoTag,
date => (1 == $build) ? $l10n_pullDate : 0,
modules => [CvsCatfile('l10n', $locale)],
workDir => $l10nTagDir,
logFile => catfile($logDir, 'tag-l10n_checkout.log'));
@ -73,7 +73,7 @@ sub Execute {
my @topLevelFiles = grep(!/^CVS$/, glob('*'));
chdir($cwd) or die "Couldn't chdir() home: $!\n";
if (1 == $rc) {
if (1 == $build) {
$this->CvsTag(tagName => $geckoTag,
branch => 1,
files => \@topLevelFiles,
@ -90,11 +90,11 @@ sub Execute {
$geckoTag));
}
# Create the l10n RC tag
# Create the l10n BUILD tag
$this->CvsTag(
tagName => $rcTag,
tagName => $buildTag,
coDir => catfile($l10nTagDir, 'l10n'),
logFile => catfile($logDir, 'tag-l10n_tag_' . $rcTag. '.log'),
logFile => catfile($logDir, 'tag-l10n_tag_' . $buildTag. '.log'),
);
# Create the l10n RELEASE tag
@ -104,30 +104,30 @@ sub Execute {
$releaseTag. '.log'));
# This is for the Verify() method; we assume that we actually set (or reset,
# in the case of rc > 1) the _RELEASE tag; if that's not the case, we reset
# in the case of build > 1) the _RELEASE tag; if that's not the case, we reset
# this value below.
$config->Set(var => 'tagModifyl10nReleaseTag', value => 1);
# If we're retagging rc(N > 1), we need to tag -F
if ($rc > 1) {
my $previousRcTag = $productTag . '_RC' . ($rc - 1);
# If we're retagging build(N > 1), we need to tag -F
if ($build > 1) {
my $previousBuildTag = $productTag . '_BUILD' . ($build - 1);
my $diffFileList = GetDiffFileList(cvsDir => catfile($l10nTagDir,
'l10n'),
prevTag => $previousRcTag,
newTag => $rcTag);
prevTag => $previousBuildTag,
newTag => $buildTag);
if (scalar(@{$diffFileList}) > 0) {
$releaseTagArgs{'force'} = 1;
$releaseTagArgs{'files'} = $diffFileList;
$this->CvsTag(%releaseTagArgs);
} else {
$this->Log(msg => "No diffs found in l10n for RC $rc; NOT " .
$this->Log(msg => "No diffs found in l10n for build $build; NOT " .
"modifying $releaseTag");
$config->Set(var => 'tagModifyl10nReleaseTag', value => 0,
force => 1);
}
} else {
# If we're RC 1, we obviously need to apply the _RELEASE tag...
# If we're build 1, we obviously need to apply the _RELEASE tag...
$this->CvsTag(%releaseTagArgs);
}
}
@ -138,14 +138,14 @@ sub Verify {
my $config = new Bootstrap::Config();
my $logDir = $config->Get(sysvar => 'logDir');
my $productTag = $config->Get(var => 'productTag');
my $rc = $config->Get(var => 'rc');
my $build = $config->Get(var => 'build');
my $releaseTag = $productTag . '_RELEASE';
my $rcTag = $productTag . '_RC' . $rc;
my $buildTag = $productTag . '_BUILD' . $build;
my @checkTags = ($rcTag);
my @checkTags = ($buildTag);
# If RC > 1 and we took no changes in cvsroot for that RC, the _RELEASE
# If build > 1 and we took no changes in cvsroot for that build, the _RELEASE
# tag won't have changed, so we shouldn't attempt to check it.
if ($config->Get(var => 'tagModifyl10nReleaseTag')) {
push(@checkTags, $releaseTag);

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

@ -20,7 +20,7 @@ sub Execute {
my $configBumpDir = $config->Get(var => 'configBumpDir');
my $productTag = $config->Get(var => 'productTag');
my $version = $config->GetVersion(longName => 0);
my $rc = int($config->Get(var => 'rc'));
my $build = int($config->Get(var => 'build'));
my $mozillaCvsroot = $config->Get(var => 'mozillaCvsroot');
my $product = $config->Get(var => 'product');
my $logDir = $config->Get(sysvar => 'logDir');
@ -30,7 +30,7 @@ sub Execute {
my $releaseTag = $productTag . '_RELEASE';
my $productConfigBumpDir = catfile($configBumpDir,
"$product-$version-rc$rc");
"$product-$version-build$build");
if (-e $productConfigBumpDir) {
die "ASSERT: Step::TinderConfig::Execute(): $productConfigBumpDir " .
@ -69,7 +69,7 @@ sub Execute {
cmdArgs => ['-d', $mozillaCvsroot,
'ci', '-m',
'"Automated configuration bump, release for '
. $product . ' ' . $version . "rc$rc" . '"',
. $product . ' ' . $version . "build$build" . '"',
$configFile],
logFile => catfile($logDir,
'build_config-checkin-' . $configFile . '-' .
@ -84,7 +84,7 @@ sub Execute {
}
my @tagNames = ($productTag . '_RELEASE',
$productTag . '_RC' . $rc);
$productTag . '_BUILD' . $build);
foreach my $configTagName (@tagNames) {
# XXX - Don't like doing this this way (specifically, the logic
@ -92,13 +92,13 @@ sub Execute {
#
# Also, the force argument to CvsTag() is interesting; we only
# want to cvs tag -F a whatever_RELEASE tag if we're not tagging
# the first RC; so, the logic is (rc > 1 && we're doing a _RELEASE
# the first build; so, the logic is (build > 1 && we're doing a _RELEASE
# tag; also, we have to surround it in int(); otherwise, if it's
# false, we get the empty string, which is undef which is bad.
$configTagName .= '_l10n' if ($branch =~ /l10n/);
my $rv = CvsTag(tagName => $configTagName,
force => int($rc > 1 &&
force => int($build > 1 &&
$configTagName =~ /_RELEASE/),
files => \@bumpConfigFiles,
cvsDir => catfile($productConfigBumpDir,

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

@ -227,8 +227,9 @@ sub BumpVerifyConfig {
my $oldVersion = $config->GetOldVersion(longName => 0);
my $oldLongVersion = $config->GetOldVersion(longName => 1);
my $version = $config->GetVersion(longName => 0);
my $rc = $config->Get(var => 'rc');
my $oldRc = $config->Get(var => 'oldRc');
my $appVersion = $config->GetAppVersion();
my $build = $config->Get(var => 'build');
my $oldBuild = $config->Get(var => 'oldBuild');
my $appName = $config->Get(var => 'appName');
my $mozillaCvsroot = $config->Get(var => 'mozillaCvsroot');
my $verifyDir = $config->Get(var => 'verifyDir');
@ -245,7 +246,7 @@ sub BumpVerifyConfig {
my $channel = 'betatest';
# grab os-specific buildID file on FTP
my $candidateDir = CvsCatfile($config->GetFtpNightlyDir(), $oldVersion . '-candidates', 'rc' . $oldRc ) . '/';
my $candidateDir = CvsCatfile($config->GetFtpNightlyDir(), $oldVersion . '-candidates', 'build' . $oldBuild ) . '/';
my $buildID = $this->GetBuildIDFromFTP(os => $osname, releaseDir => $candidateDir);
@ -259,20 +260,20 @@ sub BumpVerifyConfig {
$platform = 'linux';
$ftpOsname = 'linux-i686';
$releaseFile = $product.'-'.$oldVersion.'.tar.'.$linuxExtension;
$nightlyFile = $product.'-'.$version.'.%locale%.linux-i686.tar.'.
$nightlyFile = $product.'-'.$appVersion.'.%locale%.linux-i686.tar.'.
$linuxExtension;
} elsif ($osname eq 'macosx') {
$buildTarget = 'Darwin_Universal-gcc3';
$platform = 'osx';
$ftpOsname = 'mac';
$releaseFile = ucfirst($product).' '.$oldLongVersion.'.dmg';
$nightlyFile = $product.'-'.$version.'.%locale%.mac.dmg';
$nightlyFile = $product.'-'.$appVersion.'.%locale%.mac.dmg';
} elsif ($osname eq 'win32') {
$buildTarget = 'WINNT_x86-msvc';
$platform = 'win32';
$ftpOsname = 'win32';
$releaseFile = ucfirst($product).' Setup '.$oldLongVersion.'.exe';
$nightlyFile = $product.'-'.$version.'.%locale%.win32.installer.exe';
$nightlyFile = $product.'-'.$appVersion.'.%locale%.win32.installer.exe';
} else {
die("ASSERT: unknown OS $osname");
}
@ -321,8 +322,8 @@ sub BumpVerifyConfig {
$oldVersion . '/' . $ftpOsname . '/%locale%/' . $releaseFile .
'" aus_server="' . $ausServerUrl . '" ftp_server="' .
$stagingServer . '/pub/mozilla.org" to="/' .
$product . '/nightly/' . $version . '-candidates/rc' .
$rc . '/' . $nightlyFile . '"' . "\n");
$product . '/nightly/' . $version . '-candidates/build' .
$build . '/' . $nightlyFile . '"' . "\n");
open(FILE, "> $configFile") or die ("Could not open file $configFile: $!");
print FILE @data;
@ -334,7 +335,7 @@ sub BumpVerifyConfig {
cmdArgs => ['-d', $mozillaCvsroot,
'ci', '-m',
'"Automated configuration bump, release for '
. $product . ' ' . $version . "rc$rc" . '"',
. $product . ' ' . $version . "build$build" . '"',
$verifyConfig],
logFile => catfile($logDir, 'update_verify-checkin.log'),
dir => catfile($verifyDirVersion, 'updates')
@ -348,7 +349,7 @@ sub Push {
my $logDir = $config->Get(sysvar => 'logDir');
my $product = $config->Get(var => 'product');
my $version = $config->GetVersion(longName => 0);
my $rc = $config->Get(var => 'rc');
my $build = $config->Get(var => 'build');
my $oldVersion = $config->GetOldVersion(longName => 0);
my $stagingUser = $config->Get(var => 'stagingUser');
my $stagingServer = $config->Get(var => 'stagingServer');
@ -364,7 +365,7 @@ sub Push {
# push partial mar files up to ftp server
my $marsDir = catfile('ftp', $product, 'nightly',
$version . '-candidates', 'rc' . $rc) . '/';
$version . '-candidates', 'build' . $build) . '/';
chmod(0644, glob(catfile($fullUpdateDir,$marsDir,"*partial.mar")))
or die("Couldn't chmod a partial mar to 644: $!");

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

@ -1,10 +1,10 @@
PRODUCT = $(shell grep "^product[ \t]" bootstrap.cfg | sed -e 's/[^=]*= *//')
VERSION = $(shell grep "^version[ \t]" bootstrap.cfg | sed -e 's/[^=]*= *//')
OLD_VERSION = $(shell grep "^oldVersion[ \t]" bootstrap.cfg | sed -e 's/[^=]*= *//')
OLD_RC = $(shell grep "^oldRc[ \t]" bootstrap.cfg | sed -e 's/[^=]*= *//')
OLD_BUILD = $(shell grep "^oldBuild[ \t]" bootstrap.cfg | sed -e 's/[^=]*= *//')
PRODUCT_TAG = $(shell grep "^productTag[ \t]" bootstrap.cfg | sed -e 's/[^=]*= *//')
# extract the numeric rc value from the config file
PRODUCT_RC = $(shell grep "^rc[ \t]" bootstrap.cfg | sed -e 's/[^0-9]*\([0-9]*\).*/\1/')
# extract the numeric build value from the config file
PRODUCT_BUILD = $(shell grep "^build[ \t]" bootstrap.cfg | sed -e 's/[^0-9]*\([0-9]*\).*/\1/')
test:
for f in release t/test.pl `find . -name "*.pm"`; do \
@ -33,9 +33,9 @@ stage:
# staging environment
mkdir -p /data/cltbld/${PRODUCT}-${VERSION}/batch1/stage
# download old builds, for l10n verify
cd /data && wget -nv --cut-dirs=3 -np -r ftp://ftp.mozilla.org/pub/mozilla.org/${PRODUCT}/nightly/${OLD_VERSION}-candidates/rc${OLD_RC}/* && mv ftp.mozilla.org/nightly/* /home/ftp/pub/${PRODUCT}/nightly/ && rm -rfv ftp.mozilla.org
cd /data && wget -nv --cut-dirs=3 -np -r ftp://ftp.mozilla.org/pub/mozilla.org/${PRODUCT}/nightly/${OLD_VERSION}-candidates/build${OLD_BUILD}/* && mv ftp.mozilla.org/nightly/* /home/ftp/pub/${PRODUCT}/nightly/ && rm -rfv ftp.mozilla.org
# download old release, for update verify
cd /data && wget -nv --cut-dirs=3 -np -r -e robots=off http://releases.mozilla.org/pub/mozilla.org/${PRODUCT}/releases/${OLD_VERSION}/ && mv releases.mozilla.org/releases/* /home/ftp/pub/${PRODUCT}/releases/ && rm -rfv releases.mozilla.org
cd /data && wget -nv --cut-dirs=3 -np -r -e robots=off http://stage.mozilla.org/pub/mozilla.org/${PRODUCT}/releases/${OLD_VERSION}/ && mv stage.mozilla.org/releases/* /home/ftp/pub/${PRODUCT}/releases/ && rm -rfv stage.mozilla.org
cvsmirror: cvsmirror_mofo cvsmirror_main
@ -48,10 +48,10 @@ cvsmirror_main:
cvs -d /builds/cvsmirror.clean/cvsroot rtag -d ${PRODUCT_TAG}_RELEASE mozilla
cvs -d /builds/cvsmirror.clean/cvsroot rtag -d ${PRODUCT_TAG}_RELEASE_l10n mozilla/tools/tinderbox-configs/
cvs -d /builds/cvsmirror.clean/l10n rtag -d ${PRODUCT_TAG}_RELEASE l10n
for ((rc=1; rc <= ${PRODUCT_RC}; rc++)); do \
cvs -d /builds/cvsmirror.clean/cvsroot rtag -d ${PRODUCT_TAG}_RC$$rc mozilla;\
cvs -d /builds/cvsmirror.clean/cvsroot rtag -d ${PRODUCT_TAG}_RC$$rc_l10n mozilla/tools/tinderbox-configs/;\
cvs -d /builds/cvsmirror.clean/l10n rtag -d ${PRODUCT_TAG}_RC$$rc l10n;\
for ((build=1; build <= ${PRODUCT_BUILD}; build++)); do \
cvs -d /builds/cvsmirror.clean/cvsroot rtag -d ${PRODUCT_TAG}_BUILD$$build mozilla;\
cvs -d /builds/cvsmirror.clean/cvsroot rtag -d ${PRODUCT_TAG}_BUILD$$build_l10n mozilla/tools/tinderbox-configs/;\
cvs -d /builds/cvsmirror.clean/l10n rtag -d ${PRODUCT_TAG}_BUILD$$build l10n;\
done
cvsmirror_mofo:

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

@ -79,7 +79,7 @@ sub VerifyLinuxLocales {
return 0;
}
my $fileRegex = '^' . $product . '\-[\d\.]+(b\d+)?\.tar\.' . $extension .
my $fileRegex = '^' . $product . '\-[\d\.]+((b|rc)\d+)?\.tar\.' . $extension .
'(\.asc)?$';
return VerifyDirectory(locales => $locales,
@ -100,7 +100,7 @@ sub VerifyWin32Locales {
}
my $fileRegex = '^' . $product .
'\ Setup\ [\d\.]+(\ Beta\ \d+)?\.exe(\.asc)?$';
'\ Setup\ [\d\.]+(\ (Beta|RC)\ \d+)?\.exe(\.asc)?$';
return VerifyDirectory(locales => $locales,
dir => $directory,
@ -119,7 +119,7 @@ sub VerifyMacLocales {
return 0;
}
my $fileRegex = '^' . $product . '\ [\d\.]+(\ Beta\ \d+)?\.dmg(\.asc)?$';
my $fileRegex = '^' . $product . '\ [\d\.]+(\ (Beta|RC)\ \d+)?\.dmg(\.asc)?$';
return VerifyDirectory(locales => $locales,
dir => $directory,

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

@ -1,16 +1,16 @@
version = 2.0.0.14
milestone = 1.8.1.14
# _RCn and _RELEASE will be appended as-needed
# _BUILDn and _RELEASE will be appended as-needed
productTag = FIREFOX_2_0_0_14
# Branch name and pull dates to use for base tag
branchTag = MOZILLA_1_8_BRANCH
RelbranchOverride = GECKO181_20080311_RELBRANCH
pullDate = 2008-04-04 12:05 PDT
l10n_pullDate = 2008-04-04 12:05 PDT
rc = 1
build = 1
# oldVersion and oldRc refer to the previous release
oldVersion = 2.0.0.13
oldRc = 1
oldBuild = 1
appName = browser
product = firefox
# Absolute path to tinderbox build directory
@ -79,3 +79,4 @@ symbolServerUser = ffxbld
symbolServerPath = /mnt/netapp/breakpad/symbols_ffx
symbolServerKey = /home/cltbld/.ssh/ffxbld_dsa
useTarGz = 1
useBetaChannel = 1

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

@ -1,6 +1,6 @@
version = nightly
milestone = nightly
# _RCn and _RELEASE will be appended as-needed
# _BUILDn and _RELEASE will be appended as-needed
# not used by nightly
productTag = FIREFOX_2_0_0_12pre
# Branch name and pull dates to use for base tag
@ -10,11 +10,11 @@ branchTag = MOZILLA_1_8_BRANCH
# not used by nightly
pullDate = 2007-08-21 03:07 PDT
l10n_pullDate = 2007-08-21 03:07 PDT
rc = 1
build = 1
# oldVersion and oldRc refer to the previous release
# not used by nightly
oldVersion = 2.0.0.7
oldRc = 2
oldBuild = 2
# app name and product name
appName = browser
product = firefox
@ -87,3 +87,4 @@ symbolDir = /builds/symbols
# turn off tests
testsPhoneHome = 1
bootstrapTag = RELEASE_AUTOMATION_M7_1
useBetaChannel = 0

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

@ -1,6 +1,6 @@
version = nightly
milestone = nightly
# _RCn and _RELEASE will be appended as-needed
# _BUILDn and _RELEASE will be appended as-needed
# not used by nightly
productTag = FIREFOX_2_0_0_13pre
# Branch name and pull dates to use for base tag
@ -10,11 +10,11 @@ branchTag = MOZILLA_1_8_BRANCH
# not used by nightly
pullDate = 2007-08-21 03:07 PDT
l10n_pullDate = 2007-08-21 03:07 PDT
rc = 1
build = 1
# oldVersion and oldRc refer to the previous release
# not used by nightly
oldVersion = 2.0.0.7
oldRc = 2
oldBuild = 2
# app name and product name
appName = browser
product = firefox
@ -87,3 +87,4 @@ symbolDir = /builds/symbols
# turn off tests
testsPhoneHome = 0
bootstrapTag = RELEASE_AUTOMATION_M7_2
useBetaChannel = 0

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

@ -1,16 +1,16 @@
version = 2.0.0.13
milestone = 1.8.1.13
# _RCn and _RELEASE will be appended as-needed
# _BUILDn and _RELEASE will be appended as-needed
productTag = FIREFOX_2_0_0_13
# Branch name and pull dates to use for base tag
branchTag = MOZILLA_1_8_BRANCH
#RelbranchOverride = GECKO181_20071115_RELBRANCH
pullDate = 2008-03-07 12:00 PST
l10n_pullDate = 2008-03-07 12:00 PST
rc = 1
build = 1
# oldVersion and oldRc refer to the previous release
oldVersion = 2.0.0.12
oldRc = 4
oldBuild = 4
appName = browser
product = firefox
# Absolute path to tinderbox build directory
@ -79,3 +79,4 @@ symbolServerUser = cltbld
symbolServerPath = /data/symbols
symbolServerKey = /home/cltbld/.ssh/id_rsa
useTarGz = 1
useBetaChannel = 1

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

@ -1,16 +1,16 @@
version = 1.5.0.12
milestone = 1.8.0.12
# _RCn and _RELEASE will be appended as-needed
# _BUILDn and _RELEASE will be appended as-needed
productTag = FIREFOX_1_5_0_12
# Branch name and pull dates to use for base tag
branchTag = MOZILLA_1_8_0_BRANCH
# GECKO180_20070501_RELBRANCH created manually from this pull date
pullDate = 2007-05-01 01:30 PDT
l10n_pullDate =
rc = 2
build = 2
# oldVersion and oldRc refer to the previous release
oldVersion = 1.5.0.11
oldRc = 1
oldBuild = 1
appName = browser
product = firefox
# Absolute path to tinderbox build directory

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

@ -1,16 +1,16 @@
version = 3.0b5
milestone = 1.9b5
# _RCn and _RELEASE will be appended as-needed
# _BUILDn and _RELEASE will be appended as-needed
productTag = FIREFOX_3_0b5
# Branch name and pull dates to use for base tag
branchTag = HEAD
#RelbranchOverride = GECKO19b5_20080326_RELBRANCH
pullDate = 2008-03-26 17:36 PDT
l10n_pullDate = 2008-03-20 04:00 PDT
rc = 2
build = 2
# oldVersion and oldRc refer to the previous release
oldVersion = 3.0b4
oldRc = 2
oldBuild = 2
appName = browser
product = firefox
# Absolute path to tinderbox build directory
@ -81,3 +81,4 @@ sshUser = cltbld
sshServer = stage-old.mozilla.org
useTalkback = 0
useCvsCompression = 1
useBetaChannel = 0

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

@ -1,6 +1,6 @@
version = nightly
milestone = nightly
# _RCn and _RELEASE will be appended as-needed
# _BUILDn and _RELEASE will be appended as-needed
# not used by nightly
productTag = FIREFOX_3_0b5pre
# Branch name and pull dates to use for base tag
@ -9,11 +9,11 @@ branchTag = test
# not used by nightly
pullDate = 2008-01-08 18:00 PST
l10n_pullDate = 2008-01-08 18:00 PST
rc = 1
build = 1
# oldVersion and oldRc refer to the previous release
# not used by nightly
oldVersion = 3.0b1
oldRc = 3
oldBuild = 3
# app name and product name
appName = browser
product = firefox
@ -89,3 +89,4 @@ useCvsCompression = 1
testsPhoneHome = 0
runMozillaTests = 1
bootstrapTag = RELEASE_AUTOMATION_M8
useBetaChannel = 0

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

@ -1,6 +1,6 @@
version = nightly
milestone = nightly
# _RCn and _RELEASE will be appended as-needed
# _BUILDn and _RELEASE will be appended as-needed
# not used by nightly
productTag = FIREFOX_3_0b2pre
# Branch name and pull dates to use for base tag
@ -9,11 +9,11 @@ branchTag = HEAD
# not used by nightly
pullDate = 2008-01-08 18:00 PST
l10n_pullDate = 2008-01-08 18:00 PST
rc = 1
build = 1
# oldVersion and oldRc refer to the previous release
# not used by nightly
oldVersion = 3.0b1
oldRc = 3
oldBuild = 3
# app name and product name
appName = browser
product = firefox
@ -90,3 +90,4 @@ useCvsCompression = 1
testsPhoneHome = 0
bootstrapTag = RELEASE_AUTOMATION_M8
runMozillaTests = 1
useBetaChannel = 0

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

@ -1,16 +1,17 @@
version = 3.0b5
milestone = 1.9b5
# _RCn and _RELEASE will be appended as-needed
productTag = FIREFOX_3_0b5
version = 3.0rc1
appVersion = 3.0
milestone = 1.9
# _BUILDn and _RELEASE will be appended as-needed
productTag = FIREFOX_3_0RC1
# Branch name and pull dates to use for base tag
branchTag = HEAD
#RelbranchOverride = GECKO190_20071207_RELBRANCH
pullDate = 2008-03-13 09:00 PST
l10n_pullDate = 2008-03-13 09:00 PST
rc = 1
pullDate = 2008-04-23 13:00 PDT
l10n_pullDate = 2008-04-23 13:00 PDT
build = 1
# oldVersion and oldRc refer to the previous release
oldVersion = 3.0b4
oldRc = 1
oldVersion = 3.0b5
oldBuild = 2
appName = browser
product = firefox
# Absolute path to tinderbox build directory
@ -81,3 +82,4 @@ sshUser = cltbld
sshServer = fx-linux-1.9-slave1.build.mozilla.org
useTalkback = 0
useCvsCompression = 1
useBetaChannel = 0

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

@ -5,10 +5,11 @@ l10n_pullDate = 2008-04-04 12:05 PDT
RelbranchOverride = GECKO181_20080311_RELBRANCH
milestone = 1.8.1.14
version = 2.0.0.14
rc = 1
build = 1
# _BUILDn and _RELEASE will be appended as-needed
productTag = THUNDERBIRD_2_0_0_14
oldVersion = 2.0.0.12
oldRc = 1
oldBuild = 1
appName = mail
product = thunderbird
linux_buildDir = /builds/tinderbox/Tb-Mozilla1.8-Release
@ -73,3 +74,4 @@ symbolServerUser = tbirdbld
symbolServerPath = /mnt/netapp/breakpad/symbols_tbrd
symbolServerKey = /home/cltbld/.ssh/tbirdbld_dsa
useTarGz = 1
useBetaChannel = 1

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

@ -1,16 +1,16 @@
version = 2.0.0.13
milestone = 1.8.1.13
# _RCn and _RELEASE will be appended as-needed
# _BUILDn and _RELEASE will be appended as-needed
productTag = THUNDERBIRD_2_0_0_13
# Branch name and pull dates to use for base tag
branchTag = MOZILLA_1_8_BRANCH
#RelbranchOverride = GECKO181_20071115_RELBRANCH
pullDate = 2008-03-09 23:00 PST
l10n_pullDate = 2008-03-09 23:00 PST
rc = 1
build = 1
# oldVersion and oldRc refer to the previous release
oldVersion = 2.0.0.12
oldRc = 1
oldBuild = 1
appName = mail
product = thunderbird
# Absolute path to tinderbox build directory
@ -79,3 +79,4 @@ symbolServerUser = cltbld
symbolServerPath = /data/symbols
symbolServerKey = /home/cltbld/.ssh/id_rsa
useTarGz = 1
useBetaChannel = 1

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

@ -1,15 +1,15 @@
version = 1.5.0.14
milestone = 1.8.0.14
# _RCn and _RELEASE will be appended as-needed
# _BUILDn and _RELEASE will be appended as-needed
productTag = THUNDERBIRD_1_5_0_14
# Branch name and pull dates to use for base tag
branchTag = MOZILLA_1_8_0_BRANCH
pullDate = 2007-12-07 11:34 PST
l10n_pullDate = 2007-12-07 11:34 PST
rc = 1
build = 1
# oldVersion and oldRc refer to the previous release
oldVersion = 1.5.0.13
oldRc = 1
oldBuild = 1
appName = mail
product = thunderbird
# Absolute path to tinderbox build directory

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

@ -1,17 +1,17 @@
version = 3.0b4
prettyAusVersion = 3 Beta 4
milestone = 1.9b4
# _RCn and _RELEASE will be appended as-needed
# _BUILDn and _RELEASE will be appended as-needed
productTag = FIREFOX_3_0b4
# Branch name and pull dates to use for base tag
branchTag = HEAD
#RelbranchOverride = GECKO190_20071207_RELBRANCH
pullDate = 2008-03-03 11:15 PST
l10n_pullDate = 2008-03-03 05:00 PST
rc = 1
build = 1
# oldVersion and oldRc refer to the previous release
oldVersion = 3.0b3
oldRc = 3
oldBuild = 3
appName = xulrunner
product = xulrunner
# Absolute path to tinderbox build directory
@ -82,3 +82,4 @@ sshUser = cltbld
sshServer = stage-old.mozilla.org
useTalkback = 0
useCvsCompression = 1
useBetaChannel = 0

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

@ -1,17 +1,17 @@
version = 3.0b3
prettyAusVersion = XULRunner 3 Beta 3
milestone = 1.9b3
# _RCn and _RELEASE will be appended as-needed
# _BUILDn and _RELEASE will be appended as-needed
productTag = FIREFOX_3_0b3
# Branch name and pull dates to use for base tag
branchTag = HEAD
#RelbranchOverride = GECKO190_20071207_RELBRANCH
pullDate = 2008-01-07 09:00 PST
l10n_pullDate = 2008-01-07 09:00 PST
rc = 1
build = 1
# oldVersion and oldRc refer to the previous release
oldVersion = 3.0b2
oldRc = 1
oldBuild = 1
appName = xulrunner
product = xulrunner
# Absolute path to tinderbox build directory
@ -82,3 +82,4 @@ sshUser = cltbld
sshServer = fx-linux-1.9-slave1.build.mozilla.org
useTalkback = 0
useCvsCompression = 1
useBetaChannel = 0