ReleaseEngineering/TryServer: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
Line 41: Line 41:
You can see the results of your tryserver build in a number of ways:
You can see the results of your tryserver build in a number of ways:


* You'll get an email from each builder with results.
* You'll get an email on a successful push with a link to tbpl for your revision as well as emails on any non-successful build/test/talos results (this setting can be adjusted using [[Build:TryChooser]] args for email notification)
* You can have the results of your try run posted to bug(s) automatically at the completion of the run using the --post-to-bugzilla flag in your try syntax (see: [[Build:TryChooser]] for examples)
* Look for your changeset on the [http://tinderbox.mozilla.org/showbuilds.cgi?tree=MozillaTry Try Tinderbox] or [http://tbpl.mozilla.org/?tree=Try Try TBPL] ([http://ehsanakhgari.org/tinderboxpushlog/index.html?tree=MozillaTry alternate TBPL] [http://bbpl.dbaron.org/?tree=MozillaTry alternate TBPL]). You can add '''&pusher=YOUR.EMAIL''' to only see your pushes.
* Look for your changeset on the [http://tinderbox.mozilla.org/showbuilds.cgi?tree=MozillaTry Try Tinderbox] or [http://tbpl.mozilla.org/?tree=Try Try TBPL] ([http://ehsanakhgari.org/tinderboxpushlog/index.html?tree=MozillaTry alternate TBPL] [http://bbpl.dbaron.org/?tree=MozillaTry alternate TBPL]). You can add '''&pusher=YOUR.EMAIL''' to only see your pushes.
* Compare Talos perf numbers using Pike's [http://github.com/Pike/talos-node talos-node] or mconnor's [http://perf.snarkfest.net/compare-talos/ compare-talos].
* Compare Talos perf numbers using Pike's [http://github.com/Pike/talos-node talos-node] or mconnor's [http://perf.snarkfest.net/compare-talos/ compare-talos].
* Download your completed builds from [http://ftp.mozilla.org/pub/mozilla.org/firefox/tryserver-builds/?C=M;O=D firefox/tryserver-builds on ftp.m.o].
* Download your completed builds from [http://ftp.mozilla.org/pub/mozilla.org/firefox/try-builds/?C=M;O=D firefox/tryserver-builds on ftp.m.o].


If you're using [https://developer.mozilla.org/en/Mercurial_Queues Mercurial queues], the <code>push -f</code> command pushes any patches that are currently applied, and the Try server will build the result. (This is an awesome feature, not a bug!)
If you're using [https://developer.mozilla.org/en/Mercurial_Queues Mercurial queues], the <code>push -f</code> command pushes any patches that are currently applied, and the Try server will build the result. (This is an awesome feature, not a bug!)

Revision as of 19:07, 26 July 2011

Try Server

The try server is an easy way to test a patch without actually checking the patch into the core repository. Your code will go through the same tests as a mozilla-central push, and you'll be able to download builds if you wish.

To use try server, you need a Mozilla hg account (level 1 is sufficient).

How to push to try

Running only some tests

You can use Build:TryChooser to choose which builds and tests are run when you push to try. Make sure you place the try chooser text in your topmost commit.

% hg qref --message "try: -b o -e -p all -u all -t none"
% hg push -f try

Pushing to try

To submit your changes to the try server (assuming they're modifications to mozilla-central or a similar branch, e.g. tracemonkey), you have a few options:

Creating an alias

To save yourself some typing, you can add an alias to your hgrc:

[paths]
try = ssh://hg.mozilla.org/try

and then push with

hg push -f try

~/.ssh/config

ssh host settings to make life easier

Host hg.mozilla.org
  User ${commit_user_email_address}
  # IdentityFile ~/.ssh/alternate_public_identity_key_file

Viewing the results

You can see the results of your tryserver build in a number of ways:

  • You'll get an email on a successful push with a link to tbpl for your revision as well as emails on any non-successful build/test/talos results (this setting can be adjusted using Build:TryChooser args for email notification)
  • You can have the results of your try run posted to bug(s) automatically at the completion of the run using the --post-to-bugzilla flag in your try syntax (see: Build:TryChooser for examples)
  • Look for your changeset on the Try Tinderbox or Try TBPL (alternate TBPL alternate TBPL). You can add &pusher=YOUR.EMAIL to only see your pushes.
  • Compare Talos perf numbers using Pike's talos-node or mconnor's compare-talos.
  • Download your completed builds from firefox/tryserver-builds on ftp.m.o.

If you're using Mercurial queues, the push -f command pushes any patches that are currently applied, and the Try server will build the result. (This is an awesome feature, not a bug!)

You don’t need to clone or pull from the try repo, and you probably don’t want to. You’d get every half-baked changeset anybody ever tested.

See Jorendorff's blog for more details.

How to get a talos run

Follow the instructions in https://wiki.mozilla.org/Build:TryChooser .

Talos only runs on opt desktop (non-mobile, non-debug) builds currently.

Using a custom mozconfig

If you want to use setting other than those in the default mozconfigs, you can push an extra file to the $topsrcdir:

  • mozconfig-extra with settings to be applied to all mozconfigs
  • mozconfig-extra-$platform to apply changes only to that platform's mozconfig, where $platform is one of linux, linux64, win32, macosx, macosx64, linux-android, maemo5-gtk, maemo5-qt

The options you enable/disable in your custom mozconfig are appended to the existing config.

The default mozconfigs used for tryserver builds are available in Hg: http://hg.mozilla.org/build/buildbot-configs/file/default/mozilla2/$platform/try (linux example)

Selecting specific platforms for try push

See Build:TryChooser for details on how to customize your try push in your hg commit comments.

Using a different mobile-browser repository

To use a different mobile-browser repository for the mobile builds, include extra files in your push in the $topsrcdir:

  • mobile-repo with a path (relative to http://hg.mozilla.org/) to the repository (e.g., "users/jford_mozilla.com/mobile-browser")
  • mobile-rev with a revision in that repository (e.g., "default")

For more details, see Mobile on the new try server

See Publishing Mercurial Clones to learn how to create your own private repository on the server.

Using older GCC

Linux and Linux64 build bots are using GCC 4.5 for Try builds. But some branches will fail to build or run tests with this version of GCC because of the libstdc++ dependency it adds. Such branches are those where bug 643690 hasn't landed. If you want to push such a branch to Try, you need to add the following to mozconfig-extra-linux and/or mozconfig-extra-linux64 in the top directory:

CC=/tools/gcc-4.3.3/installed/bin/gcc
CXX=/tools/gcc-4.3.3/installed/bin/g++

How to get non-PGO coverage

On branches where bug 643704 has landed, adding the following in a mozconfig-extra or mozconfig-extra-$platform file will suffice:

mk_add_options MOZ_PGO=

On other branches, fool the system!

Include this in your patch.

diff --git a/client.mk b/client.mk
--- a/client.mk
+++ b/client.mk
@@ -210,5 +210,5 @@ else
 endif

-profiledbuild::
+Xprofiledbuild::
        $(MAKE) -f $(TOPSRCDIR)/client.mk build MOZ_PROFILE_GENERATE=1
        $(MAKE) -C $(PGO_OBJDIR) package
@@ -352,5 +352,5 @@ endif
 # Build it

-build::  $(OBJDIR)/Makefile $(OBJDIR)/config.status
+profiledbuild::  $(OBJDIR)/Makefile $(OBJDIR)/config.status
        $(MOZ_MAKE)

Server Status

Other Notes

  • Suggestions for the future can be made here

Other Mozilla Try Servers


Problem Diagnosis

Test your account & configuration

  • ssh hg.mozilla.org, response: "No Interactive shells allowed here!"
  • ssh hg.mozilla.org clone invalid_sandbox, response: menu display and interactive prompting.


See Also