Monday, January 12, 2015

How to uplift changes through the various Mozilla release trees

One of my co-workers asked me a bit ago what is a clean way of uplifting patches through the different Mozilla release trees. In my case the patch is self-approved since it only affects test jobs and not the product (a=testing).

Once my change landed on one of the integration trees (e.g. mozilla-inbound, mozilla-central), I waited for it to be merged to mozilla-central (a sheriff made a note on the bug). At that point we can start the uplift process.

In particular, the changeset I want is:
https://hg.mozilla.org/integration/fx-team/rev/a13aa1af5d75

Note

I believe I have the named branches because I have the firefoxtree extension enabled.
You can read more about it in here.

I have a unified checkout from which I can manage all the various release trees (aurora, beta, release, esr31 et al).

Update the tree

We update to the right brach:
hg pull beta
hg update beta

Graft changeset

NOTE: Usage explained in here.
NOTE: Make sure you use --edit if you need to add a=testing to your commit message.

We graft the changeset, carefull check that we're pushing to the right place and push:
armenzg@armenzg-thinkpad:~/repos/branches/release_branches$ hg id
774733a9b2ad beta/tip

armenzg@armenzg-thinkpad:~/repos/branches/release_branches$ hg graft --edit -r a13aa1af5d75
grafting revision 249741
merging testing/config/mozharness/android_arm_config.py

armenzg@armenzg-thinkpad:~/repos/branches/release_branches$ hg out -r tip beta
comparing with beta
searching for changes
changeset:   249997:93587eeda731
tag:         tip
user:        Armen Zambrano Gasparnian 
date:        Mon Jan 12 09:53:51 2015 -0500
summary:     Bug 1064002 - Fix removal of --log-raw from xpcshell. r=chmanchester. a=testing

armenzg@armenzg-thinkpad:~/repos/branches/release_branches$ hg push -r tip beta
pushing to ssh://hg.mozilla.org/releases/mozilla-beta
searching for changes
remote: adding changesets
remote: adding manifests
remote: adding file changes
remote: added 1 changesets with 1 changes to 1 files
remote: Trying to insert into pushlog.
remote: Inserted into the pushlog db successfully.
remote: You can view your change at the following URL:
remote:   https://hg.mozilla.org/releases/mozilla-beta/rev/93587eeda731

Repeat the same process for the remaining trees.

Tuesday, January 06, 2015

Tooltool fetching can now use LDAP credentials from a file

You can now fetch tooltool files by using an authentication file.
All you have to do is append "--authentication-file file" to your tooltool fetching command.
This is important if you want to use automation to fetch files from tooltool on your behalf.
This was needed to allow Android test jobs to run locally since we need to download tooltool files for it.

EDIT: Fixed the tooltool hyperlink
EDIT: Removed labels to avoid re-posting after edit


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

Monday, January 05, 2015

Run Android test jobs locally

You can now run Android test jobs on your local machine with Mozharness.

As with any other developer capable Mozharness script, all you have to do is:

  • Append --cfg developer_config.py
  • Append --installer-url and --test-url with appropriate URIs
An example for this is:
python scripts/android_emulator_unittest.py --cfg android/androidarm.py
--test-suite mochitest-gl-1 --blob-upload-branch try
--download-symbols ondemand --cfg developer_config.py
--installer-url http://ftp.mozilla.org/pub/mozilla.org/mobile/nightly/latest-mozilla-central-android-api-9/en-US/fennec-37.0a1.en-US.android-arm.apk
--test-url http://ftp.mozilla.org/pub/mozilla.org/mobile/nightly/latest-mozilla-central-android-api-9/en-US/fennec-37.0a1.en-US.android-arm.tests.zip


Here's the bug where the work happened.
Here's the documentation on how to run Mozharness as a developer.

Please file a bug under Mozharness if you find any issues.

Here are some other related blog posts:


Disclaimers

Bug 1117954- I think that I need a different SDK or emulator version is needed to run Android API 10 jobs.

I wish we run all of our jobs in proper isolation!


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