Build:Release Automation: Difference between revisions

move notes to separate pages
(fix link)
(move notes to separate pages)
Line 125: Line 125:
** created "latest" and "latest-2.0" symlinks manually after final release
** created "latest" and "latest-2.0" symlinks manually after final release
** created bouncer links manually {{Bug|372746}}
** created bouncer links manually {{Bug|372746}}
=Updating Staging release version (mirror refresh, etc.)=
* Bump config versions in mozilla/tools/release/Makefile, mozilla/tools/configs/fx-moz18-staging-bootstrap.cfg, mozilla/tools/buildbot-configs/automation/staging/master.cfg e.g. {{bug|397425}}
* Disable cltbld's nightly cronjob
* Refresh cvsmirror
As cltbld@staging-build-console:
cd /home/cltbld/mozilla/tools/release
cvs up
export CVS_RSH="/home/cltbld/ssh_prod.sh"
make cvsmirror
* Update bootstrap and buildbot configs. These are symlinked from bootstrap-configs and buildbot-configs checkouts (of mozilla/tools/release/configs/ and mozilla/tools/buildbot-configs/automation/staging/, respectively).
As buildmaster@staging-build-console:
cd /home/buildmaster/TestBot
buildbot stop `pwd`
cd bootstrap-configs && cvs up && cd ../
cd buildbot-configs && cvs up && cd ../
buildbot start `pwd`
NOTE - the Talkback symbol server is hardcoded in /builds/cvsmirror.clean/mofo/talkback/fullsoft/Makefile.in, this should be changed like so:
FC_TUNNEL      = ssh -$(FC_SSH_VERSION) -f -L 8080:hal:80 $(LSSH_USER)staging-build-console.build.mozilla.org sleep 20
SYM_TUNNEL      = ssh -$(SYM_SSH_VERSION) -f -L 2222:localhost:22 $(LSSH_USER)staging-build-console.build.mozilla.org sleep 20


=Roles and resource requirements=
=Roles and resource requirements=
Line 161: Line 189:
=Setup notes (historical)=
=Setup notes (historical)=
[[Build:Release Automation:Notes on Staging Setup|Notes on Staging Setup]]
[[Build:Release Automation:Notes on Staging Setup|Notes on Staging Setup]]
[[Build:Release Automation:Notes on Production Setup|Notes on Production Setup]]


==Updating release version (mirror refresh, etc.)==
=Enhancements=
* Bump config versions in mozilla/tools/release/Makefile, mozilla/tools/configs/fx-moz18-staging-bootstrap.cfg, mozilla/tools/buildbot-configs/automation/staging/master.cfg e.g. {{bug|397425}}
 
* Disable cltbld's nightly cronjob
 
* Refresh cvsmirror
 
As cltbld@staging-build-console:
cd /home/cltbld/mozilla/tools/release
cvs up
export CVS_RSH="/home/cltbld/ssh_prod.sh"
make cvsmirror
 
* Update bootstrap and buildbot configs. These are symlinked from bootstrap-configs and buildbot-configs checkouts (of mozilla/tools/release/configs/ and mozilla/tools/buildbot-configs/automation/staging/, respectively).
 
As buildmaster@staging-build-console:
cd /home/buildmaster/TestBot
buildbot stop `pwd`
cd bootstrap-configs && cvs up && cd ../
cd buildbot-configs && cvs up && cd ../
buildbot start `pwd`
 
NOTE - the Talkback symbol server is hardcoded in /builds/cvsmirror.clean/mofo/talkback/fullsoft/Makefile.in, this should be changed like so:
 
FC_TUNNEL      = ssh -$(FC_SSH_VERSION) -f -L 8080:hal:80 $(LSSH_USER)staging-build-console.build.mozilla.org sleep 20
SYM_TUNNEL      = ssh -$(SYM_SSH_VERSION) -f -L 2222:localhost:22 $(LSSH_USER)staging-build-console.build.mozilla.org sleep 20
 
=Production setup HOWTO for linux/mac/win32=
 
This section describes the changes made to clones of the nightly tinderboxes (which were formerly used exclusively for releases).
 
