Build:Release Automation:Trunk

From MozillaWiki
Jump to navigation Jump to search

Release Automation on Trunk

General Notes

  • There is a set of patches in ~cltbld/local-patches that must be applied to the /builds/cvsmirror.clean whenever it is updated from the main CVS mirror
  • Currently (as of November 6, 2007) the Tag step has been modified to work around the lack of a 'shipped-locales' file on trunk. There is a script in /builds/buildbot/staging-trunk-master called 'create_shipped-locales.sh'. It is run during on the Tag Builder right after creating the cvsmirror, and right before running the Bootstrap Tag step.
  • CVS on windows requires '-z3' or it will not work correctly. (OR follow the "msys package upgrade" steps below)
  • Commented out the SYMBOL_SERVER_* and $crashreporter_* variables in mozilla/tools/tinderbox-configs/firefox/*/tinder-config.pl on the 'release' and 'l10n_release' tags.
  • Bootstrap has it's own special cvsmirror in /builds/cvsmirror.bootstrap/cvsroot. master.cfg was updated to reflect this.
  • Some msys packages were upgraded on trunk. Here's how to do it:
  1. Run this script:
  2. #!/bin/sh files="http://easynews.dl.sourceforge.net/sourceforge/mingw/zlib-1.2.3-MSYS-1.0.11.tar.bz2 http://easynews.dl.sourceforge.net/sourceforge/mingw/openssl-0.9.8e-3-MSYS1.0.11.tar.bz2 http://easynews.dl.sourceforge.net/sourceforge/mingw/openssh-4.6p1-MSYS-1.0.11.tar.bz2 http://easynews.dl.sourceforge.net/sourceforge/mingw/minires-1.01-1-MSYS-1.0.11.tar.bz2" for file in $files; do wget $file done for file in *.tar.bz2; do tar -jvxf $file done
  3. When that's done, make a backup of your existing msys insntallation, just in case.
  4. Copy usr/bin/* to your existing msys bin directory. You will have to overwrite some files.
  • Make sure all the tinder-config.pl's (release and l10n_release branches) have ReleaseToNightly=0 and ReleaseToDated=1 set.
  • Had to install 7z on OS X slave.
  • Had to patch mozilla/testing/release/common/unpack.sh with this patch: http://people.mozilla.org/~bhearsum/Build/l10n/l10nupdate.diff
  • Created a moz-trunk-patcher2.cfg and checked in to local mofo mirror
  • Had to add mozilla/.mozconfig with '--enable-default-toolkit=cairo-gtk' to make Updates::Execute() work properly and tag with MOZILLA_1_9a8_RELEASE (it is expected that Updates pulls from that static tag)
  • Had to add moz-trunk-firefox-${platform}.cfg files in mozilla/testing/release/updates. These files were constructed pretty much 100% by hand.

Problems & Solutions

  • 'Tag substep Bump died: None of ^WIN32_MODULE_PRODUCTVERSION_STRING=3.0a9pre$ found in file /builds/tags/FIREFOX_3_0_A9_RC1/cvsroot/mozilla/browser/app/module.ver: at Bootstrap/Step/Tag/Bump.pm line 149.'
    • Your cvsmirror is out-of-date. Run the Tag Builder with the cvsmirror steps enabled to resolve this. (double check this)
  • Python errors on OS X (cannot import os module, etc)
    • configure seems to be finding the wrong version of Python. Worked around by moving /usr/bin/python symlink to point to /tools/python/bin/python
  • CVS sometimes hangs on windows
    • Wait until cvs appears to be done (usually, cpu usage is 0%), then kill ssh.exe in Task Manager.
    • this is fixed by upgrading ssh as shown above
  • Build fails on an nsinstall of scriptaculous unit tests
    • This is caused by bug 396187. Workaround it like this (make sure not to use trailing slashes on the directory names):
ln -s /e/builds/tinderbox/Fx-Mozilla1.9-Release /e/fx19rel
ln -s /e/builds/tinderbox/Fx-Mozilla1.0-l10n-Release /e/fx19l10nrel
  • Make sure to change bootstrap.cfg to use these new directories.
  • pushDir not found at end of Build
    • last-built is not being removed at the start of a new build. remove it manually before doing a Build.
wget -nv --output-document "/builds/tinderbox/Fx-Mozilla1.9-l10n-Release/Linux_2.6.18-8.el5_Depend/firefox.tar.gz" http://staging-trunk-automation.build.mozilla.org/pub/mozilla.org/firefox/nightly/3.0b2-candidates/rc1/firefox-3.0b2.en-US.linux-i686.tar.gz
End:   Mon Nov 12 10:41:20 2007
Error: wget failed or timed out.
  • wget errors in Repack::Execute(), like above.
    • Make sure the HTTP server on staging-trunk-automation is running
    • On Linux, this may occur because your tinder-config.pl is hardcoded to look for firefox.tar.gz. This should be updated to firefox.tar.bz2
  • mar failing out, returning 255
    • one of the existing mar files is corrupt. you should delete the mall (/builds/updates/firefox-3.0b2/patcher/temp) and run Updates::Execute() again
  • win32 Build dies citing a problem with firefox.ico.
    • The firefox.ico on GECKO190_20071106_RELBRANCH on cvs.mozilla.org needs to be landed on the local cvsmirror trunk (the clean and working copy). the pullDate also needs to be bumped up to make sure it gets this version.
  • Build::Push() on win32 tries to push win32_info.txt to the wrong directory.
    • Make sure logs are going to /builds/logs NOT /e/builds/logs. The latter will not work with the Makefile.

Changes made to the local cvs mirror

  • Added a .mozconfig file with 'ac_add_options --enable-default-toolkit=cairo-gtk' in it; tagged it with patcherToolsRev tag. This was done because configure doesn't work without it. This really should not be necessary and is not the best workaround.
  • Added moz-trunk-patcher2.cfg to the local mofo mirror. When landing this it would be a good time to move the patcher configs to public CVS.
    • The initial version of this included 3.0a9 and 3.0b1. PatcherConfig bumped it for 3.0b2.
  • Added moz-trunk-firefox-linux.cfg for updates.
    • Initially was an empty file
  • mozilla/testing/release/common/check_updates.sh crash fix
    • Should this go upstream?
  • Landed the mozilla/other-licenses/branding/firefox/firefox.ico from GECKO190_20071106_RELBRANCH (on cvs.mozilla.org) to work around an msys/psdk bug (bug 346214 for details)
  • Disabled symbol server in tinder-config.pl on release and l10n_release branches
    • Should probably re-enable it