Build:Release Automation: Difference between revisions

no edit summary
No edit summary
 
(5 intermediate revisions by one other user not shown)
Line 1: Line 1:
{{Obsolete RelEng Page|It was last edited in 2008, and is thus certainly out of date by now.}}
=Intro=
=Intro=
Firefox and Thunderbird releases are currently done using the [http://wiki.mozilla.org/Build:Release_Automation#Bootstrap Bootstrap] automation scripts, which call into [http://mxr.mozilla.org/seamonkey/source/tools/tinderbox/ Tinderbox client] to do the actual build.
Firefox and Thunderbird releases are currently done using the [http://wiki.mozilla.org/Build:Release_Automation#Bootstrap Bootstrap] automation scripts, which call into [http://mxr.mozilla.org/seamonkey/source/tools/tinderbox/ Tinderbox client] to do the actual build.
Line 20: Line 22:
=Current status=
=Current status=


For the Firefox 2.0.0.12, we are using Buildbot to drive the release. Instead of a human operater logging into [http://wiki.mozilla.org/index.php?title=Build:Release_Automation#Roles_and_resource_requirements each machine] used in the release process, the machines run Buildbot slaves instead. Most of the slaves simply check out and run Bootstrap, at this point.
This system is used for all current Firefox branches. Public documentation for each release is posted under the "Build" links on the [[Releases]] page.
 
Both the [http://mxr.mozilla.org/mozilla/source/tools/buildbot-configs/automation/staging/ staging] and [http://mxr.mozilla.org/mozilla/source/tools/buildbot-configs/automation/production production] configs are checked into CVS.
 
There are still several manual processes, which we are working on automating:
 
* Buildbot config
** if necessary, tag new version of mozilla/tools/release (used RELEASE_AUTOMATION_M7)
*** make sure buildbot-configs/automation/production/master.cfg uses this tag
** need to file bug (e.g. {{Bug|414327}}) and attach diff for bootstrap.cfg (e.g. [http://mxr.mozilla.org/mozilla/source/tools/release/configs/fx-moz18-bootstrap.cfg fx-moz18-bootstrap.cfg])
** need to "cvs update" /home/buildmaster/Automation/buildbot-configs/ and /home/buildmaster/Automation/bootstrap-configs/ after checkin
** need to manually insert passwords into master.cfg, as they are intentionally not in the checked-in version.
** make sure Tinderbox is up-to-date on all slaves {{Bug|397554}}
*** used RELEASE_AUTOMATION_M7 (after tagging mozilla/tools/tinderbox with this)
*** was RELEASE_AUTOMATION_M6_1 before
** reconfig (or restart if idle) buildbot master (<tt>buildbot reconfig `pwd`</tt>), so new automation tag is detected
** ensure that machines have [http://wiki.mozilla.org/Build:Release_Automation#Roles_and_resource_requirements enough resources] {{Bug|393274}}
** cd /data/cltbld/bin and run "cvs up" to update mofo scripts
*** FIXME - these should really be auto-updated and moved to public repo
** kick off buildbot (run as cltbld):
*** buildbot sendchange --master=localhost:9989 -u joduinn -m"Firefox 2.0.0.12 RC1" release


* Tag
All configs are checked into CVS under [http://mxr.mozilla.org/mozilla/source/tools/buildbot-configs/automation/ mozilla/tools/buildbot-configs/automation].
** *only applicable for relbranch-based builds* - Bootstrap::Tag::Bump does not handle already-bumped files on relbranch
*** need to make client.mk *_CO_TAGs use MOZILLA_1_8_BRANCH
*** need to add "2.0.0.12pre" tags to version bump files:
**** browser/app/module.ver browser/config/version.txt config/milestone.txt
 
* Sign
** still manual
** need to sync signed bits manually back to build-console e.g. as cltbld@build-console:
*** rsync -av stage.mozilla.org:/home/ftp/pub/firefox/nightly/2.0.0.12-candidates/ /home/ftp/pub/firefox/nightly/2.0.0.12-candidates/
 
* Updates
 
* Stage
** created bouncer links manually {{Bug|414327}}
** created "latest" and "latest-2.0" symlinks manually after final release


=Roles and resource requirements=
=Roles and resource requirements=
Line 103: Line 70:
  make cvsmirror
  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).
* Update buildbot configs. These are symlinked from the buildbot-configs checkout (of mozilla/tools/buildbot-configs/automation/staging/).


As buildmaster@staging-build-console:
As buildmaster@staging-build-console:
Line 109: Line 76:
  cd /home/buildmaster/TestBot
  cd /home/buildmaster/TestBot
  buildbot stop `pwd`
  buildbot stop `pwd`
cd bootstrap-configs && cvs up && cd ../
  cd buildbot-configs && cvs up && cd ../
  cd buildbot-configs && cvs up && cd ../
  buildbot start `pwd`
  buildbot start `pwd`
Line 117: Line 83:
  cd /data/cltbld/bin
  cd /data/cltbld/bin
  cvs up
  cvs up
* Update the verify configs, removing the latest entry as appropriate.
These configs will be bumped during the update verify runs. e.g. for 1.8 branch Firefox:
cvs -d /builds/cvsmirror.clean/cvsroot co mozilla/testing/release/updates
cd mozilla/testing/release/updates
# remove top two lines, from moz18-firefox-*.cfg e.g.:
# 2.0.0.10 linux
release="2.0.0.10" product="Firefox" platform="Linux_x86-gcc3" build_id="2007111504" locales="af ar be bg ca cs da de el en-GB en-US es-AR es-ES eu fi fr fy-NL ga-IE gu-IN he hu it ja ka ko ku lt mk mn nb-NO nl nn-NO pa-IN pl pt-BR pt-PT ro ru sk sl sv-SE tr uk zh-CN zh-TW" channel="betatest" from="/firefox/releases/2.0.0.10/linux-i686/%locale%/firefox-2.0.0.10.tar.gz" aus_server="https://aus2.mozilla.org" ftp_server="stage.mozilla.org/pub/mozilla.org" to="/firefox/nightly/2.0.0.11-candidates/rc1/firefox-2.0.0.11.%locale%.linux-i686.tar.gz"
cvs ci -m"remove latest release from staging config"


* Remove and re-checkout tinderbox-configs directories on build machines. Since the mirror takes checkins, the local checkout thinks that it has a higher revision and won't update to the now-refreshed mirror.
* Remove and re-checkout tinderbox-configs directories on build machines. Since the mirror takes checkins, the local checkout thinks that it has a higher revision and won't update to the now-refreshed mirror.
Line 135: Line 92:


For l10n use the MOZILLA_1_8_BRANCH_l10n_release branch.
For l10n use the MOZILLA_1_8_BRANCH_l10n_release branch.
* <del>MOZILLA_1_8_BRANCH ONLY</del>
** <del>The Talkback symbol server is hardcoded in /builds/cvsmirror.clean/mofo/talkback/fullsoft/Makefile.in, replace all occurrences of "talkback-upload.mozilla.org" with "staging-build-console.build.mozilla.org".</del> - pre-built Talkback packages on the staging machines already contain this change ({{bug|403701}})


* re-enable cltbld's nightly cronjob
* re-enable cltbld's nightly cronjob
=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
* ({{bug|372746}}) Automatically configure bouncer
* ([https://bugzilla.mozilla.org/show_bug.cgi?id=373995 bug 373995]) l10n needs the URL it downloads builds from to be configurable as well
* ([https://bugzilla.mozilla.org/show_bug.cgi?id=394498 bug 394498]) should report on mirror saturation after release
* ({{bug|397554}}) Automatically check out, set up, and keep Tinderbox installs up to date
* [http://buildbot.net/trac/ticket/68 buildbot bug#68] buildbot default timeout too short. 5sec isnt always enough, and you can get a "timed out" message in the slave logs, even though slave started "normally".
* [http://buildbot.net/trac/ticket/85 buildbot bug#85] sometimes buildmaster sees buildslave correctly, confirms ping ok, but never assigns pending work to the slave. Doing "buildmaster refresh" is not enough, you need to do "buildmaster stop/start". Restarting the slave does not help.
* [http://buildbot.net/trac/ticket/92 buildbot bug#92] on win32, console output is not logged (goes to the DOS console running buildbot :( )
* [http://buildbot.net/trac/ticket/77 buildbot bug#77] file buildbot bug to handle kill on win32. Add details linking to bsmedberg fix.
* [http://buildbot.net/trac/ticket/67 buildbot bug#67] link to history for old builds at bottom of page (ala tinderbox server).
* [http://buildbot.net/trac/ticket/69 buildbot bug#69] meta-refresh tag for waterfall page
* [http://buildbot.net/trac/ticket/78 buildbot bug#78] buildbot UI to contain way to force build dependent steps instead of just doing current step.
* [http://buildbot.net/trac/ticket/91 buildbot bug#91] When using the CVS Source step on a Mac OSX slave, if a CVS directory is found on the path, buildbot will attempt to use it as if it were a CVS binary.
* [http://buildbot.net/trac/ticket/88 buildbot bug#88] steps which start within a few seconds of each other show as same start time on waterfall page
* (needs bug filed) tinderbox symbol server should be configurable


=Setup notes (historical)=
=Setup notes (historical)=
Confirmed users
1,180

edits