Auto-tools/Projects/Mozharness

From MozillaWiki
< Auto-tools‎ | Projects
Revision as of 18:56, 18 December 2014 by Armenzg (talk | contribs) (Notes about submitting patches)
Jump to navigation Jump to search

In the A-team we have recently been focusing on making mozharness easier to use by developers and give more flexibility in its use. Mozharness was originally started with Release Engineering and the A-team has been able to use it to contribute on the side of test jobs.

Some of the changes agreed to be tackled over the next couple of quarters are defined in Mozharness changes. We will migrate that page into here.

Introduction

This projects' goal

Every work day at Mozilla we run almost a 100,000 jobs a day and most are through mozharness. You can see some of them in here.

Mozharness is mainly developed by Release Engineering (Mozharness). This lines up well with the A-team's mission. This specific page project is making Mozharness easier for developers.

If you want to understand more about mozharness read this page.

Browsing the code

You can use dxr to browse Mozharness's code. You can also use mxr to search repositories that are involved with mozharness.

Filing bugs

If you find any issues running mozharness locally, please let us know by filing a bug. Please attach logs/log_raw.log to the bug it will help us see what you're facing.

Getting help

Join our IRC channel or ask questions in Google group (alternatively you can join the mirroring list).

If you're familiar with mozharness get your name in here so people can reach out to your on IRC:

  • armenzg - Helping out remove rough edges for developers
  • jlund - One of the main contributors
  • catlee - Long time contribuor
  • ahal - Long time contribuor
  • gbrown - - Long time contribuor - Familiar with Android scripts

Setup

Using mozharness is very easy. Here's what it takes to run it:

hg clone http://hg.mozilla.org/build/mozharness
cd mozharness

Check the "examples" section for seeing how to run mozharness locally.

NOTE: For some test jobs you will need LDAP credentials. This might limit the ability of community members to try those type of jobs.

Prerequisites

You need to have:

  • Mercurial
  • virtualenv

For Windows users you can get all this by installing MozillaBuild.

Examples

The following are some examples of test jobs that you can run locally: - Run a Firefox desktop reftest

  • On Linux:
python scripts/desktop_unittest.py --cfg unittests/linux_unittest.py --reftest reftest \
--installer-url ftp://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/firefox-35.0a1.en-US.linux-x86_64.tar.bz2 \
--test-url ftp://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/firefox-35.0a1.en-US.linux-x86_64.tests.zip \
--cfg developer_config.py
  • On Windows:
python scripts/desktop_unittest.py --cfg unittests/win_unittest.py --reftest-suite reftest \
--installer-url ftp://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/firefox-35.0a1.en-US.win32.zip \
--test-url ftp://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/7/firefox-35.0a1.en-US.win32.tests.zip \
--cfg developer_config.py

- Run a Firefox for Android reftest:

python scripts/android_emulator_unittest.py --cfg android/androidarm.py --test-suite reftest-1 \
--installer-url ftp://ftp.mozilla.org/pub/mozilla.org/mobile/nightly/latest-mozilla-central-android/fennec-35.0a1.en-US.android-arm.apk \
--test-url ftp://ftp.mozilla.org/pub/mozilla.org/mobile/nightly/latest-mozilla-central-android//fennec-35.0a1.en-US.android-arm.tests.zip \
--cfg developer_config.py

- Run a Firefox OS emulator reftest job (NOTE: You will need LDAP credentials):

python scripts/b2g_emulator_unittest.py --cfg b2g/emulator_automation_config.py --test-suite reftest --this-chunk 1 --total-chunks 20 \
--installer-url http://pvtbuilds.pvt.build.mozilla.org/pub/mozilla.org/b2g/tinderbox-builds/mozilla-central-emulator/20141001060621/emulator.tar.gz \
--test-url http://pvtbuilds.pvt.build.mozilla.org/pub/mozilla.org/b2g/tinderbox-builds/mozilla-central-emulator/20141001060621/b2g-35.0a1.en-US.android-arm.tests.zip \
--cfg developer_config.py

If you want to learn a bit more about different ways we can run jobs running in tbpl.mozilla.org locally, follow this article: "How to run Mozharness as a developer".

Testing your mozharness changes

You can try your changes locally and then ask for review in the bug.

Unit tests
You can run ./unit.sh to ensure that you pass all unit tests.

Testing live Mozharness patches can be tested on the TryServer if you have commit access and a user repo. You can read this and ask for information on how to get the required privileges to do so. Meanwhile, your mentor can help you test the changes for you.

Submitting your patches for review

You can do so by:

  • Create a patch by running "hg diff > my_patch.diff"
  • Click on "Add an attachment" and attach the file
  • Add a description on how this works and known issues
  • Change the feedback dropbox to "?" and enter the email address of the person will check your code
    • That person will receive an email notification and should be getting back to you in the next day or so

Where can I help?

In order to make mozharness easier for developers we have to make it a delightful and well integrated experience. If you want to help, you can find the list of bugs needed to accomplish listed by difficulty.

Good first easier-mozharness bugs

Link to the list of bugs.
These are good starting bugs:

No results.

0 Total; 0 Open (0%); 0 Resolved (0%); 0 Verified (0%);


Good first bugs

There are also bugs not specific to making mozharness easier, however, they also help release engineering's load. This is a super set of the previous section. Link to the list of bugs.
These are good starting bugs:

No results.

0 Total; 0 Open (0%); 0 Resolved (0%); 0 Verified (0%);


Good next bugs

Link to the list of bugs.
If the good first bugs are depleted or want to try something a bit more complicated (NOTE: these bugs might be a bit more challenging):

No results.

0 Total; 0 Open (0%); 0 Resolved (0%); 0 Verified (0%);


All easier-mozharness bugs

Link to the list of bugs.
These bugs are likely to only require a bit of mozharness hacking and a lot of other code repositories.

No results.

0 Total; 0 Open (0%); 0 Resolved (0%); 0 Verified (0%);


Completed bugs

Bugs fixed in September

No results.

0 Total; 0 Open (0%); 0 Resolved (0%); 0 Verified (0%);