Monday, February 22, 2010

Bringing Linux 64 up to speed (codesighs and puppet)

In our efforts to get Linux 64 as much as an official platform as our other major platforms we have undertaking for the last few weeks adding unit tests to it.

The first step has been to run codesighs for Linux 64 and this required adding some entries to the graph server DB. This turned the first few builds red but it should be back to normal with the new builds.

The next step will be to add puppet to our current production Linux 64 slaves which we will announce ahead of time.

There are many more things to come but these two are the immediate ones that you should be aware of.

For more details check out this bug:
      "Bug 520722 - run unittests on linux64"




Creative Commons License
This work by Zambrano Gasparnian, Armen is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.

Thursday, February 18, 2010

Doing a Firefox release (3.5.8)

I started two weeks ago to do the 3.5.8 release for Firefox and this is the first official release that I have done.
It has been a great experience and the work that my coworkers have done has made it possible to be this smooth (there is room for improvements).

The process that I had to go through (simplified) is the following:
  • Week 1
    1. Prepare some patches to bump the version and be ready for the official "go"
    2. Trigger the builds. check that every builder that was triggered it completed
    3. Start signing the windows builds and verify signatures
    4. Add product to Socorro/Crash-stats
  • Week 2
    1. Create major update
    2. Push the updates to the beta channel
  • Week 3
    1. Add bouncer entries
    2. Request virus check
    3. Push the builds to the mirrors
    4. Create xulrunner builds
    5. Push the updates live
    6. Add final release symlink
Obviously this is a much simplified view of what it is involved but it gives a good idea and a time breakdown. Important to note that this is when a release does not require re-spins and it is not a fire-drill release.

I am glad it all worked out well and next time I will expect to commit less mistakes.

For more information read the build notes or bug 543761.



Creative Commons License
This work by Zambrano Gasparnian, Armen is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.

Tuesday, February 16, 2010

Public Linux Reference Image (to mount /builds partition)

I wanted to have a Linux VM on my machine and I decided to use the Linux Reference Image that we provide to get all the goodies that our slaves have.

The problem is that the /builds partition did not get added automatically and thanks to bhearsum I was able to add it.

NOTE: The VM has to be completely powered off
  1. From VMWare's Virtual Machine Library access the settings of your VM.
  2. Chose  "Hard Disks"
  3. Click "+"
  4. Under "File name" select "Choose existing disk..."
  5. The name is "CentOS-5.0-ref-tools-vm_1.vmdk"
    • It should be in the tar ball you downloaded
    • It should be say that it is 30GBs
Now you have to power on the VM and make sure you see this line in /etc/fstab:
/dev/sdb1               /builds                 ext3    defaults        0 0
Now do "mount -a" to mount the new partition.

I hope this helps you.



Creative Commons License
This work by Zambrano Gasparnian, Armen is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.

Thursday, February 04, 2010

WinCE builds disabled on release engineering

We have turned off the WinCE builds in our release automation. This will give us back some of our CPU time for others builds.
Disabling these jobs is just as switching off the lights of a room, and therefore, it can be easily reversed.

I announce this on dev.planning and here is the link to the bug.



Creative Commons License
This work by Zambrano Gasparnian, Armen is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.

Monday, February 01, 2010

Setting up Snow Leopard for a Mozilla Release Engineer

This is more of my personal setup from scratch that can help others to setup in a faster manner or for my next reinstall.

This post can be divided into:
  • Basic development tools
  • Buildbot setup
  • Personal touch
WARNING: I could have missed some steps or written them incorrectly. Use at your own risk

Basic development tools
After reading Mac_OS_X_Build_Prerequisites I took these these steps out of it:
  • install XCode from the Mac Installation DVD (it can also be downloaded)
  • install MacPorts - download page
    • sudo port install libidl autoconf213 (it took 30 mins)
    • sudo port install mercurial
    • sudo port install wget
    • sudo port install git-core +svn
  • sudo ln -s /opt/local/bin/autoconf213 /usr/local/bin/autoconf-2.13 (this is Rel. Eng. specific)


Buildbot setup

NOTE: At first I had some problems with python 2.6 which comes by default. If by any chance you need to switch to python 2.5 I recommend you to use the following command rather than trying to build it yourself (python 2.5 doesn't easily build on snow leopard and it is not planned to port the fix)
defaults write com.apple.versioner.python Version 2.5
(this will select the already installed python 2.5 version on Snow Leopard)

From buildbot, python, twistd and zope for Mac OS X page and my own experience:
wget http://www.zope.org/Products/ZopeInterface/3.3.0/zope.interface-3.3.0.tar.gz tar xfvj zope.interface-3.3.0.tar.gz cd zope.interface-3.3.0sudo python setup.py install
cd ..
wget http://tmrc.mit.edu/mirror/twisted/Twisted/8.2/Twisted-8.2.0.tar.bz2
tar xfvj Twisted-8.2.0.tar.bz2
cd
Twisted-8.2.0sudo python setup.py install
cd ..

hg clone http://hg.mozilla.org/build/buildbot
cd buildbot
sudo python setup.py install
  • create your buildbot master and slave where you want them
buildbot create-master master
buildbot create-slave slave localhost:9010 moz2-darwin-slave03 password
cd master
ln -s ~/repos/buildbotcustom
ln -s ~/repos/buildbot-configs/mozilla2-staging/*.{py,ini,cfg} .
ln -s ~/repos/buildbot-configs/mozilla2-staging/l10n-changesets* .
ln -s master1.cfg master.cfg
ln -s release_config1.py release_config.py
ln -s release-fennec-mozilla-1.9.2.py release_mobile_config.py
  • comment out on master.cfg the information with regards to the buildbot DB (sqlalchemy)
  • create a file called BuildSlaves.py and enter this content:
SlavePasswords = {
    'linux': 'password',
    'linux64': 'password',
    'win32': 'password',
    'macosx': 'password',
}
Personal touch

At this point I am missing instructions for the following (it might come in following posts):
  • install a better version of Vim or find setting to change (numeric keypad behaves oddly)
  • setup my Microsoft Keyboard and Mouse (look for the CD or place to download it)
  • install csshX (it allows me connect to multiple machines at the same time)
  • how to setup the Centos VM to work with your local buildbot master
  • how to setup a Windows VM to work with your local buildbot master



Creative Commons License