* build-console setup
** check out /mofo/release/stage to /data/cltbld/bin
*** <strike>''NOTE - this is for the firefox-src-tarball-nobuild script, which checks out a tag from CVS and creates a source archive. This should be reimplemented in the [http://mxr.mozilla.org/mozilla/source/tools/release/Bootstrap/Step/Source.pm bootstrap Source step]''</strike>
 
* (Win32/Mac only) install Config::General
  cd /tools/dist
  wget http://search.cpan.org/CPAN/authors/id/T/TL/TLINDEN/Config-General-2.33.tar.gz
  tar xfvz Config-General-2.33.tar.gz
  cd Config-General-2.33
  perl Makefile.PL
 
its ok to ignore the warning from "perl Makefile.PL":
Warning: the following files are missing in your kit:
t/test.rc.out
 
  sudo make install
 
* (Linux only) prepend custom GCC to the path in ~/.bash_profile
export PATH="/usr/gcc-3.3.2rh/bin:/opt/local/bin:/tools/buildbot/bin:/tools/twisted/bin:/tools/twisted-core/bin:$PYTHONHOME/bin:$PATH"
 
* create logs dir
$ mkdir -p /tools/dist/logs
$ mkdir -p /builds/logs
 
* (Mac only) Install 7z. You can download it. Or you can copy it from bm-xserve01, which is what we did here. By putting the file in /usr/bin, it is automatically on the PATH of cltbld's .profile.
 
  $ cd /usr/bin
  $ sudo rsync -av cltbld@bm-xserve01.build.mozilla.org:/usr/local/bin/7z .
 
* look for Tinderbox directory
#linux: if tinderbox name is not "Fx-Mozilla1.8-Release" exactly, symlink it
ln -s /builds/tinderbox/Fx-Mozilla1.8-release /builds/tinderbox/Fx-Mozilla1.8-Release
 
Check out tinderbox configs:
# win32
cvs -d cltbld@cvs.mozilla.org:/cvsroot co -r MOZILLA_1_8_BRANCH_release -d tinderbox-configs mozilla/tools/tinderbox-configs/firefox/win32
# linux
cvs -d cltbld@cvs.mozilla.org:/cvsroot co -r MOZILLA_1_8_BRANCH_release -d tinderbox-configs mozilla/tools/tinderbox-configs/firefox/linux
# macosx
cvs -d cltbld@cvs.mozilla.org:/cvsroot co -r MOZILLA_1_8_BRANCH_release -d tinderbox-configs mozilla/tools/tinderbox-configs/firefox/macosx
 
 
* set up Tinderbox l10n build directory
# linux
cd /builds/tinderbox/
# win32
cd /cygdrive/c/builds/tinderbox/
 
mkdir Fx-Mozilla-1.8-l10n-Release
cd Fx-Mozilla-1.8-l10n-Release
../mozilla/tools/tinderbox/install-links
rm build-seamonkey.pl
ln -s ../mozilla/tools/tinderbox/build-firefox.pl .
ln -s build-firefox.pl build-seamonkey.pl
rm post-mozilla.pl
ln -s post-mozilla-release.pl post-mozilla.pl
 
Check out tinderbox configs:
# win32
cvs -d cltbld@cvs.mozilla.org:/cvsroot co -r MOZILLA_1_8_BRANCH_l10n_release -d tinderbox-configs mozilla/tools/tinderbox-configs/firefox/win32
# linux
cvs -d cltbld@cvs.mozilla.org:/cvsroot co -r MOZILLA_1_8_BRANCH_l10n_release -d tinderbox-configs mozilla/tools/tinderbox-configs/firefox/linux
# macosx
cvs -d cltbld@cvs.mozilla.org:/cvsroot co -r MOZILLA_1_8_BRANCH_l10n_release -d tinderbox-configs mozilla/tools/tinderbox-configs/firefox/macosx
 
 
ln -s tinderbox-configs/mozconfig .
ln -s tinderbox-configs/tinder-config.pl .
 
* [http://wiki.mozilla.org/ReferencePlatforms/BuildBot/Linux Install buildbot]
* running as "cltbld", install slave
#linux
$ cd ~
$ buildbot create linux-slave1 build-console.build.mozilla.org:9989 linux-slave1 password
#win32
c:\\buildtools\\python24\\scripts\\buildbot create-slave c:\\win32-slave1 build-console.build.mozilla.org:9989 win32-slave1 password
 
* edit the admin and host pages in ~/linux-slave1/info/
 
* start slave
#linux
buildbot start /home/cltbld/linux-slave1
# win32
c:\\buildtools\\python24\\scripts\\buildbot start c:\\win32-slave1
 
==Just for testing==
 
* build-console
** use "stage" target in [http://mxr.mozilla.org/mozilla/source/tools/release/Makefile#7 bootstrap's Makefile]
 
* Move prod ssh keys out of the way, and copy in "staging" keys:
cd ~
mv ~/.ssh ~/ssh.prod
scp cltbld@staging-prometheus-vm:~/.ssh/id_rsa .ssh/
 
* Move prod tinderbox-configs and put staging-build-console in Root:
# win32
cd /cygdrive/c/builds/tinderbox/Fx-Mozilla-1.8-Release
# linux
cd /builds/tinderbox/Fx-Mozilla-1.8-Release
 
cp -rp tinderbox-configs tinderbox-configs.prod
# change root to cltbld@staging-build-console.build.mozilla.org:/builds/cvsmirror/cvsroot
vi tinderbox-configs/CVS/Root
 
Same for l10n tinderbox build directories:
 
# win32
cd /cygdrive/c/builds/tinderbox/Fx-Mozilla-1.8-l10n-Release
# linux
cd /builds/tinderbox/Fx-Mozilla-1.8-l10n-Release
 
cp -rp tinderbox-configs tinderbox-configs.prod
# change root to cltbld@staging-build-console.build.mozilla.org:/builds/cvsmirror/cvsroot 
vi tinderbox-configs/CVS/Root
 
* <strike>/data/cltbld/bin/firefox-src-tarball-nobuild has a hardcoded CVSROOT; change it to cltbld@staging-build-console.build.mozilla.org:/builds/cvsmirror/cvsroot</strike>
 
=Outstanding issues=
 
==Enhancements==


* ([https://bugzilla.mozilla.org/show_bug.cgi?id=394507  bug 394507]) should set buildbot up to mail based on any failures, currently just depend on bootstrap
* ([https://bugzilla.mozilla.org/show_bug.cgi?id=394507  bug 394507]) should set buildbot up to mail based on any failures, currently just depend on bootstrap
canmove, Confirmed users
1,511

edits