diff --git a/mozilla/tools/release/Bootstrap/Config.pm b/mozilla/tools/release/Bootstrap/Config.pm new file mode 100644 index 00000000000..ca81658db51 --- /dev/null +++ b/mozilla/tools/release/Bootstrap/Config.pm @@ -0,0 +1,60 @@ +# +# Config object for release automation +# + +package Bootstrap::Config; + +use strict; + +# shared static config +my %config; + +# single shared instance +my $singleton = undef; + +sub new { + my $proto = shift; + my $class = ref($proto) || $proto; + + return $singleton if defined $singleton; + + my $this = {}; + bless($this, $class); + $this->Parse(); + $singleton = $this; + + return $this; +} + +sub Parse { + my $this = shift; + + open (CONFIG, "< bootstrap.cfg") + || die "Can't open config file bootstrap.cfg"; + + while () { + chomp; # no newline + s/#.*//; # no comments + s/^\s+//; # no leading white + s/\s+$//; # no trailing white + next unless length; # anything left? + my ($var, $value) = split(/\s*=\s*/, $_, 2); + $config{$var} = $value; + } + close CONFIG; +} + +sub Get { + my $this = shift; + + my %args = @_; + my $var = $args{'var'}; + + if ($config{$var}) { + return $config{$var}; + } else { + die("No such config variable: $var\n"); + } +} + +1; diff --git a/mozilla/tools/release/Makefile b/mozilla/tools/release/Makefile new file mode 100644 index 00000000000..7c70f908d5c --- /dev/null +++ b/mozilla/tools/release/Makefile @@ -0,0 +1,47 @@ +test: + for f in release t/test.pl `find . -name "*.pm"`; do perl -c $$f; done + ./t/test.pl + +stage: + # basic environment + mkdir -p /builds/tags + mkdir -p /builds/updates/ + mkdir -p /builds/verify/ + # ftp + mkdir -p /home/ftp/pub/firefox/nightly + # fake key + mkdir -p /home/ftp/pub/firefox/releases/1.5/ + touch /home/ftp/pub/firefox/releases/1.5/KEY + # staging environment + mkdir -p /data/cltbld/firefox-1.5.0.7/batch1/stage + +cvsmirror: cvsmirror_main cvsmirror_mofo + +cvsmirror_main: + rsync -a --delete-after cvs-mirror.mozilla.org::mozilla/ /builds/cvsmirror/cvsroot/ + rsync -a --delete-after cvs-mirror.mozilla.org::l10n/ /builds/cvsmirror/l10n/ + chgrp -R cvs /builds/cvsmirror/cvsroot /builds/cvsmirror/l10n /builds/cvsmirror/mofo + chmod -R g+rw /builds/cvsmirror/cvsroot /builds/cvsmirror/l10n /builds/cvsmirror/mofo + +cvsmirror_mofo: + mkdir -p /builds/cvsmirror/tmp/mofo + mkdir -p /builds/cvsmirror/mofo + cvs -d /builds/cvsmirror/mofo init + cd /builds/cvsmirror/tmp/mofo && cvs -d cltbld@cvs.mozilla.org:/mofo export -r MOZILLA_1_8_0_BRANCH talkback + cd /builds/cvsmirror/tmp/mofo && cvs -d cltbld@cvs.mozilla.org:/mofo export -r HEAD release + rm -rf /builds/cvsmirror/tmp/mofo/release/tinderbox-configs/ + cd /builds/cvsmirror/tmp/mofo && cvs -d cltbld@cvs.mozilla.org:/mofo export -r MOZILLA_1_8_0_BRANCH_release release/tinderbox-configs/ + cd /builds/cvsmirror/tmp/mofo/release && cvs -d /builds/cvsmirror/mofo import -m "import CVS snapshot" release MOZILLA_1_8_0_BRANCH_release R0_1 + cd /builds/cvsmirror/tmp//mofo/talkback && cvs -d /builds/cvsmirror/mofo import -m"import CVS snapshot" talkback MOZILLA_1_8_0_BRANCH R0_1 + rm -rf /builds/cvsmirror/tmp/mofo + +clean_stage: + rm -rf /builds/tags/* + rm -rf /builds/release/logs/* + rm -rf /builds/updates/* + rm -rf /builds/verify/* + rm -rf /data/cltbld/firefox-1.5.0.7/ + rm -rf /home/ftp/pub/firefox/* + +clean_cvsmirror: + rm -rf /builds/cvsmirror/*