SeaMonkey:Release Process:2.0b1

From MozillaWiki
Jump to: navigation, search

Build Harness

SeaMonkey:Release Automation

Bugs

Tracking bug filed as bug 504150

Build Engineer

Robert Kaiser

Signed-off Revisions

http://hg.mozilla.org/comm-central/rev/48147c4781e9
http://hg.mozilla.org/releases/mozilla-1.9.1/rev/1e7c406956d3
http://hg.mozilla.org/dom-inspector/rev/ef29512d86ae
http://hg.mozilla.org/venkman/rev/06ea5135b7f3
chatzilla CVS timestamp: 2009-07-16 00:00

L10n revisions according to opt-ins as listed in l10n-changesets

Notes

Build

  • Updated shipped-locales, l10n-changesets, release-config.py
  • Kicked off with the following command:
buildbot sendchange --username=kairo --master=localhost:9010 --branch=comm-central -m "SeaMonkey 2.0b1build1" doit
  • Windows and Mac ran into build problems the first time when running client.py checkout - I had forgotten to ssh into cvs.m.o from those slaves before to accept the ssh key. Corrected that, dummied out tag/source, reduced build triggering to exclude Linux and kicked off again
  • Mac then strangely ran into a hang in gathering build properties, rebooted the slave to get the master to recognize the build was broken, but the master thought the cycle was good when that step failed and triggered L10n repacks that failed as no en-US build was up yet. Reduced build triggering to Mac only and kicked off once again
  • Second try on Mac builds failed the same way, it ran on the same slave (-osx-02) as the first try as well. The error was only to be seen in the slave's twistd.log and came down to a "[Errno 4] Interrupted system call" in _syscmd_uname('-p','') which is called by twistd/buildbot itself, which makes it look even stranger. When I kicked it off once again and the build ran on a different slave (-osx-01), it worked successfully.

Signing

We have no signing infrastructure for SeaMonkey right now, so I faked the signing step that is usually done after completion of builds and L10n repacks and before the update generation.

Logged onto stage-old.mozilla.org and use those commands to do the following (now in fakesign.sh):

# seabld@stage-old
VERSION=2.0b1
BUILD=1
cd /home/ftp/pub/seamonkey/nightly/${VERSION}-candidates/build${BUILD}
mkdir win32 update/win32
rsync -av --exclude=*.zip unsigned/win32/ win32/
rsync -av unsigned/update/win32/ update/win32/
rsync -av unsigned/win32_info.txt .
echo "faked" > win32_signing_build${BUILD}.log

We purposely make copies here rather than symlinking for a couple of reasons: L10n verify scripts barf when they get zip files (hence the --exclude above), 'updates' factory will blow away complete MARs upon upload if update/win32 is a symlink. The echo creates the log the automation looks for, in order to continue to l10n verify and updates.

Updates and Verification

  • As I did the fake-sign step prematurely when Mac wasn't available yet due to above mentioned difficulties, the update step triggered on seeing those "signed" builds and failed due to missing Mac builds. I restarted it when Mac builds were there, but it it had the patcher-config step failing as the run before had already done that. The factory continued nevertheless and created updates correctly.
  • When I kicked off the update verification steps, they failed because the verify configs contained location for 2.0a3 build that would fit pretty names but we didn't have them there yet. Because of that, I needed to manually edit the update-verify files for the correct locations and start the verification steps again (both updates and verification can just be triggered from the buildbot web interface).
    • Linux verification is green, log analysis shows that debugQA wasn't removed, that's OK from a release POV an might just be OK overall.
    • Win32 verification is red, but that's expected as the general notes on verification log analysis point out, the .chk files for NSS differ. Apart from that, debugQA is also left and the p@m directory seems to still be there even if the log states its contents have been removed.
    • Mac verification is green, also shows debugQA being left and a nice diff of removed-files after partial update, which doesn't really matter for us, of course.

Copy ZIPs

We want to have the zip files for the release available in the download directory, so I copied them over with the following script (now in zipcopy.sh):

VERSION=2.0b1
BUILD=1
cd /home/ftp/pub/seamonkey/nightly/${VERSION}-candidates/build${BUILD}
rsync -av --exclude=*.exe unsigned/win32/ win32/

Copy Language Packs

For making the language packs available in the location we actually want them to be in, wrote up a langpackmove.sh script with the following content:

#!/bin/sh

VERSION=2.0b1
BUILD=1

cd /home/ftp/pub/seamonkey/nightly/${VERSION}-candidates/build${BUILD}
mkdir langpack

for file in linux-i686/xpi/*.xpi; do
  locale=`basename ${file} .xpi`
  cp -av ${file} langpack/seamonkey-${VERSION}.${locale}.langpack.xpi
done

Push To Mirrors

# seabld@stage
rsync -av --exclude=*.log --exclude=*.txt --exclude=*unsigned* --exclude=xpi /pub/mozilla.org/seamonkey/nightly/2.0b1-candidates/build1/ /pub/mozilla.org/seamonkey/releases/2.0b1/

Final Verification

  • Use 'Force Build' to start the final_verification builder, all tested URLs are HTTP 200 and 302, everything good to go!

Publish Updates to the beta Channel

~/bin/backupsnip 20090717-SeaMonkey-2.0b1
~/bin/pushsnip 20090717-SeaMonkey-2.0b1