Build:TryServer: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
= Try Server =
= Try Server =
== How to push to try ==
'''(THIS DOC IS NO LONGER VALID - SEE [[TryServerAsBranch]]
The try server is an easy way to test a patch on all mozilla-central platforms without actually checking the patch into the core repository. You need a [http://www.mozilla.org/hacking/committer/ Mozilla hg account] (level 1) to use push to try.
The try server is an easy way to test a patch on all 3 platforms without actually checking the patch in to a core repository. You need a Mozilla LDAP account to upload a patch, or a [http://www.mozilla.org/hacking/committer/ Mozilla hg account] (level 1) to use push to try.


To submit a change to the try server:
To submit a change to the try server:
* Log into the [https://build.mozilla.org/sendchange.cgi Try web interface] with your LDAP username and password and upload a patch;<br>
or
* For changes to mozilla-central or close enough (e.g. tracemonkey branch), you can <code>hg push -f ssh://hg.mozilla.org/try/</code> <br/>''or''<br/><code>hg push -f ssh://&lt;username@host@&gt;hg.mozilla.org/try/</code>
* For changes to mozilla-central or close enough (e.g. tracemonkey branch), you can <code>hg push -f ssh://hg.mozilla.org/try/</code> <br/>''or''<br/><code>hg push -f ssh://&lt;username@host@&gt;hg.mozilla.org/try/</code>


To see the results:
To see the results:
* You'll get an email from each builder with results.
* You'll get an email with unit test results.
* Look for your changeset on the [http://tinderbox.mozilla.org/showbuilds.cgi?tree=MozillaTry Try Tinderbox] or [http://tests.themasta.com/tinderboxpushlog/?tree=MozillaTry Try TBPL].
* Look for your changeset on the [http://tinderbox.mozilla.org/showbuilds.cgi?tree=MozillaTry Try Tinderbox] or [http://tests.themasta.com/tinderboxpushlog/?tree=MozillaTry Try TBPL].
* Download your completed builds from [ftp://ftp.mozilla.org/pub/mozilla.org/firefox/tryserver-builds/ /tryserver-builds].
* Download your completed builds from [https://build.mozilla.org/tryserver-builds/?C=M;O=D /tryserver-builds].


If you're using 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 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!)
Line 17: Line 19:
See [http://blog.mozilla.com/jorendorff/2008/08/18/push-to-try/ Jorendorff's blog] for more details.
See [http://blog.mozilla.com/jorendorff/2008/08/18/push-to-try/ Jorendorff's blog] for more details.


== Using a custom mozconfig ==
==== Other Mozilla Try Servers ====


If you want to use setting other than those in the [http://hg.mozilla.org/build/buildbot-configs/file/tip/mozilla2/linux/tryserver default mozconfigs ] (linux example).  Then you need to push to the $topsrcdir either:
* [https://wiki.mozilla.org/Thunderbird/Infrastructure/TryServer Thunderbird Try Server] for the comm-central repository


* .mozconfig-extra with settings to be applied to all mozconfigs
==== What Gets Tried ====
* .mozconfig-extra-$platform to apply changes only to that platform's mozconfig


The options you enable/disable in your custom mozconfig are appended to the existing config after the default set.
The Try server currently reports on the following trees:
 
 
== What Gets Tried ==


The Try server currently reports on the following trees:
* <b>hg</b>: The [http://hg.mozilla.org/mozilla-central/ Mozilla-Central Mercurial Repository].


* [http://hg.mozilla.org/mozilla-central/ mozilla-central].
* <b>CVS</b>: The [https://developer.mozilla.org/en/Mozilla_Source_Code_(CVS) Mozilla 1.9 (Firefox 3.0) CVS Repository].  This is used for security releases; active development takes place in Mercurial.


A push to try kicks off these builders by default:
{| border="1" width="100%"
{| border="1" width="100%"
|+
|+
|width="50%"|'''Builder'''
|width="30%"|Tinderbox column
|'''If successful triggers'''
|source
|platform
|details
|-
|Linux talos try trunk
|either
|Linux
|Runs Talos tests on successful builds from either Linux builder.
|-
|Try server linux builder
|CVS
|Linux
|Build only.
|-
|-
| $platform tryserver build
|Try server linux hg builder
| $platform tryserver opt test everythingelse, $platform tryserver opt test mochitests-{1-5}
|hg
|Linux
|Build only.
|-
|-
| $platform tryserver leak test build 
|Try server linux unittest builder
| $platform tryserver debug test everythingelse, $platform tryserver debug test mochitests-{1-5}
|hg
|Linux
|Build and Unittests.
|-
|-
| Maemo try hg build
|Try server mac builder
|
|CVS
|Macintosh
|Build only.
|-
|-
| Talos runs for each successful build for a platform
|Try server mac hg builder
|
|hg
|Macintosh
|Build only.
|-
|Try server mac unittest builder
|hg
|Macintosh
|Build and Unittests.
|-
|Try server win32 builder
|CVS
|Windows
|Build only.
|-
|Try server win32 hg builder
|hg
|Windows
|Build only.
|-
|Try server win32 unittest builder
|hg
|Windows
|Build and Unittests.
|-
|WINNT 5.1 talos try trunk
|either
|Windows
|Runs Talos tests on successful builds from either Windows builder.
|}
|}


== Other Notes ==
==== Notes on creating patches ====
* Finished builds will be deleted after '''14 days'''.  
 
* If your patch does not apply cleanly, the build fails.
* Make sure you do a 'cvs update' before 'cvs diff' to ensure your patch will apply cleanly.
* For CVS patches,
** The patch directory is mozilla/. so make sure to create your patches from inside this directory only or else they won't apply.
* For Mercurial patches,
** Any patches created with 'hg diff' or 'hg qdiff' *must* be submitted with a patch level of 1!
** GIT binary patches are not currently supported, so if your patch contains a new binary file, it will not be added, and the build will most likely fail. You have to use the "hg push" approach for these changes.
* The files mozilla/configure and mozilla/nsprpub/configure are deleted (to be regenerated) before your patch is applied. Do not try to patch these files or the patch will fail to apply (patch configure.in instead).
* Only Firefox patches can be tested at this time.
 
==== Other Notes ====
* Finished builds will be deleted after '''14 days'''. Patches are held for 30 days in the event you need a copy.
* If you have any problems please send mail to [mailto:release@mozilla.org release@mozilla.org]
* If you have any problems please send mail to [mailto:release@mozilla.org release@mozilla.org]
* The default mozconfigs used for tryserver builds are available in Hg: http://hg.mozilla.org/build/buildbot-configs/file/tip/mozilla2/$platform/tryserver
* Your patch may not be tested right away.
* For the moment, the test is whether current trunk+patch (or HG repos) compiles on all three platforms. It's hoped to add the other tinderbox tests later.
* The default mozconfigs used for tryserver builds are available in Hg: http://hg.mozilla.org/build/buildbot-configs/file/tip/tryserver/
* Uploading an alternate mozconfig appends to the default mozconfigs.
* Uploading an alternate mozconfig appends to the default mozconfigs.
* To pull with a specific timestamp, upload a mozconfig file and set [[mdc:Mozilla Source Code Via CVS#Specific Time|MOZ_CO_DATE]].
* Windows builds have symbols uploaded to http://build.mozilla.org/tryserver-symbols. Windbg and the Visual Studio debugger may use them to help debug crashing try server builds. Instructions for setting this up can be found here: http://developer.mozilla.org/en/docs/Using_the_Mozilla_symbol_server. Make sure you use the aforementioned URL instead of http://symbols.mozilla.org/firefox.
* Windows builds have symbols uploaded to http://build.mozilla.org/tryserver-symbols. Windbg and the Visual Studio debugger may use them to help debug crashing try server builds. Instructions for setting this up can be found here: http://developer.mozilla.org/en/docs/Using_the_Mozilla_symbol_server. Make sure you use the aforementioned URL instead of http://symbols.mozilla.org/firefox.


* Suggestions for the future can be made [[Build:TryServer:Suggestions|here]]
* Suggestions for the future can be made [[Build:TryServer:Suggestions|here]]


== Other Mozilla Try Servers ==
==== Unittests on Try ====
  As of March 16, 2009 there is a unittest builder for each platform. 
  The builders only show results on [[http://tinderbox.mozilla.org/showbuilds.cgi?tree=MozillaTry MozillaTry]] tinderbox
  The unittest build is not uploaded.


* [https://wiki.mozilla.org/Thunderbird/Infrastructure/TryServer Thunderbird Try Server] for the comm-central repository
==== To be Documented ====
* What is a "Patch Level"
* What is a "Custom Identifier String" and for what purpose is it used?

Revision as of 21:58, 18 May 2010

Try Server

(THIS DOC IS NO LONGER VALID - SEE TryServerAsBranch The try server is an easy way to test a patch on all 3 platforms without actually checking the patch in to a core repository. You need a Mozilla LDAP account to upload a patch, or a Mozilla hg account (level 1) to use push to try.

To submit a change to the try server:

  • Log into the Try web interface with your LDAP username and password and upload a patch;

or

  • For changes to mozilla-central or close enough (e.g. tracemonkey branch), you can hg push -f ssh://hg.mozilla.org/try/
    or
    hg push -f ssh://<username@host@>hg.mozilla.org/try/

To see the results:

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.

Other Mozilla Try Servers

What Gets Tried

The Try server currently reports on the following trees:

Tinderbox column source platform details
Linux talos try trunk either Linux Runs Talos tests on successful builds from either Linux builder.
Try server linux builder CVS Linux Build only.
Try server linux hg builder hg Linux Build only.
Try server linux unittest builder hg Linux Build and Unittests.
Try server mac builder CVS Macintosh Build only.
Try server mac hg builder hg Macintosh Build only.
Try server mac unittest builder hg Macintosh Build and Unittests.
Try server win32 builder CVS Windows Build only.
Try server win32 hg builder hg Windows Build only.
Try server win32 unittest builder hg Windows Build and Unittests.
WINNT 5.1 talos try trunk either Windows Runs Talos tests on successful builds from either Windows builder.

Notes on creating patches

  • If your patch does not apply cleanly, the build fails.
  • Make sure you do a 'cvs update' before 'cvs diff' to ensure your patch will apply cleanly.
  • For CVS patches,
    • The patch directory is mozilla/. so make sure to create your patches from inside this directory only or else they won't apply.
  • For Mercurial patches,
    • Any patches created with 'hg diff' or 'hg qdiff' *must* be submitted with a patch level of 1!
    • GIT binary patches are not currently supported, so if your patch contains a new binary file, it will not be added, and the build will most likely fail. You have to use the "hg push" approach for these changes.
  • The files mozilla/configure and mozilla/nsprpub/configure are deleted (to be regenerated) before your patch is applied. Do not try to patch these files or the patch will fail to apply (patch configure.in instead).
  • Only Firefox patches can be tested at this time.

Other Notes

  • Suggestions for the future can be made here

Unittests on Try

 As of March 16, 2009 there is a unittest builder for each platform.   
 The builders only show results on [MozillaTry] tinderbox 
 The unittest build is not uploaded.

To be Documented

  • What is a "Patch Level"
  • What is a "Custom Identifier String" and for what purpose is it used?