Build:Release Automation:Notes on Production Setup
Jump to navigation
Jump to search
Notes on Production Setup
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
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 bootstrap Source step
- check out /mofo/release/stage to /data/cltbld/bin
- (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
- (Win32 only) install msdia80.dll from Debug Interface Access (DIA) SDK (for Talkback symbol processing for Breakpad symbol server). I copied this from D:\msvs8\DIA SDK\bin\msdia80.dll on fx-win32-tbox to /cygdrive/c/buildtools/msdia80/. Version is 8.0.50727.762, md5sum: e4ba094ffbca3f398c5ddc931e9ad620.
Then add C:\buildtools\msdia80\ to the end of mozbuildpath at My Computer > Properties > Advanced > Environment Variables. And give this command in a cmd window: regsvr32 c:\buildtools\msdia80\msdia80.dll
Also ensure that PATH contains c:\buildtools\python24;c:\buildtools\python24\scripts, for the symbolstore.py script.
- (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"
- (Linux only) If prometheus-vm has been cloned to make a slave, then disable the nightly update generator in cltbld's crontab
- 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 .
- 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-1.8-slave1
Just for testing
- build-console
- use "stage" target in 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
/data/cltbld/bin/firefox-src-tarball-nobuild has a hardcoded CVSROOT; change it to cltbld@staging-build-console.build.mozilla.org:/builds/cvsmirror/cvsroot
- Apache needs to be installed and set to start on boot
yum install httpd chkconfig --levels 235 --add httpd