new file mode 100644
--- /dev/null
+++ b/testing/mozharness/LICENSE
@@ -0,0 +1,373 @@
+Mozilla Public License Version 2.0
+==================================
+
+1. Definitions
+--------------
+
+1.1. "Contributor"
+ means each individual or legal entity that creates, contributes to
+ the creation of, or owns Covered Software.
+
+1.2. "Contributor Version"
+ means the combination of the Contributions of others (if any) used
+ by a Contributor and that particular Contributor's Contribution.
+
+1.3. "Contribution"
+ means Covered Software of a particular Contributor.
+
+1.4. "Covered Software"
+ means Source Code Form to which the initial Contributor has attached
+ the notice in Exhibit A, the Executable Form of such Source Code
+ Form, and Modifications of such Source Code Form, in each case
+ including portions thereof.
+
+1.5. "Incompatible With Secondary Licenses"
+ means
+
+ (a) that the initial Contributor has attached the notice described
+ in Exhibit B to the Covered Software; or
+
+ (b) that the Covered Software was made available under the terms of
+ version 1.1 or earlier of the License, but not also under the
+ terms of a Secondary License.
+
+1.6. "Executable Form"
+ means any form of the work other than Source Code Form.
+
+1.7. "Larger Work"
+ means a work that combines Covered Software with other material, in
+ a separate file or files, that is not Covered Software.
+
+1.8. "License"
+ means this document.
+
+1.9. "Licensable"
+ means having the right to grant, to the maximum extent possible,
+ whether at the time of the initial grant or subsequently, any and
+ all of the rights conveyed by this License.
+
+1.10. "Modifications"
+ means any of the following:
+
+ (a) any file in Source Code Form that results from an addition to,
+ deletion from, or modification of the contents of Covered
+ Software; or
+
+ (b) any new file in Source Code Form that contains any Covered
+ Software.
+
+1.11. "Patent Claims" of a Contributor
+ means any patent claim(s), including without limitation, method,
+ process, and apparatus claims, in any patent Licensable by such
+ Contributor that would be infringed, but for the grant of the
+ License, by the making, using, selling, offering for sale, having
+ made, import, or transfer of either its Contributions or its
+ Contributor Version.
+
+1.12. "Secondary License"
+ means either the GNU General Public License, Version 2.0, the GNU
+ Lesser General Public License, Version 2.1, the GNU Affero General
+ Public License, Version 3.0, or any later versions of those
+ licenses.
+
+1.13. "Source Code Form"
+ means the form of the work preferred for making modifications.
+
+1.14. "You" (or "Your")
+ means an individual or a legal entity exercising rights under this
+ License. For legal entities, "You" includes any entity that
+ controls, is controlled by, or is under common control with You. For
+ purposes of this definition, "control" means (a) the power, direct
+ or indirect, to cause the direction or management of such entity,
+ whether by contract or otherwise, or (b) ownership of more than
+ fifty percent (50%) of the outstanding shares or beneficial
+ ownership of such entity.
+
+2. License Grants and Conditions
+--------------------------------
+
+2.1. Grants
+
+Each Contributor hereby grants You a world-wide, royalty-free,
+non-exclusive license:
+
+(a) under intellectual property rights (other than patent or trademark)
+ Licensable by such Contributor to use, reproduce, make available,
+ modify, display, perform, distribute, and otherwise exploit its
+ Contributions, either on an unmodified basis, with Modifications, or
+ as part of a Larger Work; and
+
+(b) under Patent Claims of such Contributor to make, use, sell, offer
+ for sale, have made, import, and otherwise transfer either its
+ Contributions or its Contributor Version.
+
+2.2. Effective Date
+
+The licenses granted in Section 2.1 with respect to any Contribution
+become effective for each Contribution on the date the Contributor first
+distributes such Contribution.
+
+2.3. Limitations on Grant Scope
+
+The licenses granted in this Section 2 are the only rights granted under
+this License. No additional rights or licenses will be implied from the
+distribution or licensing of Covered Software under this License.
+Notwithstanding Section 2.1(b) above, no patent license is granted by a
+Contributor:
+
+(a) for any code that a Contributor has removed from Covered Software;
+ or
+
+(b) for infringements caused by: (i) Your and any other third party's
+ modifications of Covered Software, or (ii) the combination of its
+ Contributions with other software (except as part of its Contributor
+ Version); or
+
+(c) under Patent Claims infringed by Covered Software in the absence of
+ its Contributions.
+
+This License does not grant any rights in the trademarks, service marks,
+or logos of any Contributor (except as may be necessary to comply with
+the notice requirements in Section 3.4).
+
+2.4. Subsequent Licenses
+
+No Contributor makes additional grants as a result of Your choice to
+distribute the Covered Software under a subsequent version of this
+License (see Section 10.2) or under the terms of a Secondary License (if
+permitted under the terms of Section 3.3).
+
+2.5. Representation
+
+Each Contributor represents that the Contributor believes its
+Contributions are its original creation(s) or it has sufficient rights
+to grant the rights to its Contributions conveyed by this License.
+
+2.6. Fair Use
+
+This License is not intended to limit any rights You have under
+applicable copyright doctrines of fair use, fair dealing, or other
+equivalents.
+
+2.7. Conditions
+
+Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
+in Section 2.1.
+
+3. Responsibilities
+-------------------
+
+3.1. Distribution of Source Form
+
+All distribution of Covered Software in Source Code Form, including any
+Modifications that You create or to which You contribute, must be under
+the terms of this License. You must inform recipients that the Source
+Code Form of the Covered Software is governed by the terms of this
+License, and how they can obtain a copy of this License. You may not
+attempt to alter or restrict the recipients' rights in the Source Code
+Form.
+
+3.2. Distribution of Executable Form
+
+If You distribute Covered Software in Executable Form then:
+
+(a) such Covered Software must also be made available in Source Code
+ Form, as described in Section 3.1, and You must inform recipients of
+ the Executable Form how they can obtain a copy of such Source Code
+ Form by reasonable means in a timely manner, at a charge no more
+ than the cost of distribution to the recipient; and
+
+(b) You may distribute such Executable Form under the terms of this
+ License, or sublicense it under different terms, provided that the
+ license for the Executable Form does not attempt to limit or alter
+ the recipients' rights in the Source Code Form under this License.
+
+3.3. Distribution of a Larger Work
+
+You may create and distribute a Larger Work under terms of Your choice,
+provided that You also comply with the requirements of this License for
+the Covered Software. If the Larger Work is a combination of Covered
+Software with a work governed by one or more Secondary Licenses, and the
+Covered Software is not Incompatible With Secondary Licenses, this
+License permits You to additionally distribute such Covered Software
+under the terms of such Secondary License(s), so that the recipient of
+the Larger Work may, at their option, further distribute the Covered
+Software under the terms of either this License or such Secondary
+License(s).
+
+3.4. Notices
+
+You may not remove or alter the substance of any license notices
+(including copyright notices, patent notices, disclaimers of warranty,
+or limitations of liability) contained within the Source Code Form of
+the Covered Software, except that You may alter any license notices to
+the extent required to remedy known factual inaccuracies.
+
+3.5. Application of Additional Terms
+
+You may choose to offer, and to charge a fee for, warranty, support,
+indemnity or liability obligations to one or more recipients of Covered
+Software. However, You may do so only on Your own behalf, and not on
+behalf of any Contributor. You must make it absolutely clear that any
+such warranty, support, indemnity, or liability obligation is offered by
+You alone, and You hereby agree to indemnify every Contributor for any
+liability incurred by such Contributor as a result of warranty, support,
+indemnity or liability terms You offer. You may include additional
+disclaimers of warranty and limitations of liability specific to any
+jurisdiction.
+
+4. Inability to Comply Due to Statute or Regulation
+---------------------------------------------------
+
+If it is impossible for You to comply with any of the terms of this
+License with respect to some or all of the Covered Software due to
+statute, judicial order, or regulation then You must: (a) comply with
+the terms of this License to the maximum extent possible; and (b)
+describe the limitations and the code they affect. Such description must
+be placed in a text file included with all distributions of the Covered
+Software under this License. Except to the extent prohibited by statute
+or regulation, such description must be sufficiently detailed for a
+recipient of ordinary skill to be able to understand it.
+
+5. Termination
+--------------
+
+5.1. The rights granted under this License will terminate automatically
+if You fail to comply with any of its terms. However, if You become
+compliant, then the rights granted under this License from a particular
+Contributor are reinstated (a) provisionally, unless and until such
+Contributor explicitly and finally terminates Your grants, and (b) on an
+ongoing basis, if such Contributor fails to notify You of the
+non-compliance by some reasonable means prior to 60 days after You have
+come back into compliance. Moreover, Your grants from a particular
+Contributor are reinstated on an ongoing basis if such Contributor
+notifies You of the non-compliance by some reasonable means, this is the
+first time You have received notice of non-compliance with this License
+from such Contributor, and You become compliant prior to 30 days after
+Your receipt of the notice.
+
+5.2. If You initiate litigation against any entity by asserting a patent
+infringement claim (excluding declaratory judgment actions,
+counter-claims, and cross-claims) alleging that a Contributor Version
+directly or indirectly infringes any patent, then the rights granted to
+You by any and all Contributors for the Covered Software under Section
+2.1 of this License shall terminate.
+
+5.3. In the event of termination under Sections 5.1 or 5.2 above, all
+end user license agreements (excluding distributors and resellers) which
+have been validly granted by You or Your distributors under this License
+prior to termination shall survive termination.
+
+************************************************************************
+* *
+* 6. Disclaimer of Warranty *
+* ------------------------- *
+* *
+* Covered Software is provided under this License on an "as is" *
+* basis, without warranty of any kind, either expressed, implied, or *
+* statutory, including, without limitation, warranties that the *
+* Covered Software is free of defects, merchantable, fit for a *
+* particular purpose or non-infringing. The entire risk as to the *
+* quality and performance of the Covered Software is with You. *
+* Should any Covered Software prove defective in any respect, You *
+* (not any Contributor) assume the cost of any necessary servicing, *
+* repair, or correction. This disclaimer of warranty constitutes an *
+* essential part of this License. No use of any Covered Software is *
+* authorized under this License except under this disclaimer. *
+* *
+************************************************************************
+
+************************************************************************
+* *
+* 7. Limitation of Liability *
+* -------------------------- *
+* *
+* Under no circumstances and under no legal theory, whether tort *
+* (including negligence), contract, or otherwise, shall any *
+* Contributor, or anyone who distributes Covered Software as *
+* permitted above, be liable to You for any direct, indirect, *
+* special, incidental, or consequential damages of any character *
+* including, without limitation, damages for lost profits, loss of *
+* goodwill, work stoppage, computer failure or malfunction, or any *
+* and all other commercial damages or losses, even if such party *
+* shall have been informed of the possibility of such damages. This *
+* limitation of liability shall not apply to liability for death or *
+* personal injury resulting from such party's negligence to the *
+* extent applicable law prohibits such limitation. Some *
+* jurisdictions do not allow the exclusion or limitation of *
+* incidental or consequential damages, so this exclusion and *
+* limitation may not apply to You. *
+* *
+************************************************************************
+
+8. Litigation
+-------------
+
+Any litigation relating to this License may be brought only in the
+courts of a jurisdiction where the defendant maintains its principal
+place of business and such litigation shall be governed by laws of that
+jurisdiction, without reference to its conflict-of-law provisions.
+Nothing in this Section shall prevent a party's ability to bring
+cross-claims or counter-claims.
+
+9. Miscellaneous
+----------------
+
+This License represents the complete agreement concerning the subject
+matter hereof. If any provision of this License is held to be
+unenforceable, such provision shall be reformed only to the extent
+necessary to make it enforceable. Any law or regulation which provides
+that the language of a contract shall be construed against the drafter
+shall not be used to construe this License against a Contributor.
+
+10. Versions of the License
+---------------------------
+
+10.1. New Versions
+
+Mozilla Foundation is the license steward. Except as provided in Section
+10.3, no one other than the license steward has the right to modify or
+publish new versions of this License. Each version will be given a
+distinguishing version number.
+
+10.2. Effect of New Versions
+
+You may distribute the Covered Software under the terms of the version
+of the License under which You originally received the Covered Software,
+or under the terms of any subsequent version published by the license
+steward.
+
+10.3. Modified Versions
+
+If you create software not governed by this License, and you want to
+create a new license for such software, you may create and use a
+modified version of this License if you rename the license and remove
+any references to the name of the license steward (except to note that
+such modified license differs from this License).
+
+10.4. Distributing Source Code Form that is Incompatible With Secondary
+Licenses
+
+If You choose to distribute Source Code Form that is Incompatible With
+Secondary Licenses under the terms of this version of the License, the
+notice described in Exhibit B of this License must be attached.
+
+Exhibit A - Source Code Form License Notice
+-------------------------------------------
+
+ This Source Code Form is subject to the terms of the Mozilla Public
+ License, v. 2.0. If a copy of the MPL was not distributed with this
+ file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+If it is not possible or desirable to put the notice in a particular
+file, then You may include the notice in a location (such as a LICENSE
+file in a relevant directory) where a recipient would be likely to look
+for such a notice.
+
+You may add additional accurate notices of copyright ownership.
+
+Exhibit B - "Incompatible With Secondary Licenses" Notice
+---------------------------------------------------------
+
+ This Source Code Form is "Incompatible With Secondary Licenses", as
+ defined by the Mozilla Public License, v. 2.0.
--- a/testing/mozharness/README.txt
+++ b/testing/mozharness/README.txt
@@ -1,1 +1,11 @@
-mozharness.json is a manifest file that locks or "pins" mozharness to a repository and a revision.
+the contents of this dir (testing/mozharness) represent two parts
+
+1) the old way: mozharness.json is a manifest file that locks or "pins" mozharness to a repository and a revision.
+
+2) the new way: an in-gecko-tree copy of mozharness.
+ * hgmo/build/mozharness is still live and the defacto read/write repository
+ * continuous integration jobs are based on this copy
+ * As we transition to dropping support for hg.m.o/build/mozharness, this copy will continue to be synced
+ * this copy is currently based on: http://hg.mozilla.org/build/mozharness/rev/4d855a6835ed
+
+
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/android/android_panda_releng.py
@@ -0,0 +1,107 @@
+# This is a template config file for panda android tests on production.
+import socket
+import os
+
+MINIDUMP_STACKWALK_PATH = "/builds/minidump_stackwalk"
+
+config = {
+ # Values for the foopies
+ "exes": {
+ 'python': '/tools/buildbot/bin/python',
+ 'virtualenv': ['/tools/buildbot/bin/python', '/tools/misc-python/virtualenv.py'],
+ },
+ "run_file_names": {
+ "mochitest": "runtestsremote.py",
+ "reftest": "remotereftest.py",
+ "crashtest": "remotereftest.py",
+ "jsreftest": "remotereftest.py",
+ "robocop": "runtestsremote.py",
+ "instrumentation": "runinstrumentation.py",
+ "xpcshell": "remotexpcshelltests.py",
+ "jittest": "jit_test.py",
+ "cppunittest": "remotecppunittests.py"
+ },
+ "hostutils_url": "http://talos-remote.pvt.build.mozilla.org/tegra/tegra-host-utils.Linux.1109310.2.zip",
+ "verify_path": "/builds/sut_tools/verify.py",
+ "install_app_path": "/builds/sut_tools/installApp.py",
+ "logcat_path": "/builds/sut_tools/logcat.py",
+ # test harness options are located in the gecko tree
+ "in_tree_config": "config/mozharness/android_panda_config.py",
+ "all_mochitest_suites": {
+ "mochitest-1": ["--total-chunks=8", "--this-chunk=1"],
+ "mochitest-2": ["--total-chunks=8", "--this-chunk=2"],
+ "mochitest-3": ["--total-chunks=8", "--this-chunk=3"],
+ "mochitest-4": ["--total-chunks=8", "--this-chunk=4"],
+ "mochitest-5": ["--total-chunks=8", "--this-chunk=5"],
+ "mochitest-6": ["--total-chunks=8", "--this-chunk=6"],
+ "mochitest-7": ["--total-chunks=8", "--this-chunk=7"],
+ "mochitest-8": ["--total-chunks=8", "--this-chunk=8"],
+ "mochitest-gl": ["--subsuite=webgl"],
+ },
+ "all_reftest_suites": {
+ "reftest-1": ["--total-chunks=8", "--this-chunk=1"],
+ "reftest-2": ["--total-chunks=8", "--this-chunk=2"],
+ "reftest-3": ["--total-chunks=8", "--this-chunk=3"],
+ "reftest-4": ["--total-chunks=8", "--this-chunk=4"],
+ "reftest-5": ["--total-chunks=8", "--this-chunk=5"],
+ "reftest-6": ["--total-chunks=8", "--this-chunk=6"],
+ "reftest-7": ["--total-chunks=8", "--this-chunk=7"],
+ "reftest-8": ["--total-chunks=8", "--this-chunk=8"],
+ },
+ "all_crashtest_suites": {
+ "crashtest": []
+ },
+ "all_jsreftest_suites": {
+ "jsreftest-1": ["--total-chunks=3", "--this-chunk=1"],
+ "jsreftest-2": ["--total-chunks=3", "--this-chunk=2"],
+ "jsreftest-3": ["--total-chunks=3", "--this-chunk=3"],
+ },
+ "all_robocop_suites": {
+ "robocop-1": ["--total-chunks=10", "--this-chunk=1"],
+ "robocop-2": ["--total-chunks=10", "--this-chunk=2"],
+ "robocop-3": ["--total-chunks=10", "--this-chunk=3"],
+ "robocop-4": ["--total-chunks=10", "--this-chunk=4"],
+ "robocop-5": ["--total-chunks=10", "--this-chunk=5"],
+ "robocop-6": ["--total-chunks=10", "--this-chunk=6"],
+ "robocop-7": ["--total-chunks=10", "--this-chunk=7"],
+ "robocop-8": ["--total-chunks=10", "--this-chunk=8"],
+ "robocop-9": ["--total-chunks=10", "--this-chunk=9"],
+ "robocop-10": ["--total-chunks=10", "--this-chunk=10"],
+ },
+ "all_instrumentation_suites": {
+ "browser": ["--suite", "browser"],
+ "background": ["--suite", "background"],
+ },
+ "all_xpcshell_suites": {
+ "xpcshell": []
+ },
+ "all_jittest_suites": {
+ "jittest": []
+ },
+ "all_cppunittest_suites": {
+ "cppunittest": ['cppunittest']
+ },
+ "find_links": [
+ "http://pypi.pvt.build.mozilla.org/pub",
+ "http://pypi.pub.build.mozilla.org/pub",
+ ],
+ "pip_index": False,
+ "buildbot_json_path": "buildprops.json",
+ "mobile_imaging_format": "http://mobile-imaging",
+ "mozpool_assignee": socket.gethostname(),
+ "default_actions": [
+ 'clobber',
+ 'read-buildbot-config',
+ 'download-and-extract',
+ 'create-virtualenv',
+ 'request-device',
+ 'run-test',
+ 'close-request',
+ ],
+ "minidump_stackwalk_path": MINIDUMP_STACKWALK_PATH,
+ "minidump_save_path": "%(abs_work_dir)s/../minidumps",
+ "default_blob_upload_servers": [
+ "https://blobupload.elasticbeanstalk.com",
+ ],
+ "blob_uploader_auth_file" : os.path.join(os.getcwd(), "oauth.txt"),
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/android/android_panda_talos_releng.py
@@ -0,0 +1,76 @@
+# This is a template config file for panda android tests on production.
+import socket
+import os
+
+config = {
+ # Values for the foopies
+ "exes": {
+ 'python': '/tools/buildbot/bin/python',
+ 'virtualenv': ['/tools/buildbot/bin/python', '/tools/misc-python/virtualenv.py'],
+ },
+ "run_file_names": {
+ "preflight_talos": "remotePerfConfigurator.py",
+ "talos": "run_tests.py",
+ },
+ "retry_url": "http://talos-bundles.pvt.build.mozilla.org/zips/retry.zip",
+ "verify_path": "/builds/sut_tools/verify.py",
+ "install_app_path": "/builds/sut_tools/installApp.py",
+ "talos_from_code_url": "https://hg.mozilla.org/%s/raw-file/%s/testing/talos/talos_from_code.py",
+ "talos_json_url": "https://hg.mozilla.org/%s/raw-file/%s/testing/talos/talos.json",
+ "datazilla_urls": ["https://datazilla.mozilla.org/talos"],
+ "datazilla_authfile": os.path.join(os.getcwd(), "oauth.txt"),
+ #remotePerfConfigurator.py options
+ "preflight_talos_options": [
+ "-v", "-e", "%(app_name)s",
+ "-t", "%(hostname)s",
+ "--branchName=%(talos_branch)s",
+ "--resultsServer=graphs.mozilla.org",
+ "--resultsLink=/server/collect.cgi",
+ "--noChrome",
+ "--symbolsPath=../symbols",
+ "--remoteDevice=%(device_ip)s",
+ "--sampleConfig=remote.config",
+ "--output=local.yml",
+ "--webServer=talos-remote.pvt.build.mozilla.org",
+ "--browserWait=60"
+ ],
+ #run_tests.py options
+ "talos_options": [
+ "--noisy",
+ "local.yml"
+ ],
+ "all_talos_suites": {
+ "remote-troboprovider": ["--activeTests=tprovider", "--noChrome", "--fennecIDs=../fennec_ids.txt"],
+ "remote-ts": ["--activeTests=ts", "--mozAfterPaint", "--noChrome"],
+ #currently disabled
+ "remote-tsvgx": ["--activeTests=tsvgx", "--noChrome", '--tppagecycles', '10'],
+ "remote-tcanvasmark": ["--activeTests=tcanvasmark", "--noChrome"],
+ "remote-tsspider": ["--activeTests=tsspider", "--noChrome"],
+ #end currently disabled
+ "remote-trobopan": ["--activeTests=trobopan", "--noChrome", "--fennecIDs=../fennec_ids.txt"],
+ "remote-tsvg": ["--activeTests=tsvg", "--noChrome"],
+ "remote-tp4m_nochrome": ["--activeTests=tp4m", "--noChrome", "--rss"],
+ "remote-trobocheck2": ["--activeTests=tcheck2", "--noChrome", "--fennecIDs=../fennec_ids.txt"],
+ "remote-tspaint": ["--activeTests=ts_paint", "--mozAfterPaint"],
+ },
+ "find_links": [
+ "http://pypi.pvt.build.mozilla.org/pub",
+ "http://pypi.pub.build.mozilla.org/pub",
+ ],
+ "buildbot_json_path": "buildprops.json",
+ "mobile_imaging_format": "http://mobile-imaging",
+ "mozpool_assignee": socket.gethostname(),
+ "default_actions": [
+ 'clobber',
+ 'read-buildbot-config',
+ 'download-and-extract',
+ 'create-virtualenv',
+ 'request-device',
+ 'run-test',
+ 'close-request',
+ ],
+ "default_blob_upload_servers": [
+ "https://blobupload.elasticbeanstalk.com",
+ ],
+ "blob_uploader_auth_file" : os.path.join(os.getcwd(), "oauth.txt"),
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/android/androidarm.py
@@ -0,0 +1,286 @@
+import os
+
+config = {
+ "buildbot_json_path": "buildprops.json",
+ "host_utils_url": "http://talos-remote.pvt.build.mozilla.org/tegra/tegra-host-utils.Linux.1109310.2.zip",
+ "robocop_package_name": "org.mozilla.roboexample.test",
+ "device_ip": "127.0.0.1",
+ "default_sut_port1": "20701",
+ "default_sut_port2": "20700", # does not prompt for commands
+ "tooltool_manifest_path": "testing/config/tooltool-manifests/androidarm/releng.manifest",
+ "tooltool_cache": "/builds/tooltool_cache",
+ "emulator_manifest": """
+ [
+ {
+ "size": 193383673,
+ "digest": "6609e8b95db59c6a3ad60fc3dcfc358b2c8ec8b4dda4c2780eb439e1c5dcc5d550f2e47ce56ba14309363070078d09b5287e372f6e95686110ff8a2ef1838221",
+ "algorithm": "sha512",
+ "filename": "android-sdk18_0.r18moz1.orig.tar.gz",
+ "unpack": "True"
+ }
+ ] """,
+ "emulator_process_name": "emulator64-arm",
+ "emulator_extra_args": "-debug init,console,gles,memcheck,adbserver,adbclient,adb,avd_config,socket -qemu -m 1024 -cpu cortex-a9",
+ "device_manager": "sut",
+ "exes": {
+ 'adb': '%(abs_work_dir)s/android-sdk18/platform-tools/adb',
+ 'python': '/tools/buildbot/bin/python',
+ 'virtualenv': ['/tools/buildbot/bin/python', '/tools/misc-python/virtualenv.py'],
+ 'tooltool.py': "/tools/tooltool.py",
+ },
+ "env": {
+ "DISPLAY": ":0.0",
+ "PATH": "%(PATH)s:%(abs_work_dir)s/android-sdk18/tools:%(abs_work_dir)s/android-sdk18/platform-tools",
+ "MINIDUMP_SAVEPATH": "%(abs_work_dir)s/../minidumps"
+ },
+ "default_actions": [
+ 'clobber',
+ 'read-buildbot-config',
+ 'setup-avds',
+ 'start-emulator',
+ 'download-and-extract',
+ 'create-virtualenv',
+ 'verify-emulator',
+ 'install',
+ 'run-tests',
+ 'stop-emulator',
+ ],
+ "emulator": {
+ "name": "test-1",
+ "device_id": "emulator-5554",
+ "http_port": "8854", # starting http port to use for the mochitest server
+ "ssl_port": "4454", # starting ssl port to use for the server
+ "emulator_port": 5554,
+ "sut_port1": 20701,
+ "sut_port2": 20700
+ },
+ "test_suite_definitions": {
+ "jsreftest-1": {
+ "category": "jsreftest",
+ "extra_args": ["--this-chunk=1"],
+ },
+ "jsreftest-2": {
+ "category": "jsreftest",
+ "extra_args": ["--this-chunk=2"],
+ },
+ "jsreftest-3": {
+ "category": "jsreftest",
+ "extra_args": ["--this-chunk=3"],
+ },
+ "jsreftest-4": {
+ "category": "jsreftest",
+ "extra_args": ["--this-chunk=4"],
+ },
+ "jsreftest-5": {
+ "category": "jsreftest",
+ "extra_args": ["--this-chunk=5"],
+ },
+ "jsreftest-6": {
+ "category": "jsreftest",
+ "extra_args": ["--this-chunk=6"],
+ },
+ "mochitest-1": {
+ "category": "mochitest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=1"],
+ },
+ "mochitest-2": {
+ "category": "mochitest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=2"],
+ },
+ "mochitest-3": {
+ "category": "mochitest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=3"],
+ },
+ "mochitest-4": {
+ "category": "mochitest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=4"],
+ },
+ "mochitest-5": {
+ "category": "mochitest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=5"],
+ },
+ "mochitest-6": {
+ "category": "mochitest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=6"],
+ },
+ "mochitest-7": {
+ "category": "mochitest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=7"],
+ },
+ "mochitest-8": {
+ "category": "mochitest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=8"],
+ },
+ "mochitest-9": {
+ "category": "mochitest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=9"],
+ },
+ "mochitest-10": {
+ "category": "mochitest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=10"],
+ },
+ "mochitest-11": {
+ "category": "mochitest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=11"],
+ },
+ "mochitest-12": {
+ "category": "mochitest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=12"],
+ },
+ "mochitest-13": {
+ "category": "mochitest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=13"],
+ },
+ "mochitest-14": {
+ "category": "mochitest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=14"],
+ },
+ "mochitest-15": {
+ "category": "mochitest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=15"],
+ },
+ "mochitest-16": {
+ "category": "mochitest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=16"],
+ },
+ "mochitest-gl-1": {
+ "category": "mochitest-gl",
+ "extra_args": ["--this-chunk=1"],
+ },
+ "mochitest-gl-2": {
+ "category": "mochitest-gl",
+ "extra_args": ["--this-chunk=2"],
+ },
+ "mochitest-gl-3": {
+ "category": "mochitest-gl",
+ "extra_args": ["--this-chunk=3"],
+ },
+ "mochitest-gl-4": {
+ "category": "mochitest-gl",
+ "extra_args": ["--this-chunk=4"],
+ },
+ "reftest-1": {
+ "category": "reftest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=1",
+ "tests/layout/reftests/reftest.list"]
+ },
+ "reftest-2": {
+ "category": "reftest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=2",
+ "tests/layout/reftests/reftest.list"]
+ },
+ "reftest-3": {
+ "category": "reftest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=3",
+ "tests/layout/reftests/reftest.list"]
+ },
+ "reftest-4": {
+ "category": "reftest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=4",
+ "tests/layout/reftests/reftest.list"]
+ },
+ "reftest-5": {
+ "category": "reftest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=5",
+ "tests/layout/reftests/reftest.list"]
+ },
+ "reftest-6": {
+ "category": "reftest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=6",
+ "tests/layout/reftests/reftest.list"]
+ },
+ "reftest-7": {
+ "category": "reftest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=7",
+ "tests/layout/reftests/reftest.list"]
+ },
+ "reftest-8": {
+ "category": "reftest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=8",
+ "tests/layout/reftests/reftest.list"]
+ },
+ "reftest-9": {
+ "category": "reftest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=9",
+ "tests/layout/reftests/reftest.list"]
+ },
+ "reftest-10": {
+ "category": "reftest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=10",
+ "tests/layout/reftests/reftest.list"]
+ },
+ "reftest-11": {
+ "category": "reftest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=11",
+ "tests/layout/reftests/reftest.list"]
+ },
+ "reftest-12": {
+ "category": "reftest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=12",
+ "tests/layout/reftests/reftest.list"]
+ },
+ "reftest-13": {
+ "category": "reftest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=13",
+ "tests/layout/reftests/reftest.list"]
+ },
+ "reftest-14": {
+ "category": "reftest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=14",
+ "tests/layout/reftests/reftest.list"]
+ },
+ "reftest-15": {
+ "category": "reftest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=15",
+ "tests/layout/reftests/reftest.list"]
+ },
+ "reftest-16": {
+ "category": "reftest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=16",
+ "tests/layout/reftests/reftest.list"]
+ },
+ "crashtest-1": {
+ "category": "crashtest",
+ "extra_args": ["--this-chunk=1"],
+ },
+ "crashtest-2": {
+ "category": "crashtest",
+ "extra_args": ["--this-chunk=2"],
+ },
+ "xpcshell-1": {
+ "category": "xpcshell",
+ "extra_args": ["--total-chunks=3", "--this-chunk=1"],
+ },
+ "xpcshell-2": {
+ "category": "xpcshell",
+ "extra_args": ["--total-chunks=3", "--this-chunk=2"],
+ },
+ "xpcshell-3": {
+ "category": "xpcshell",
+ "extra_args": ["--total-chunks=3", "--this-chunk=3"],
+ },
+ "robocop-1": {
+ "category": "robocop",
+ "extra_args": ["--this-chunk=1"],
+ },
+ "robocop-2": {
+ "category": "robocop",
+ "extra_args": ["--this-chunk=2"],
+ },
+ "robocop-3": {
+ "category": "robocop",
+ "extra_args": ["--this-chunk=3"],
+ },
+ "robocop-4": {
+ "category": "robocop",
+ "extra_args": ["--this-chunk=4"],
+ },
+ }, # end of "test_definitions"
+ # test harness options are located in the gecko tree
+ "in_tree_config": "config/mozharness/android_arm_config.py",
+ "download_minidump_stackwalk": True,
+ "default_blob_upload_servers": [
+ "https://blobupload.elasticbeanstalk.com",
+ ],
+ "blob_uploader_auth_file" : os.path.join(os.getcwd(), "oauth.txt"),
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/android/androidarm_4_3.py
@@ -0,0 +1,296 @@
+import os
+
+config = {
+ "buildbot_json_path": "buildprops.json",
+ "host_utils_url": "http://talos-remote.pvt.build.mozilla.org/tegra/tegra-host-utils.Linux.1109310.2.zip",
+ "robocop_package_name": "org.mozilla.roboexample.test",
+ "tooltool_manifest_path": "testing/config/tooltool-manifests/androidarm_4_3/releng.manifest",
+ "tooltool_cache": "/builds/tooltool_cache",
+ ".avds_dir": "/home/cltbld/.android",
+ "emulator_manifest": """
+ [
+ {
+ "size": 140097024,
+ "digest": "51781032335c09103e8509b1a558bf22a7119392cf1ea301c49c01bdf21ff0ceb37d260bc1c322cd9b903252429fb01830fc27e4632be30cd345c95bf4b1a39b",
+ "algorithm": "sha512",
+ "filename": "android-sdk_r24.0.2-linux.tgz",
+ "unpack": "True"
+ }
+ ] """,
+ "tools_manifest": """
+ [
+ {
+ "size": 193383673,
+ "digest": "6609e8b95db59c6a3ad60fc3dcfc358b2c8ec8b4dda4c2780eb439e1c5dcc5d550f2e47ce56ba14309363070078d09b5287e372f6e95686110ff8a2ef1838221",
+ "algorithm": "sha512",
+ "filename": "android-sdk18_0.r18moz1.orig.tar.gz",
+ "unpack": "True"
+ }
+ ] """,
+ "emulator_process_name": "emulator64-arm",
+ "emulator_extra_args": "-show-kernel -debug init,console,gles,memcheck,adbserver,adbclient,adb,avd_config,socket",
+ "device_manager": "adb",
+ "exes": {
+ 'adb': '%(abs_work_dir)s/android-sdk18/platform-tools/adb',
+ 'python': '/tools/buildbot/bin/python',
+ 'virtualenv': ['/tools/buildbot/bin/python', '/tools/misc-python/virtualenv.py'],
+ 'tooltool.py': "/tools/tooltool.py",
+ },
+ "env": {
+ "DISPLAY": ":0.0",
+ "PATH": "%(PATH)s:%(abs_work_dir)s/android-sdk-linux/tools:%(abs_work_dir)s/android-sdk18/platform-tools",
+ "MINIDUMP_SAVEPATH": "%(abs_work_dir)s/../minidumps"
+ },
+ "default_actions": [
+ 'clobber',
+ 'read-buildbot-config',
+ 'setup-avds',
+ 'start-emulator',
+ 'download-and-extract',
+ 'create-virtualenv',
+ 'verify-emulator',
+ 'install',
+ 'run-tests',
+ 'stop-emulator',
+ ],
+ "emulator": {
+ "name": "test-1",
+ "device_id": "emulator-5554",
+ "http_port": "8854", # starting http port to use for the mochitest server
+ "ssl_port": "4454", # starting ssl port to use for the server
+ "emulator_port": 5554,
+ },
+ "test_suite_definitions": {
+ "jsreftest-1": {
+ "category": "jsreftest",
+ "extra_args": ["--this-chunk=1"],
+ },
+ "jsreftest-2": {
+ "category": "jsreftest",
+ "extra_args": ["--this-chunk=2"],
+ },
+ "jsreftest-3": {
+ "category": "jsreftest",
+ "extra_args": ["--this-chunk=3"],
+ },
+ "jsreftest-4": {
+ "category": "jsreftest",
+ "extra_args": ["--this-chunk=4"],
+ },
+ "jsreftest-5": {
+ "category": "jsreftest",
+ "extra_args": ["--this-chunk=5"],
+ },
+ "jsreftest-6": {
+ "category": "jsreftest",
+ "extra_args": ["--this-chunk=6"],
+ },
+ "mochitest-1": {
+ "category": "mochitest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=1"],
+ },
+ "mochitest-2": {
+ "category": "mochitest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=2"],
+ },
+ "mochitest-3": {
+ "category": "mochitest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=3"],
+ },
+ "mochitest-4": {
+ "category": "mochitest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=4"],
+ },
+ "mochitest-5": {
+ "category": "mochitest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=5"],
+ },
+ "mochitest-6": {
+ "category": "mochitest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=6"],
+ },
+ "mochitest-7": {
+ "category": "mochitest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=7"],
+ },
+ "mochitest-8": {
+ "category": "mochitest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=8"],
+ },
+ "mochitest-9": {
+ "category": "mochitest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=9"],
+ },
+ "mochitest-10": {
+ "category": "mochitest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=10"],
+ },
+ "mochitest-11": {
+ "category": "mochitest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=11"],
+ },
+ "mochitest-12": {
+ "category": "mochitest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=12"],
+ },
+ "mochitest-13": {
+ "category": "mochitest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=13"],
+ },
+ "mochitest-14": {
+ "category": "mochitest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=14"],
+ },
+ "mochitest-15": {
+ "category": "mochitest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=15"],
+ },
+ "mochitest-16": {
+ "category": "mochitest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=16"],
+ },
+ "mochitest-gl-1": {
+ "category": "mochitest-gl",
+ "extra_args": ["--this-chunk=1"],
+ },
+ "mochitest-gl-2": {
+ "category": "mochitest-gl",
+ "extra_args": ["--this-chunk=2"],
+ },
+ "mochitest-gl-3": {
+ "category": "mochitest-gl",
+ "extra_args": ["--this-chunk=3"],
+ },
+ "mochitest-gl-4": {
+ "category": "mochitest-gl",
+ "extra_args": ["--this-chunk=4"],
+ },
+ "reftest-1": {
+ "category": "reftest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=1",
+ "tests/layout/reftests/reftest.list"]
+ },
+ "reftest-2": {
+ "category": "reftest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=2",
+ "tests/layout/reftests/reftest.list"]
+ },
+ "reftest-3": {
+ "category": "reftest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=3",
+ "tests/layout/reftests/reftest.list"]
+ },
+ "reftest-4": {
+ "category": "reftest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=4",
+ "tests/layout/reftests/reftest.list"]
+ },
+ "reftest-5": {
+ "category": "reftest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=5",
+ "tests/layout/reftests/reftest.list"]
+ },
+ "reftest-6": {
+ "category": "reftest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=6",
+ "tests/layout/reftests/reftest.list"]
+ },
+ "reftest-7": {
+ "category": "reftest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=7",
+ "tests/layout/reftests/reftest.list"]
+ },
+ "reftest-8": {
+ "category": "reftest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=8",
+ "tests/layout/reftests/reftest.list"]
+ },
+ "reftest-9": {
+ "category": "reftest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=9",
+ "tests/layout/reftests/reftest.list"]
+ },
+ "reftest-10": {
+ "category": "reftest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=10",
+ "tests/layout/reftests/reftest.list"]
+ },
+ "reftest-11": {
+ "category": "reftest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=11",
+ "tests/layout/reftests/reftest.list"]
+ },
+ "reftest-12": {
+ "category": "reftest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=12",
+ "tests/layout/reftests/reftest.list"]
+ },
+ "reftest-13": {
+ "category": "reftest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=13",
+ "tests/layout/reftests/reftest.list"]
+ },
+ "reftest-14": {
+ "category": "reftest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=14",
+ "tests/layout/reftests/reftest.list"]
+ },
+ "reftest-15": {
+ "category": "reftest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=15",
+ "tests/layout/reftests/reftest.list"]
+ },
+ "reftest-16": {
+ "category": "reftest",
+ "extra_args": ["--total-chunks=16", "--this-chunk=16",
+ "tests/layout/reftests/reftest.list"]
+ },
+ "crashtest-1": {
+ "category": "crashtest",
+ "extra_args": ["--this-chunk=1"],
+ },
+ "crashtest-2": {
+ "category": "crashtest",
+ "extra_args": ["--this-chunk=2"],
+ },
+ "xpcshell-1": {
+ "category": "xpcshell",
+ "extra_args": ["--total-chunks=3", "--this-chunk=1"],
+ },
+ "xpcshell-2": {
+ "category": "xpcshell",
+ "extra_args": ["--total-chunks=3", "--this-chunk=2"],
+ },
+ "xpcshell-3": {
+ "category": "xpcshell",
+ "extra_args": ["--total-chunks=3", "--this-chunk=3"],
+ },
+ "robocop-1": {
+ "category": "robocop",
+ "extra_args": ["--this-chunk=1"],
+ },
+ "robocop-2": {
+ "category": "robocop",
+ "extra_args": ["--this-chunk=2"],
+ },
+ "robocop-3": {
+ "category": "robocop",
+ "extra_args": ["--this-chunk=3"],
+ },
+ "robocop-4": {
+ "category": "robocop",
+ "extra_args": ["--this-chunk=4"],
+ },
+ "cppunittest": {
+ "category": "cppunittest",
+ "extra_args": [],
+ },
+ }, # end of "test_definitions"
+ # test harness options are located in the gecko tree
+ "in_tree_config": "config/mozharness/android_arm_4_3_config.py",
+ "download_minidump_stackwalk": True,
+ "default_blob_upload_servers": [
+ "https://blobupload.elasticbeanstalk.com",
+ ],
+ "blob_uploader_auth_file" : os.path.join(os.getcwd(), "oauth.txt"),
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/android/androidarm_dev.py
@@ -0,0 +1,9 @@
+# This config contains dev values that will replace
+# the values specified in the production config
+# if specified like this (order matters):
+# --cfg android/androidarm.py
+# --cfg android/androidarm_dev.py
+import os
+config = {
+ "tooltool_cache_path": os.path.join(os.getenv("HOME"), "cache"),
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/android/androidx86.py
@@ -0,0 +1,135 @@
+import os
+
+config = {
+ "buildbot_json_path": "buildprops.json",
+ "host_utils_url": "http://talos-remote.pvt.build.mozilla.org/tegra/tegra-host-utils.Linux.1109310.2.zip",
+ "robocop_package_name": "org.mozilla.roboexample.test",
+ "device_ip": "127.0.0.1",
+ "default_sut_port1": "20701",
+ "default_sut_port2": "20700", # does not prompt for commands
+ "tooltool_manifest_path": "testing/config/tooltool-manifests/androidx86/releng.manifest",
+ "tooltool_cache": "/builds/tooltool_cache",
+ "emulator_manifest": """
+ [
+ {
+ "size": 193383673,
+ "digest": "6609e8b95db59c6a3ad60fc3dcfc358b2c8ec8b4dda4c2780eb439e1c5dcc5d550f2e47ce56ba14309363070078d09b5287e372f6e95686110ff8a2ef1838221",
+ "algorithm": "sha512",
+ "filename": "android-sdk18_0.r18moz1.orig.tar.gz",
+ "unpack": "True"
+ }
+ ] """,
+ "emulator_process_name": "emulator64-x86",
+ "emulator_extra_args": "-debug init,console,gles,memcheck,adbserver,adbclient,adb,avd_config,socket -qemu -m 1024 -enable-kvm",
+ "device_manager": "sut",
+ "exes": {
+ 'adb': '%(abs_work_dir)s/android-sdk18/platform-tools/adb',
+ 'python': '/tools/buildbot/bin/python',
+ 'virtualenv': ['/tools/buildbot/bin/python', '/tools/misc-python/virtualenv.py'],
+ 'tooltool.py': "/tools/tooltool.py",
+ },
+ "env": {
+ "DISPLAY": ":0.0",
+ "PATH": "%(PATH)s:%(abs_work_dir)s/android-sdk18/tools:%(abs_work_dir)s/android-sdk18/platform-tools",
+ },
+ "default_actions": [
+ 'clobber',
+ 'read-buildbot-config',
+ 'setup-avds',
+ 'start-emulators',
+ 'download-and-extract',
+ 'create-virtualenv',
+ 'install',
+ 'run-tests',
+ 'stop-emulators',
+ ],
+ "emulators": [
+ {
+ "name": "test-1",
+ "device_id": "emulator-5554",
+ "http_port": "8854", # starting http port to use for the mochitest server
+ "ssl_port": "4454", # starting ssl port to use for the server
+ "emulator_port": 5554,
+ "sut_port1": 20701,
+ "sut_port2": 20700
+ },
+ {
+ "name": "test-2",
+ "device_id": "emulator-5556",
+ "http_port": "8856", # starting http port to use for the mochitest server
+ "ssl_port": "4456", # starting ssl port to use for the server
+ "emulator_port": 5556,
+ "sut_port1": 20703,
+ "sut_port2": 20702
+ },
+ {
+ "name": "test-3",
+ "device_id": "emulator-5558",
+ "http_port": "8858", # starting http port to use for the mochitest server
+ "ssl_port": "4458", # starting ssl port to use for the server
+ "emulator_port": 5558,
+ "sut_port1": 20705,
+ "sut_port2": 20704
+ },
+ {
+ "name": "test-4",
+ "device_id": "emulator-5560",
+ "http_port": "8860", # starting http port to use for the mochitest server
+ "ssl_port": "4460", # starting ssl port to use for the server
+ "emulator_port": 5560,
+ "sut_port1": 20707,
+ "sut_port2": 20706
+ }
+ ],
+ "test_suite_definitions": {
+ "jsreftest": {
+ "category": "reftest",
+ "extra_args": ["../jsreftest/tests/jstests.list",
+ "--extra-profile-file=jsreftest/tests/user.js"]
+ },
+ "mochitest-1": {
+ "category": "mochitest",
+ "extra_args": ["--total-chunks=2", "--this-chunk=1"],
+ },
+ "mochitest-2": {
+ "category": "mochitest",
+ "extra_args": ["--total-chunks=2", "--this-chunk=2"],
+ },
+ "mochitest-gl": {
+ "category": "mochitest",
+ "extra_args": ["--subsuite=webgl"],
+ },
+ "reftest-1": {
+ "category": "reftest",
+ "extra_args": ["--total-chunks=3", "--this-chunk=1",
+ "tests/layout/reftests/reftest.list"]
+ },
+ "reftest-2": {
+ "category": "reftest",
+ "extra_args": ["--total-chunks=3", "--this-chunk=2",
+ "tests/layout/reftests/reftest.list"]
+ },
+ "reftest-3": {
+ "category": "reftest",
+ "extra_args": ["--total-chunks=3", "--this-chunk=3",
+ "tests/layout/reftests/reftest.list"]
+ },
+ "crashtest": {
+ "category": "reftest",
+ "extra_args": ["tests/testing/crashtest/crashtests.list"]
+ },
+ "xpcshell": {
+ "category": "xpcshell",
+ # XXX --manifest is superceded by testing/config/mozharness/android_x86_config.py.
+ # Remove when Gecko 35 no longer in tbpl.
+ "extra_args": ["--manifest=tests/xpcshell_android.ini"]
+ },
+ }, # end of "test_definitions"
+ # test harness options are located in the gecko tree
+ "in_tree_config": "config/mozharness/android_x86_config.py",
+ "download_minidump_stackwalk": True,
+ "default_blob_upload_servers": [
+ "https://blobupload.elasticbeanstalk.com",
+ ],
+ "blob_uploader_auth_file" : os.path.join(os.getcwd(), "oauth.txt"),
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g/desktop_automation_config.py
@@ -0,0 +1,45 @@
+# This is a template config file for b2g desktop unittest production.
+import os
+
+config = {
+ # mozharness options
+ "application": "b2g",
+ "tooltool_cache": "/builds/tooltool_cache",
+
+ "exes": {
+ 'python': '/tools/buildbot/bin/python',
+ 'virtualenv': ['/tools/buildbot/bin/python', '/tools/misc-python/virtualenv.py'],
+ 'tooltool.py': "/tools/tooltool.py",
+ },
+
+ "find_links": [
+ "http://pypi.pvt.build.mozilla.org/pub",
+ "http://pypi.pub.build.mozilla.org/pub",
+ ],
+ "pip_index": False,
+
+ "buildbot_json_path": "buildprops.json",
+
+ "default_actions": [
+ 'clobber',
+ 'read-buildbot-config',
+ 'download-and-extract',
+ 'create-virtualenv',
+ 'install',
+ 'run-tests',
+ ],
+ "download_symbols": "ondemand",
+ "download_minidump_stackwalk": True,
+ "default_blob_upload_servers": [
+ "https://blobupload.elasticbeanstalk.com",
+ ],
+ "blob_uploader_auth_file": os.path.join(os.getcwd(), "oauth.txt"),
+
+ # testsuite options
+ "run_file_names": {
+ "mochitest": "runtestsb2g.py",
+ "reftest": "runreftestb2g.py",
+ },
+ # test harness options are located in the gecko tree
+ "in_tree_config": "config/mozharness/b2g_desktop_config.py",
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g/desktop_linux32.py
@@ -0,0 +1,140 @@
+import os
+
+config = {
+ #########################################################################
+ ######## LINUX GENERIC CONFIG KEYS/VAlUES
+ # if you are updating this with custom 32 bit keys/values please add them
+ # below under the '32 bit specific' code block otherwise, update in this
+ # code block and also make sure this is synced with
+ # desktop_linux64.py
+
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ 'setup-mock',
+ 'build',
+ 'upload-files',
+ 'sendchange',
+ 'check-test',
+ ],
+ "buildbot_json_path": "buildprops.json",
+ 'exes': {
+ 'hgtool.py': os.path.join(
+ os.getcwd(), 'build', 'tools', 'buildfarm', 'utils', 'hgtool.py'
+ ),
+ "buildbot": "/tools/buildbot/bin/buildbot",
+ },
+ 'app_ini_path': '%(obj_dir)s/dist/bin/application.ini',
+ 'purge_skip': ['info', 'rel-*:45d', 'tb-rel-*:45d'],
+ 'purge_basedirs': ["/mock/users/cltbld/home/cltbld/build"],
+ # mock shtuff
+ 'mock_mozilla_dir': '/builds/mock_mozilla',
+ 'mock_target': 'mozilla-centos6-x86_64',
+ 'mock_files': [
+ ('/home/cltbld/.ssh', '/home/mock_mozilla/.ssh'),
+ ('/home/cltbld/.hgrc', '/builds/.hgrc'),
+ ('/home/cltbld/.boto', '/builds/.boto'),
+ ('/builds/gapi.data', '/builds/gapi.data'),
+ ('/builds/relengapi.tok', '/builds/relengapi.tok'),
+ ('/tools/tooltool.py', '/builds/tooltool.py'),
+ ('/builds/mozilla-desktop-geoloc-api.key', '/builds/mozilla-desktop-geoloc-api.key'),
+ ('/builds/crash-stats-api.token', '/builds/crash-stats-api.token'),
+ ],
+ 'enable_ccache': True,
+ 'vcs_share_base': '/builds/hg-shared',
+ 'objdir': 'obj-firefox',
+ 'tooltool_script': ["/builds/tooltool.py"],
+ 'tooltool_bootstrap': "setup.sh",
+ 'enable_talos_sendchange': False,
+ 'enable_unittest_sendchange': True,
+ #########################################################################
+
+
+ #########################################################################
+ ###### 32 bit specific ######
+ 'base_name': 'B2G_%(branch)s_linux32_gecko',
+ 'platform': 'linux32_gecko',
+ 'stage_platform': 'linux32_gecko',
+ 'stage_product': 'b2g',
+ 'env': {
+ 'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+ 'MOZ_AUTOMATION': '1',
+ 'DISPLAY': ':2',
+ 'HG_SHARE_BASE_DIR': '/builds/hg-shared',
+ 'MOZ_OBJDIR': 'obj-firefox',
+ 'TINDERBOX_OUTPUT': '1',
+ 'TOOLTOOL_CACHE': '/builds/tooltool_cache',
+ 'TOOLTOOL_HOME': '/builds',
+ 'MOZ_CRASHREPORTER_NO_REPORT': '1',
+ 'CCACHE_DIR': '/builds/ccache',
+ 'CCACHE_COMPRESS': '1',
+ 'CCACHE_UMASK': '002',
+ 'LC_ALL': 'C',
+ # 32 bit specific
+ 'PATH': '/tools/buildbot/bin:/usr/local/bin:/usr/lib/ccache:\
+/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/tools/git/bin:\
+/tools/python27/bin:/tools/python27-mercurial/bin:/home/cltbld/bin',
+ 'LD_LIBRARY_PATH': "/tools/gcc-4.3.3/installed/lib",
+ },
+ 'upload_env': {
+ # stage_server is dictated from build_pool_specifics.py
+ 'UPLOAD_HOST': '%(stage_server)s',
+ 'UPLOAD_USER': '%(stage_username)s',
+ 'UPLOAD_SSH_KEY': '/home/mock_mozilla/.ssh/%(stage_ssh_key)s',
+ 'UPLOAD_TO_TEMP': '1',
+ },
+ 'purge_minsize': 14,
+ 'mock_packages': [
+ 'autoconf213', 'python', 'mozilla-python27', 'zip', 'mozilla-python27-mercurial',
+ 'git', 'ccache', 'perl-Test-Simple', 'perl-Config-General',
+ 'yasm', 'wget',
+ 'mpfr', # required for system compiler
+ 'xorg-x11-font*', # fonts required for PGO
+ 'imake', # required for makedepend!?!
+ ### <-- from releng repo
+ 'gcc45_0moz3', 'gcc454_0moz1', 'gcc472_0moz1', 'gcc473_0moz1',
+ 'yasm', 'ccache',
+ ###
+ 'valgrind',
+ ######## 32 bit specific ###########
+ 'glibc-static.i686', 'libstdc++-static.i686',
+ 'gtk2-devel.i686', 'libnotify-devel.i686',
+ 'alsa-lib-devel.i686', 'libcurl-devel.i686',
+ 'wireless-tools-devel.i686', 'libX11-devel.i686',
+ 'libXt-devel.i686', 'mesa-libGL-devel.i686',
+ 'gnome-vfs2-devel.i686', 'GConf2-devel.i686',
+ 'pulseaudio-libs-devel.i686',
+ 'gstreamer-devel.i686', 'gstreamer-plugins-base-devel.i686',
+ # Packages already installed in the mock environment, as x86_64
+ # packages.
+ 'glibc-devel.i686', 'libgcc.i686', 'libstdc++-devel.i686',
+ # yum likes to install .x86_64 -devel packages that satisfy .i686
+ # -devel packages dependencies. So manually install the dependencies
+ # of the above packages.
+ 'ORBit2-devel.i686', 'atk-devel.i686', 'cairo-devel.i686',
+ 'check-devel.i686', 'dbus-devel.i686', 'dbus-glib-devel.i686',
+ 'fontconfig-devel.i686', 'glib2-devel.i686',
+ 'hal-devel.i686', 'libICE-devel.i686', 'libIDL-devel.i686',
+ 'libSM-devel.i686', 'libXau-devel.i686', 'libXcomposite-devel.i686',
+ 'libXcursor-devel.i686', 'libXdamage-devel.i686',
+ 'libXdmcp-devel.i686', 'libXext-devel.i686', 'libXfixes-devel.i686',
+ 'libXft-devel.i686', 'libXi-devel.i686', 'libXinerama-devel.i686',
+ 'libXrandr-devel.i686', 'libXrender-devel.i686',
+ 'libXxf86vm-devel.i686', 'libdrm-devel.i686', 'libidn-devel.i686',
+ 'libpng-devel.i686', 'libxcb-devel.i686', 'libxml2-devel.i686',
+ 'pango-devel.i686', 'perl-devel.i686', 'pixman-devel.i686',
+ 'zlib-devel.i686',
+ # Freetype packages need to be installed be version, because a newer
+ # version is available, but we don't want it for Firefox builds.
+ 'freetype-2.3.11-6.el6_1.8.i686',
+ 'freetype-devel-2.3.11-6.el6_1.8.i686',
+ 'freetype-2.3.11-6.el6_1.8.x86_64',
+ ######## 32 bit specific ###########
+ # The B2G SDK is still 64-bit, and we need libXt for that
+ 'libXt.x86_64',
+ ],
+ 'src_mozconfig': 'b2g/config/mozconfigs/linux32_gecko/nightly',
+ 'tooltool_manifest_src': "b2g/config/tooltool-manifests/linux32/releng.manifest",
+ #########################################################################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g/desktop_linux64.py
@@ -0,0 +1,103 @@
+import os
+
+config = {
+ #########################################################################
+ ######## LINUX GENERIC CONFIG KEYS/VAlUES
+ # if you are updating this with custom 64 bit keys/values please add them
+ # below under the '64 bit specific' code block otherwise, update in this
+ # code block and also make sure this is synced with
+ # desktop_linux32.py
+
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ 'setup-mock',
+ 'build',
+ 'upload-files',
+ 'sendchange',
+ 'check-test',
+ ],
+ "buildbot_json_path": "buildprops.json",
+ 'exes': {
+ 'hgtool.py': os.path.join(
+ os.getcwd(), 'build', 'tools', 'buildfarm', 'utils', 'hgtool.py'
+ ),
+ "buildbot": "/tools/buildbot/bin/buildbot",
+ },
+ 'app_ini_path': '%(obj_dir)s/dist/bin/application.ini',
+ 'purge_skip': ['info', 'rel-*:45d', 'tb-rel-*:45d'],
+ 'purge_basedirs': ["/mock/users/cltbld/home/cltbld/build"],
+ # mock shtuff
+ 'mock_mozilla_dir': '/builds/mock_mozilla',
+ 'mock_target': 'mozilla-centos6-x86_64',
+ 'mock_files': [
+ ('/home/cltbld/.ssh', '/home/mock_mozilla/.ssh'),
+ ('/home/cltbld/.hgrc', '/builds/.hgrc'),
+ ('/home/cltbld/.boto', '/builds/.boto'),
+ ('/builds/gapi.data', '/builds/gapi.data'),
+ ('/builds/relengapi.tok', '/builds/relengapi.tok'),
+ ('/tools/tooltool.py', '/builds/tooltool.py'),
+ ('/builds/mozilla-desktop-geoloc-api.key', '/builds/mozilla-desktop-geoloc-api.key'),
+ ('/builds/crash-stats-api.token', '/builds/crash-stats-api.token'),
+ ],
+ 'enable_ccache': True,
+ 'vcs_share_base': '/builds/hg-shared',
+ 'objdir': 'obj-firefox',
+ 'tooltool_script': ["/builds/tooltool.py"],
+ 'tooltool_bootstrap': "setup.sh",
+ 'enable_talos_sendchange': False,
+ 'enable_unittest_sendchange': True,
+ #########################################################################
+
+
+ #########################################################################
+ ###### 64 bit specific ######
+ 'base_name': 'B2G_%(branch)s_linux64_gecko',
+ 'platform': 'linux64_gecko',
+ 'stage_platform': 'linux64_gecko',
+ 'stage_product': 'b2g',
+ 'env': {
+ 'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+ 'MOZ_AUTOMATION': '1',
+ 'DISPLAY': ':2',
+ 'HG_SHARE_BASE_DIR': '/builds/hg-shared',
+ 'MOZ_OBJDIR': 'obj-firefox',
+ 'TINDERBOX_OUTPUT': '1',
+ 'TOOLTOOL_CACHE': '/builds/tooltool_cache',
+ 'TOOLTOOL_HOME': '/builds',
+ 'MOZ_CRASHREPORTER_NO_REPORT': '1',
+ 'CCACHE_DIR': '/builds/ccache',
+ 'CCACHE_COMPRESS': '1',
+ 'CCACHE_UMASK': '002',
+ 'LC_ALL': 'C',
+ ## 64 bit specific
+ 'PATH': '/tools/buildbot/bin:/usr/local/bin:/usr/lib64/ccache:/bin:\
+/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/tools/git/bin:/tools/python27/bin:\
+/tools/python27-mercurial/bin:/home/cltbld/bin',
+ 'LD_LIBRARY_PATH': "/tools/gcc-4.3.3/installed/lib64",
+ ##
+ },
+ 'upload_env': {
+ # stage_server is dictated from build_pool_specifics.py
+ 'UPLOAD_HOST': '%(stage_server)s',
+ 'UPLOAD_USER': '%(stage_username)s',
+ 'UPLOAD_SSH_KEY': '/home/mock_mozilla/.ssh/%(stage_ssh_key)s',
+ 'UPLOAD_TO_TEMP': '1',
+ },
+ 'purge_minsize': 14,
+ 'mock_packages': ['autoconf213', 'mozilla-python27', 'zip',
+ 'mozilla-python27-mercurial', 'git', 'ccache',
+ 'glibc-static', 'libstdc++-static', 'perl-Test-Simple',
+ 'perl-Config-General', 'gtk2-devel', 'libnotify-devel',
+ 'yasm', 'alsa-lib-devel', 'libcurl-devel',
+ 'wireless-tools-devel', 'libX11-devel', 'libXt-devel',
+ 'mesa-libGL-devel', 'gnome-vfs2-devel', 'mpfr',
+ 'xorg-x11-font', 'imake', 'ccache', 'wget',
+ 'freetype-2.3.11-6.el6_2.9',
+ 'freetype-devel-2.3.11-6.el6_2.9', 'gstreamer-devel',
+ 'gstreamer-plugins-base-devel'],
+ 'src_mozconfig': 'b2g/config/mozconfigs/linux64_gecko/nightly',
+ 'tooltool_manifest_src': "b2g/config/tooltool-manifests/linux64/releng.manifest",
+ #########################################################################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g/desktop_macosx64.py
@@ -0,0 +1,79 @@
+import os
+import sys
+
+config = {
+ #########################################################################
+ ######## MACOSX GENERIC CONFIG KEYS/VAlUES
+
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ 'build',
+ 'upload-files',
+ 'sendchange',
+ 'check-test',
+ ],
+ "buildbot_json_path": "buildprops.json",
+ 'exes': {
+ 'python2.7': sys.executable,
+ 'hgtool.py': os.path.join(
+ os.getcwd(), 'build', 'tools', 'buildfarm', 'utils', 'hgtool.py'
+ ),
+ "buildbot": "/tools/buildbot/bin/buildbot",
+ },
+ 'app_ini_path': '%(obj_dir)s/dist/bin/application.ini',
+ 'purge_skip': ['info', 'rel-*:45d', 'tb-rel-*:45d'],
+ 'purge_basedirs': [],
+ 'enable_ccache': True,
+ 'vcs_share_base': '/builds/hg-shared',
+ 'objdir': 'obj-firefox',
+ 'tooltool_script': ["/builds/tooltool.py"],
+ 'tooltool_bootstrap': "setup.sh",
+ 'enable_talos_sendchange': False,
+ 'enable_unittest_sendchange': False,
+ #########################################################################
+
+
+ #########################################################################
+ ###### 64 bit specific ######
+ 'base_name': 'B2G_%(branch)s_macosx64_gecko',
+ 'platform': 'macosx64_gecko',
+ 'stage_platform': 'macosx64_gecko',
+ 'stage_product': 'b2g',
+ 'env': {
+ 'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+ 'MOZ_AUTOMATION': '1',
+ 'HG_SHARE_BASE_DIR': '/builds/hg-shared',
+ 'MOZ_OBJDIR': 'obj-firefox',
+ 'CHOWN_ROOT': '~/bin/chown_root',
+ 'CHOWN_REVERT': '~/bin/chown_revert',
+ 'TINDERBOX_OUTPUT': '1',
+ 'TOOLTOOL_CACHE': '/builds/tooltool_cache',
+ 'TOOLTOOL_HOME': '/builds',
+ 'MOZ_CRASHREPORTER_NO_REPORT': '1',
+ 'CCACHE_DIR': '/builds/ccache',
+ 'CCACHE_COMPRESS': '1',
+ 'CCACHE_UMASK': '002',
+ 'LC_ALL': 'C',
+ ## 64 bit specific
+ 'PATH': '/tools/python/bin:/tools/buildbot/bin:/opt/local/bin:/usr/bin:'
+ '/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin',
+ ##
+ },
+ 'upload_env': {
+ # stage_server is dictated from build_pool_specifics.py
+ 'UPLOAD_HOST': '%(stage_server)s',
+ 'UPLOAD_USER': '%(stage_username)s',
+ 'UPLOAD_SSH_KEY': '/Users/cltbld/.ssh/%(stage_ssh_key)s',
+ 'UPLOAD_TO_TEMP': '1',
+ },
+ "check_test_env": {
+ 'MINIDUMP_STACKWALK': '%(abs_tools_dir)s/breakpad/osx64/minidump_stackwalk',
+ 'MINIDUMP_SAVE_PATH': '%(base_work_dir)s/minidumps',
+ },
+ 'purge_minsize': 12,
+ 'src_mozconfig': 'b2g/config/mozconfigs/macosx64_gecko/nightly',
+ 'tooltool_manifest_src': 'b2g/config/tooltool-manifests/macosx64/releng.manifest',
+ #########################################################################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g/desktop_windows32.py
@@ -0,0 +1,101 @@
+import os
+import sys
+
+config = {
+ #########################################################################
+ ######## WINDOWS GENERIC CONFIG KEYS/VAlUES
+ # if you are updating this with custom 32 bit keys/values please add them
+ # below under the '32 bit specific' code block otherwise, update in this
+ # code block and also make sure this is synced with
+ # releng_base_windows_64_builds.py
+
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ 'build',
+ 'upload-files',
+ 'sendchange',
+ 'check-test',
+ ],
+ "buildbot_json_path": "buildprops.json",
+ 'exes': {
+ 'python2.7': sys.executable,
+ 'hgtool.py': [
+ sys.executable,
+ os.path.join(
+ os.getcwd(), 'build', 'tools', 'buildfarm', 'utils', 'hgtool.py'
+ )
+ ],
+ 'gittool.py': [
+ sys.executable,
+ os.path.join(
+ os.getcwd(), 'build', 'tools', 'buildfarm', 'utils', 'gittool.py'
+ )
+ ],
+ "buildbot": [
+ sys.executable,
+ 'c:\\mozilla-build\\buildbotve\\scripts\\buildbot'
+ ],
+ "make": [
+ sys.executable,
+ os.path.join(
+ os.getcwd(), 'build', 'src', 'build', 'pymake', 'make.py'
+ )
+ ],
+ 'virtualenv': [
+ sys.executable,
+ 'c:/mozilla-build/buildbotve/virtualenv.py'
+ ],
+ },
+ 'app_ini_path': '%(obj_dir)s/dist/bin/application.ini',
+ 'purge_skip': ['info', 'rel-*:45d', 'tb-rel-*:45d'],
+ 'purge_basedirs': [],
+ 'enable_ccache': False,
+ 'vcs_share_base': 'C:\\builds\\hg-shared',
+ 'objdir': 'obj-firefox',
+ 'tooltool_script': [sys.executable,
+ 'C:/mozilla-build/tooltool.py'],
+ 'tooltool_bootstrap': "setup.sh",
+ 'enable_talos_sendchange': False,
+ 'enable_unittest_sendchange': False,
+ #########################################################################
+
+
+ #########################################################################
+ ###### 32 bit specific ######
+ 'base_name': 'B2G_%(branch)s_win32_gecko',
+ 'platform': 'win32_gecko',
+ 'stage_platform': 'win32_gecko',
+ 'stage_product': 'b2g',
+ 'env': {
+ 'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+ 'MOZ_AUTOMATION': '1',
+ 'BINSCOPE': 'C:/Program Files (x86)/Microsoft/SDL BinScope/BinScope.exe',
+ 'HG_SHARE_BASE_DIR': 'C:/builds/hg-shared',
+ 'MOZ_CRASHREPORTER_NO_REPORT': '1',
+ 'MOZ_OBJDIR': 'obj-firefox',
+ 'PATH': 'C:/mozilla-build/nsis-3.0b1;C:/mozilla-build/nsis-2.46u;C:/mozilla-build/python27;'
+ 'C:/mozilla-build/buildbotve/scripts;'
+ '%s' % (os.environ.get('path')),
+ 'PDBSTR_PATH': '/c/Program Files (x86)/Windows Kits/8.0/Debuggers/x64/srcsrv/pdbstr.exe',
+ 'PROPERTIES_FILE': os.path.join(os.getcwd(), 'buildprops.json'),
+ 'TINDERBOX_OUTPUT': '1',
+ },
+ 'upload_env': {
+ # stage_server is dictated from build_pool_specifics.py
+ 'UPLOAD_HOST': '%(stage_server)s',
+ 'UPLOAD_USER': '%(stage_username)s',
+ 'UPLOAD_SSH_KEY': '/c/Users/cltbld/.ssh/%(stage_ssh_key)s',
+ 'UPLOAD_TO_TEMP': '1',
+ },
+ "check_test_env": {
+ 'MINIDUMP_STACKWALK': '%(abs_tools_dir)s/breakpad/win32/minidump_stackwalk.exe',
+ 'MINIDUMP_SAVE_PATH': '%(base_work_dir)s/minidumps',
+ },
+ 'enable_pymake': True,
+ 'purge_minsize': 12,
+ 'src_mozconfig': 'b2g/config/mozconfigs/win32_gecko/nightly',
+ 'tooltool_manifest_src': "b2g/config/tooltool-manifests/win32/releng.manifest",
+ #########################################################################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g/emulator_automation_config.py
@@ -0,0 +1,52 @@
+# This is a template config file for b2g emulator unittest production.
+import os
+
+config = {
+ # mozharness options
+ "application": "b2g",
+ "busybox_url": "https://api.pub.build.mozilla.org/tooltool/sha512/0748e900821820f1a42e2f1f3fa4d9002ef257c351b9e6b78e7de0ddd0202eace351f440372fbb1ae0b7e69e8361b036f6bd3362df99e67fc585082a311fc0df",
+ "xre_url": "https://api.pub.build.mozilla.org/tooltool/sha512/dc9503b21c87b5a469118746f99e4f41d73888972ce735fa10a80f6d218086da0e3da525d9a4cd8e4ea497ec199fef720e4a525873d77a1af304ac505e076462",
+ "tooltool_cache": "/builds/tooltool_cache",
+
+ "exes": {
+ 'python': '/tools/buildbot/bin/python',
+ 'virtualenv': ['/tools/buildbot/bin/python', '/tools/misc-python/virtualenv.py'],
+ 'tooltool.py': "/tools/tooltool.py",
+ },
+
+ "find_links": [
+ "http://pypi.pvt.build.mozilla.org/pub",
+ "http://pypi.pub.build.mozilla.org/pub",
+ ],
+ "pip_index": False,
+
+ "buildbot_json_path": "buildprops.json",
+
+ "default_actions": [
+ 'clobber',
+ 'read-buildbot-config',
+ 'download-and-extract',
+ 'create-virtualenv',
+ 'install',
+ 'run-tests',
+ ],
+ "download_symbols": "ondemand",
+ "download_minidump_stackwalk": True,
+ "default_blob_upload_servers": [
+ "https://blobupload.elasticbeanstalk.com",
+ ],
+ "blob_uploader_auth_file": os.path.join(os.getcwd(), "oauth.txt"),
+
+ "run_file_names": {
+ "jsreftest": "runreftestb2g.py",
+ "mochitest": "runtestsb2g.py",
+ "mochitest-chrome": "runtestsb2g.py",
+ "reftest": "runreftestb2g.py",
+ "crashtest": "runreftestb2g.py",
+ "xpcshell": "runtestsb2g.py",
+ "cppunittest": "remotecppunittests.py"
+ },
+ # test harness options are located in the gecko tree
+ "in_tree_config": "config/mozharness/b2g_emulator_config.py",
+ "vcs_output_timeout": 1760,
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g/emulator_test_config.py
@@ -0,0 +1,21 @@
+# This is a template config file for b2g emulator unittest testing
+
+config = {
+ # mozharness script options
+ "application": "b2g",
+ "test_suite": "xpcshell", # reftest, mochitest or xpcshell
+
+ "emulator_url": "http://127.0.1.1/b2g/emulator.zip", # url to emulator zip file
+ "installer_url": "http://127.0.1.1/b2g/b2g.tar.gz", # url to gecko build
+ "xre_url": "http://127.0.1.1/b2g/xpcshell.zip", # url to xpcshell zip file
+ "test_url": "http://127.0.1.1/b2g/tests.zip", # url to tests.zip
+ "busybox_url": "http://127.0.1.1/b2g/busybox", # url to busybox binary
+
+ # testsuite options
+ #"adb_path": "path/to/adb", # defaults - os.environ['ADB_PATH']
+ #"test_manifest": "path/to/manifest", # defaults - mochitest: "b2g.json"
+ # reftest: "tests/layout/reftests/reftest.list"
+ # xpcshell: "tests/xpcshell.ini"
+ "total_chunks": 1,
+ "this_chunk": 1,
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g/gaia_integration_config.py
@@ -0,0 +1,40 @@
+# This is a template config file for b2g emulator unittest testing
+import platform
+
+HG_SHARE_BASE_DIR = "/builds/hg-shared"
+
+if platform.system().lower() == 'darwin':
+ xre_url = "https://api.pub.build.mozilla.org/tooltool/sha512/4d8d7a37d90c34a2a2fda3066a8fe85c189b183d05389cb957fc6fed31f10a6924e50c1b84488ff61c015293803f58a3aed5d4819374d04c8e0ee2b9e3997278"
+else:
+ xre_url = "https://api.pub.build.mozilla.org/tooltool/sha512/dc9503b21c87b5a469118746f99e4f41d73888972ce735fa10a80f6d218086da0e3da525d9a4cd8e4ea497ec199fef720e4a525873d77a1af304ac505e076462"
+
+config = {
+ # mozharness script options
+ "xre_url": xre_url,
+
+ "vcs_share_base": HG_SHARE_BASE_DIR,
+ "exes": {
+ 'python': '/tools/buildbot/bin/python',
+ 'virtualenv': ['/tools/buildbot/bin/python', '/tools/misc-python/virtualenv.py'],
+ 'tooltool.py': "/tools/tooltool.py",
+ },
+
+ "find_links": [
+ "http://pypi.pvt.build.mozilla.org/pub",
+ "http://pypi.pub.build.mozilla.org/pub",
+ ],
+ "pip_index": False,
+
+ "buildbot_json_path": "buildprops.json",
+
+ "default_actions": [
+ 'clobber',
+ 'read-buildbot-config',
+ 'pull',
+ 'download-and-extract',
+ 'create-virtualenv',
+ 'install',
+ 'run-tests',
+ ],
+ "vcs_output_timeout": 1760,
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g/gaia_try.py
@@ -0,0 +1,4 @@
+config = {
+ "gaia_json_path": "{repo_path}/raw-file/{revision}/gaia.json",
+ "bypass_download_cache": True,
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g/gaia_unit_production_config.py
@@ -0,0 +1,45 @@
+# This is a template config file for b2g emulator unittest testing
+import platform
+import os
+
+HG_SHARE_BASE_DIR = "/builds/hg-shared"
+
+if platform.system().lower() == 'darwin':
+ xre_url = "https://api.pub.build.mozilla.org/tooltool/sha512/4d8d7a37d90c34a2a2fda3066a8fe85c189b183d05389cb957fc6fed31f10a6924e50c1b84488ff61c015293803f58a3aed5d4819374d04c8e0ee2b9e3997278"
+else:
+ xre_url = "https://api.pub.build.mozilla.org/tooltool/sha512/dc9503b21c87b5a469118746f99e4f41d73888972ce735fa10a80f6d218086da0e3da525d9a4cd8e4ea497ec199fef720e4a525873d77a1af304ac505e076462"
+
+config = {
+ # mozharness script options
+ "xre_url": xre_url,
+
+ "vcs_share_base": HG_SHARE_BASE_DIR,
+ "exes": {
+ 'python': '/tools/buildbot/bin/python',
+ 'virtualenv': ['/tools/buildbot/bin/python', '/tools/misc-python/virtualenv.py'],
+ 'tooltool.py': "/tools/tooltool.py",
+ },
+
+ "find_links": [
+ "http://pypi.pvt.build.mozilla.org/pub",
+ "http://pypi.pub.build.mozilla.org/pub",
+ ],
+ "pip_index": False,
+
+ "buildbot_json_path": "buildprops.json",
+
+ "default_actions": [
+ 'clobber',
+ 'read-buildbot-config',
+ 'pull',
+ 'download-and-extract',
+ 'create-virtualenv',
+ 'install',
+ 'run-tests',
+ ],
+ "default_blob_upload_servers": [
+ "https://blobupload.elasticbeanstalk.com",
+ ],
+ "blob_uploader_auth_file": os.path.join(os.getcwd(), "oauth.txt"),
+ "vcs_output_timeout": 1760,
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g/gaia_unit_test_config.py
@@ -0,0 +1,7 @@
+# This is a template config file for b2g emulator unittest testing
+
+config = {
+ # mozharness script options
+ "installer_url": "https://ftp-ssl.mozilla.org/pub/mozilla.org/b2g/tinderbox-builds/mozilla-central-linux64_gecko/1365627906/b2g-23.0a1.multi.linux-x86_64.tar.bz2",
+ "xre_url": "https://ftp-ssl.mozilla.org/pub/mozilla.org/xulrunner/nightly/2012/09/2012-09-20-03-05-43-mozilla-central/xulrunner-18.0a1.en-US.linux-x86_64.tar.bz2"
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g/generic_config.py
@@ -0,0 +1,25 @@
+# This is a config with generic releng related values
+import os
+
+config = {
+ "exes": {
+ 'python': '/tools/buildbot/bin/python',
+ 'virtualenv': ['/tools/buildbot/bin/python', '/tools/misc-python/virtualenv.py'],
+ 'tooltool.py': "/tools/tooltool.py",
+ },
+
+ "find_links": [
+ "http://pypi.pvt.build.mozilla.org/pub",
+ "http://pypi.pub.build.mozilla.org/pub",
+ ],
+ "pip_index": False,
+
+ "buildbot_json_path": "buildprops.json",
+
+ "download_symbols": "ondemand",
+ "download_minidump_stackwalk": True,
+ "default_blob_upload_servers": [
+ "https://blobupload.elasticbeanstalk.com",
+ ],
+ "blob_uploader_auth_file": os.path.join(os.getcwd(), "oauth.txt"),
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g/mulet_config.py
@@ -0,0 +1,13 @@
+# Call --cfg b2g/generic_config.py before this config
+config = {
+ "default_actions": [
+ 'clobber',
+ 'read-buildbot-config',
+ 'pull',
+ 'download-and-extract',
+ 'create-virtualenv',
+ 'install',
+ 'run-tests',
+ ],
+ "in_tree_config": "config/mozharness/linux_mulet_config.py",
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g/releng-emulator.py
@@ -0,0 +1,87 @@
+#!/usr/bin/env python
+import os
+config = {
+ "default_actions": [
+ 'clobber',
+ 'checkout-sources',
+ 'get-blobs',
+ 'update-source-manifest',
+ 'build',
+ 'build-symbols',
+ 'make-updates',
+ 'prep-upload',
+ 'upload',
+ 'make-socorro-json',
+ 'upload-source-manifest',
+ ],
+ "upload": {
+ "default": {
+ "ssh_key": os.path.expanduser("~/.ssh/b2gbld_dsa"),
+ "ssh_user": "b2gbld",
+ "upload_remote_host": "pvtbuilds2.dmz.scl3.mozilla.com",
+ "upload_remote_path": "/pub/mozilla.org/b2g/tinderbox-builds/%(branch)s-%(target)s/%(buildid)s",
+ "upload_remote_symlink": "/pub/mozilla.org/b2g/tinderbox-builds/%(branch)s-%(target)s/latest",
+ "upload_remote_nightly_path": "/pub/mozilla.org/b2g/nightly/%(branch)s-%(target)s/%(year)04i/%(month)02i/%(year)04i-%(month)02i-%(day)02i-%(hour)02i-%(minute)02i-%(second)02i",
+ "upload_remote_nightly_symlink": "/pub/mozilla.org/b2g/nightly/%(branch)s-%(target)s/latest",
+ "upload_dep_target_exclusions": [],
+ },
+ "public": {
+ "ssh_key": os.path.expanduser("~/.ssh/ffxbld_rsa"),
+ "ssh_user": "ffxbld",
+ "upload_remote_host": "stage.mozilla.org",
+ "post_upload_cmd": "post_upload.py --tinderbox-builds-dir %(branch)s-%(target)s -p b2g -i %(buildid)s --revision %(revision)s --release-to-tinderbox-dated-builds",
+ "post_upload_nightly_cmd": "post_upload.py --tinderbox-builds-dir %(branch)s-%(target)s -b %(branch)s-%(target)s -p b2g -i %(buildid)s --revision %(revision)s --release-to-tinderbox-dated-builds --release-to-latest --release-to-dated",
+ },
+ },
+ "gittool_share_base": "/builds/git-shared/git",
+ "gittool_base_mirror_urls": [],
+ "hgtool_share_base": "/builds/hg-shared",
+ "hgtool_base_bundle_urls": ["https://ftp-ssl.mozilla.org/pub/mozilla.org/firefox/bundles"],
+ "sendchange_masters": ["buildbot-master81.build.mozilla.org:9301"],
+ "exes": {
+ "tooltool.py": "/tools/tooltool.py",
+ "buildbot": "/tools/buildbot/bin/buildbot",
+ },
+ "manifest": {
+ "upload_remote_host": "stage.mozilla.org",
+ "upload_remote_basepath": "/pub/mozilla.org/b2g/manifests/nightly/%(version)s",
+ "depend_upload_remote_basepath": "/pub/mozilla.org/b2g/manifests/depend/%(branch)s/%(platform)s/%(buildid)s",
+ "ssh_key": os.path.expanduser("~/.ssh/b2gbld_dsa"),
+ "ssh_user": "b2gbld",
+ "branches": {
+ 'mozilla-b2g32_v2_0': '2.0.0',
+ 'mozilla-b2g34_v2_1': '2.1.0',
+ 'mozilla-b2g37_v2_2': '2.2.0',
+ 'mozilla-central': '3.0.0',
+ },
+ "translate_hg_to_git": True,
+ "translate_base_url": "http://cruncher.build.mozilla.org/mapper/{project}/{vcs}/{rev}",
+ },
+ "env": {
+ "CCACHE_DIR": "/builds/ccache",
+ "CCACHE_COMPRESS": "1",
+ "CCACHE_UMASK": "002",
+ "GAIA_OPTIMIZE": "1",
+ "SYMBOL_SERVER_HOST": "symbolpush.mozilla.org",
+ "SYMBOL_SERVER_USER": "b2gbld",
+ "SYMBOL_SERVER_SSH_KEY": "/home/mock_mozilla/.ssh/b2gbld_dsa",
+ "SYMBOL_SERVER_PATH": "/mnt/netapp/breakpad/symbols_b2g/",
+ "POST_SYMBOL_UPLOAD_CMD": "/usr/local/bin/post-symbol-upload.py",
+ "WGET_OPTS": "-c -q",
+ "PATH": "/tools/python27/bin:%(PATH)s",
+ },
+ "purge_minsize": 20,
+ "clobberer_url": "https://api.pub.build.mozilla.org/clobberer/lastclobber",
+ "is_automation": True,
+ "repo_mirror_dir": "/builds/git-shared/repo",
+ "repo_remote_mappings": {
+ 'https://android.googlesource.com/': 'https://git.mozilla.org/external/aosp',
+ 'git://codeaurora.org/': 'https://git.mozilla.org/external/caf',
+ 'https://git.mozilla.org/b2g': 'https://git.mozilla.org/b2g',
+ 'git://github.com/mozilla-b2g/': 'https://git.mozilla.org/b2g',
+ 'git://github.com/mozilla/': 'https://git.mozilla.org/b2g',
+ 'https://git.mozilla.org/releases': 'https://git.mozilla.org/releases',
+ 'http://android.git.linaro.org/git-ro/': 'https://git.mozilla.org/external/linaro',
+ 'git://github.com/apitrace/': 'https://git.mozilla.org/external/apitrace',
+ },
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g/releng-fota-eng.py
@@ -0,0 +1,93 @@
+#!/usr/bin/env python
+import os
+config = {
+ "default_actions": [
+ 'clobber',
+ 'checkout-sources',
+ 'get-blobs',
+ 'update-source-manifest',
+ 'build',
+ 'build-symbols',
+ 'make-updates',
+ 'prep-upload',
+ 'upload',
+ 'make-socorro-json',
+ 'upload-source-manifest',
+ ],
+ "upload": {
+ "default": {
+ "ssh_key": os.path.expanduser("~/.ssh/b2gbld_dsa"),
+ "ssh_user": "b2gbld",
+ "upload_remote_host": "pvtbuilds.pvt.build.mozilla.org",
+ "upload_remote_path": "/pvt/mozilla.org/b2gotoro/tinderbox-builds/%(branch)s-%(target)s/%(buildid)s",
+ "upload_remote_symlink": "/pvt/mozilla.org/b2gotoro/tinderbox-builds/%(branch)s-%(target)s/latest",
+ "upload_remote_nightly_path": "/pvt/mozilla.org/b2gotoro/nightly/%(branch)s-%(target)s/%(year)04i/%(month)02i/%(year)04i-%(month)02i-%(day)02i-%(hour)02i-%(minute)02i-%(second)02i",
+ "upload_remote_nightly_symlink": "/pvt/mozilla.org/b2gotoro/nightly/%(branch)s-%(target)s/latest",
+ "upload_dep_target_exclusions": [],
+ },
+ "public": {
+ "ssh_key": os.path.expanduser("~/.ssh/ffxbld_rsa"),
+ "ssh_user": "ffxbld",
+ "upload_remote_host": "stage.mozilla.org",
+ "post_upload_cmd": "post_upload.py --tinderbox-builds-dir %(branch)s-%(target)s -p b2g -i %(buildid)s --revision %(revision)s --release-to-tinderbox-dated-builds",
+ "post_upload_nightly_cmd": "post_upload.py --tinderbox-builds-dir %(branch)s-%(target)s -b %(branch)s-%(target)s -p b2g -i %(buildid)s --revision %(revision)s --release-to-tinderbox-dated-builds --release-to-latest --release-to-dated",
+ },
+ },
+ "gittool_share_base": "/builds/git-shared/git",
+ "gittool_base_mirror_urls": [],
+ "hgtool_share_base": "/builds/hg-shared",
+ "hgtool_base_bundle_urls": ["https://ftp-ssl.mozilla.org/pub/mozilla.org/firefox/bundles"],
+ "exes": {
+ "tooltool.py": "/tools/tooltool.py",
+ "python": "/tools/python27/bin/python2.7",
+ },
+ "manifest": {
+ "upload_remote_host": "stage.mozilla.org",
+ "upload_remote_basepath": "/pub/mozilla.org/b2g/manifests/nightly/%(version)s",
+ "depend_upload_remote_basepath": "/pub/mozilla.org/b2g/manifests/depend/%(branch)s/%(platform)s/%(buildid)s",
+ "ssh_key": os.path.expanduser("~/.ssh/b2gbld_dsa"),
+ "ssh_user": "b2gbld",
+ "branches": {
+ 'mozilla-b2g32_v2_0': '2.0.0',
+ 'mozilla-b2g34_v2_1': '2.1.0',
+ 'mozilla-b2g37_v2_2': '2.2.0',
+ 'mozilla-central': '3.0.0',
+ },
+ "translate_hg_to_git": True,
+ "translate_base_url": "http://cruncher.build.mozilla.org/mapper/{project}/{vcs}/{rev}",
+ "target_suffix": "-eng",
+ },
+ "env": {
+ "CCACHE_DIR": "/builds/ccache",
+ "CCACHE_COMPRESS": "1",
+ "CCACHE_UMASK": "002",
+ "GAIA_OPTIMIZE": "1",
+ "SYMBOL_SERVER_HOST": "symbolpush.mozilla.org",
+ "SYMBOL_SERVER_USER": "b2gbld",
+ "SYMBOL_SERVER_SSH_KEY": "/home/mock_mozilla/.ssh/b2gbld_dsa",
+ "SYMBOL_SERVER_PATH": "/mnt/netapp/breakpad/symbols_b2g/",
+ "POST_SYMBOL_UPLOAD_CMD": "/usr/local/bin/post-symbol-upload.py",
+ "B2G_UPDATER": "1",
+ "B2G_SYSTEM_APPS": "1",
+ "WGET_OPTS": "-c -q",
+ "PATH": "/tools/python27/bin:%(PATH)s",
+ "B2G_UPDATE_CHANNEL": "default",
+ },
+ "purge_minsize": 15,
+ "clobberer_url": "https://api.pub.build.mozilla.org/clobberer/lastclobber",
+ "is_automation": True,
+ "variant": "eng",
+ "target_suffix": "-eng",
+ "update_type": "fota",
+ "repo_mirror_dir": "/builds/git-shared/repo",
+ "repo_remote_mappings": {
+ 'https://android.googlesource.com/': 'https://git.mozilla.org/external/aosp',
+ 'git://codeaurora.org/': 'https://git.mozilla.org/external/caf',
+ 'https://git.mozilla.org/b2g': 'https://git.mozilla.org/b2g',
+ 'git://github.com/mozilla-b2g/': 'https://git.mozilla.org/b2g',
+ 'git://github.com/mozilla/': 'https://git.mozilla.org/b2g',
+ 'https://git.mozilla.org/releases': 'https://git.mozilla.org/releases',
+ 'http://android.git.linaro.org/git-ro/': 'https://git.mozilla.org/external/linaro',
+ 'git://github.com/apitrace/': 'https://git.mozilla.org/external/apitrace',
+ },
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g/releng-fota-updates.py
@@ -0,0 +1,87 @@
+#!/usr/bin/env python
+import os
+config = {
+ "default_actions": [
+ 'clobber',
+ 'checkout-sources',
+ 'get-blobs',
+ 'update-source-manifest',
+ 'build',
+ 'build-symbols',
+ 'make-updates',
+ 'prep-upload',
+ 'upload',
+ 'make-socorro-json',
+ 'upload-source-manifest',
+ 'submit-to-balrog',
+ ],
+ "upload": {
+ "default": {
+ "ssh_key": os.path.expanduser("~/.ssh/b2gbld_dsa"),
+ "ssh_user": "b2gbld",
+ "upload_remote_host": "pvtbuilds.pvt.build.mozilla.org",
+ "upload_remote_path": "/pvt/mozilla.org/b2gotoro/tinderbox-builds/%(branch)s-%(target)s/%(buildid)s",
+ "upload_remote_symlink": "/pvt/mozilla.org/b2gotoro/tinderbox-builds/%(branch)s-%(target)s/latest",
+ "upload_remote_nightly_path": "/pvt/mozilla.org/b2gotoro/nightly/%(branch)s-%(target)s/%(year)04i/%(month)02i/%(year)04i-%(month)02i-%(day)02i-%(hour)02i-%(minute)02i-%(second)02i",
+ "upload_remote_nightly_symlink": "/pvt/mozilla.org/b2gotoro/nightly/%(branch)s-%(target)s/latest",
+ "upload_dep_target_exclusions": ["inari", "leo", "helix", "mako", "wasabi"],
+ },
+ "public": {
+ "ssh_key": os.path.expanduser("~/.ssh/ffxbld_rsa"),
+ "ssh_user": "ffxbld",
+ "upload_remote_host": "stage.mozilla.org",
+ "post_upload_cmd": "post_upload.py --tinderbox-builds-dir %(branch)s-%(target)s -p b2g -i %(buildid)s --revision %(revision)s --release-to-tinderbox-dated-builds",
+ "post_upload_nightly_cmd": "post_upload.py --tinderbox-builds-dir %(branch)s-%(target)s -b %(branch)s-%(target)s -p b2g -i %(buildid)s --revision %(revision)s --release-to-tinderbox-dated-builds --release-to-latest --release-to-dated",
+ },
+ },
+ "gittool_share_base": "/builds/git-shared/git",
+ "gittool_base_mirror_urls": [],
+ "hgtool_share_base": "/builds/hg-shared",
+ "hgtool_base_bundle_urls": ["https://ftp-ssl.mozilla.org/pub/mozilla.org/firefox/bundles"],
+ "exes": {
+ "tooltool.py": "/tools/tooltool.py",
+ },
+ "manifest": {
+ "upload_remote_host": "stage.mozilla.org",
+ "upload_remote_basepath": "/pub/mozilla.org/b2g/manifests/nightly/%(version)s",
+ "depend_upload_remote_basepath": "/pub/mozilla.org/b2g/manifests/depend/%(branch)s/%(platform)s/%(buildid)s",
+ "ssh_key": os.path.expanduser("~/.ssh/b2gbld_dsa"),
+ "ssh_user": "b2gbld",
+ "branches": {
+ 'mozilla-b2g32_v2_0': '2.0.0',
+ 'mozilla-b2g34_v2_1': '2.1.0',
+ 'mozilla-b2g37_v2_2': '2.2.0',
+ 'mozilla-central': '3.0.0',
+ },
+ "translate_hg_to_git": True,
+ "translate_base_url": "http://cruncher.build.mozilla.org/mapper/{project}/{vcs}/{rev}",
+ },
+ "env": {
+ "CCACHE_DIR": "/builds/ccache",
+ "CCACHE_COMPRESS": "1",
+ "CCACHE_UMASK": "002",
+ "GAIA_OPTIMIZE": "1",
+ "SYMBOL_SERVER_HOST": "symbolpush.mozilla.org",
+ "SYMBOL_SERVER_USER": "b2gbld",
+ "SYMBOL_SERVER_SSH_KEY": "/home/mock_mozilla/.ssh/b2gbld_dsa",
+ "SYMBOL_SERVER_PATH": "/mnt/netapp/breakpad/symbols_b2g/",
+ "POST_SYMBOL_UPLOAD_CMD": "/usr/local/bin/post-symbol-upload.py",
+ "WGET_OPTS": "-c -q",
+ "PATH": "/tools/python27/bin:%(PATH)s",
+ },
+ "purge_minsize": 15,
+ "clobberer_url": "https://api.pub.build.mozilla.org/clobberer/lastclobber",
+ "is_automation": True,
+ "repo_mirror_dir": "/builds/git-shared/repo",
+ "repo_remote_mappings": {
+ 'https://android.googlesource.com/': 'https://git.mozilla.org/external/aosp',
+ 'git://codeaurora.org/': 'https://git.mozilla.org/external/caf',
+ 'https://git.mozilla.org/b2g': 'https://git.mozilla.org/b2g',
+ 'git://github.com/mozilla-b2g/': 'https://git.mozilla.org/b2g',
+ 'git://github.com/mozilla/': 'https://git.mozilla.org/b2g',
+ 'https://git.mozilla.org/releases': 'https://git.mozilla.org/releases',
+ 'http://android.git.linaro.org/git-ro/': 'https://git.mozilla.org/external/linaro',
+ 'git://github.com/apitrace/': 'https://git.mozilla.org/external/apitrace',
+ },
+ "update_type": "fota",
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g/releng-otoro-eng.py
@@ -0,0 +1,92 @@
+#!/usr/bin/env python
+import os
+config = {
+ "default_actions": [
+ 'clobber',
+ 'checkout-sources',
+ 'get-blobs',
+ 'update-source-manifest',
+ 'build',
+ 'build-symbols',
+ 'make-updates',
+ 'prep-upload',
+ 'upload',
+ 'make-socorro-json',
+ 'upload-source-manifest',
+ ],
+ "upload": {
+ "default": {
+ "ssh_key": os.path.expanduser("~/.ssh/b2gbld_dsa"),
+ "ssh_user": "b2gbld",
+ "upload_remote_host": "pvtbuilds.pvt.build.mozilla.org",
+ "upload_remote_path": "/pvt/mozilla.org/b2gotoro/tinderbox-builds/%(branch)s-%(target)s/%(buildid)s",
+ "upload_remote_symlink": "/pvt/mozilla.org/b2gotoro/tinderbox-builds/%(branch)s-%(target)s/latest",
+ "upload_remote_nightly_path": "/pvt/mozilla.org/b2gotoro/nightly/%(branch)s-%(target)s/%(year)04i/%(month)02i/%(year)04i-%(month)02i-%(day)02i-%(hour)02i-%(minute)02i-%(second)02i",
+ "upload_remote_nightly_symlink": "/pvt/mozilla.org/b2gotoro/nightly/%(branch)s-%(target)s/latest",
+ "upload_dep_target_exclusions": [],
+ },
+ "public": {
+ "ssh_key": os.path.expanduser("~/.ssh/ffxbld_rsa"),
+ "ssh_user": "ffxbld",
+ "upload_remote_host": "stage.mozilla.org",
+ "post_upload_cmd": "post_upload.py --tinderbox-builds-dir %(branch)s-%(target)s -p b2g -i %(buildid)s --revision %(revision)s --release-to-tinderbox-dated-builds",
+ "post_upload_nightly_cmd": "post_upload.py --tinderbox-builds-dir %(branch)s-%(target)s -b %(branch)s-%(target)s -p b2g -i %(buildid)s --revision %(revision)s --release-to-tinderbox-dated-builds --release-to-latest --release-to-dated",
+ },
+ },
+ "gittool_share_base": "/builds/git-shared/git",
+ "gittool_base_mirror_urls": [],
+ "hgtool_share_base": "/builds/hg-shared",
+ "hgtool_base_bundle_urls": ["https://ftp-ssl.mozilla.org/pub/mozilla.org/firefox/bundles"],
+ "exes": {
+ "tooltool.py": "/tools/tooltool.py",
+ "python": "/tools/python27/bin/python2.7",
+ },
+ "manifest": {
+ "upload_remote_host": "stage.mozilla.org",
+ "upload_remote_basepath": "/pub/mozilla.org/b2g/manifests/nightly/%(version)s",
+ "depend_upload_remote_basepath": "/pub/mozilla.org/b2g/manifests/depend/%(branch)s/%(platform)s/%(buildid)s",
+ "ssh_key": os.path.expanduser("~/.ssh/b2gbld_dsa"),
+ "ssh_user": "b2gbld",
+ "branches": {
+ 'mozilla-b2g32_v2_0': '2.0.0',
+ 'mozilla-b2g34_v2_1': '2.1.0',
+ 'mozilla-b2g37_v2_2': '2.2.0',
+ 'mozilla-central': '3.0.0',
+ },
+ "translate_hg_to_git": True,
+ "translate_base_url": "http://cruncher.build.mozilla.org/mapper/{project}/{vcs}/{rev}",
+ "target_suffix": "-eng",
+ },
+ "env": {
+ "CCACHE_DIR": "/builds/ccache",
+ "CCACHE_COMPRESS": "1",
+ "CCACHE_UMASK": "002",
+ "GAIA_OPTIMIZE": "1",
+ "SYMBOL_SERVER_HOST": "symbolpush.mozilla.org",
+ "SYMBOL_SERVER_USER": "b2gbld",
+ "SYMBOL_SERVER_SSH_KEY": "/home/mock_mozilla/.ssh/b2gbld_dsa",
+ "SYMBOL_SERVER_PATH": "/mnt/netapp/breakpad/symbols_b2g/",
+ "POST_SYMBOL_UPLOAD_CMD": "/usr/local/bin/post-symbol-upload.py",
+ "B2G_UPDATER": "1",
+ "B2G_SYSTEM_APPS": "1",
+ "WGET_OPTS": "-c -q",
+ "PATH": "/tools/python27/bin:%(PATH)s",
+ "B2G_UPDATE_CHANNEL": "default",
+ },
+ "purge_minsize": 15,
+ "clobberer_url": "https://api.pub.build.mozilla.org/clobberer/lastclobber",
+ "is_automation": True,
+ "variant": "eng",
+ "target_suffix": "-eng",
+ "repo_mirror_dir": "/builds/git-shared/repo",
+ "repo_remote_mappings": {
+ 'https://android.googlesource.com/': 'https://git.mozilla.org/external/aosp',
+ 'git://codeaurora.org/': 'https://git.mozilla.org/external/caf',
+ 'https://git.mozilla.org/b2g': 'https://git.mozilla.org/b2g',
+ 'git://github.com/mozilla-b2g/': 'https://git.mozilla.org/b2g',
+ 'git://github.com/mozilla/': 'https://git.mozilla.org/b2g',
+ 'https://git.mozilla.org/releases': 'https://git.mozilla.org/releases',
+ 'http://android.git.linaro.org/git-ro/': 'https://git.mozilla.org/external/linaro',
+ 'git://github.com/apitrace/': 'https://git.mozilla.org/external/apitrace',
+ },
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g/releng-otoro.py
@@ -0,0 +1,85 @@
+#!/usr/bin/env python
+import os
+config = {
+ "default_actions": [
+ 'clobber',
+ 'checkout-sources',
+ 'get-blobs',
+ 'update-source-manifest',
+ 'build',
+ 'build-symbols',
+ 'make-updates',
+ 'prep-upload',
+ 'upload',
+ 'make-socorro-json',
+ 'upload-source-manifest',
+ ],
+ "upload": {
+ "default": {
+ "ssh_key": os.path.expanduser("~/.ssh/b2gbld_dsa"),
+ "ssh_user": "b2gbld",
+ "upload_remote_host": "pvtbuilds.pvt.build.mozilla.org",
+ "upload_remote_path": "/pvt/mozilla.org/b2gotoro/tinderbox-builds/%(branch)s-%(target)s/%(buildid)s",
+ "upload_remote_symlink": "/pvt/mozilla.org/b2gotoro/tinderbox-builds/%(branch)s-%(target)s/latest",
+ "upload_remote_nightly_path": "/pvt/mozilla.org/b2gotoro/nightly/%(branch)s-%(target)s/%(year)04i/%(month)02i/%(year)04i-%(month)02i-%(day)02i-%(hour)02i-%(minute)02i-%(second)02i",
+ "upload_remote_nightly_symlink": "/pvt/mozilla.org/b2gotoro/nightly/%(branch)s-%(target)s/latest",
+ "upload_dep_target_exclusions": ["inari", "leo", "helix", "mako", "wasabi"],
+ },
+ "public": {
+ "ssh_key": os.path.expanduser("~/.ssh/ffxbld_rsa"),
+ "ssh_user": "ffxbld",
+ "upload_remote_host": "stage.mozilla.org",
+ "post_upload_cmd": "post_upload.py --tinderbox-builds-dir %(branch)s-%(target)s -p b2g -i %(buildid)s --revision %(revision)s --release-to-tinderbox-dated-builds",
+ "post_upload_nightly_cmd": "post_upload.py --tinderbox-builds-dir %(branch)s-%(target)s -b %(branch)s-%(target)s -p b2g -i %(buildid)s --revision %(revision)s --release-to-tinderbox-dated-builds --release-to-latest --release-to-dated",
+ },
+ },
+ "gittool_share_base": "/builds/git-shared/git",
+ "gittool_base_mirror_urls": [],
+ "hgtool_share_base": "/builds/hg-shared",
+ "hgtool_base_bundle_urls": ["https://ftp-ssl.mozilla.org/pub/mozilla.org/firefox/bundles"],
+ "exes": {
+ "tooltool.py": "/tools/tooltool.py",
+ },
+ "manifest": {
+ "upload_remote_host": "stage.mozilla.org",
+ "upload_remote_basepath": "/pub/mozilla.org/b2g/manifests/nightly/%(version)s",
+ "depend_upload_remote_basepath": "/pub/mozilla.org/b2g/manifests/depend/%(branch)s/%(platform)s/%(buildid)s",
+ "ssh_key": os.path.expanduser("~/.ssh/b2gbld_dsa"),
+ "ssh_user": "b2gbld",
+ "branches": {
+ 'mozilla-b2g32_v2_0': '2.0.0',
+ 'mozilla-b2g34_v2_1': '2.1.0',
+ 'mozilla-b2g37_v2_2': '2.2.0',
+ 'mozilla-central': '3.0.0',
+ },
+ "translate_hg_to_git": True,
+ "translate_base_url": "http://cruncher.build.mozilla.org/mapper/{project}/{vcs}/{rev}",
+ },
+ "env": {
+ "CCACHE_DIR": "/builds/ccache",
+ "CCACHE_COMPRESS": "1",
+ "CCACHE_UMASK": "002",
+ "GAIA_OPTIMIZE": "1",
+ "SYMBOL_SERVER_HOST": "symbolpush.mozilla.org",
+ "SYMBOL_SERVER_USER": "b2gbld",
+ "SYMBOL_SERVER_SSH_KEY": "/home/mock_mozilla/.ssh/b2gbld_dsa",
+ "SYMBOL_SERVER_PATH": "/mnt/netapp/breakpad/symbols_b2g/",
+ "POST_SYMBOL_UPLOAD_CMD": "/usr/local/bin/post-symbol-upload.py",
+ "WGET_OPTS": "-c -q",
+ "PATH": "/tools/python27/bin:%(PATH)s",
+ },
+ "purge_minsize": 15,
+ "clobberer_url": "https://api.pub.build.mozilla.org/clobberer/lastclobber",
+ "is_automation": True,
+ "repo_mirror_dir": "/builds/git-shared/repo",
+ "repo_remote_mappings": {
+ 'https://android.googlesource.com/': 'https://git.mozilla.org/external/aosp',
+ 'git://codeaurora.org/': 'https://git.mozilla.org/external/caf',
+ 'https://git.mozilla.org/b2g': 'https://git.mozilla.org/b2g',
+ 'git://github.com/mozilla-b2g/': 'https://git.mozilla.org/b2g',
+ 'git://github.com/mozilla/': 'https://git.mozilla.org/b2g',
+ 'https://git.mozilla.org/releases': 'https://git.mozilla.org/releases',
+ 'http://android.git.linaro.org/git-ro/': 'https://git.mozilla.org/external/linaro',
+ 'git://github.com/apitrace/': 'https://git.mozilla.org/external/apitrace',
+ },
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g/releng-private-updates.py
@@ -0,0 +1,86 @@
+#!/usr/bin/env python
+import os
+config = {
+ "default_actions": [
+ 'clobber',
+ 'checkout-sources',
+ 'get-blobs',
+ 'update-source-manifest',
+ 'build',
+ 'build-symbols',
+ 'make-updates',
+ 'prep-upload',
+ 'upload',
+ 'make-socorro-json',
+ 'upload-source-manifest',
+ 'submit-to-balrog',
+ ],
+ "upload": {
+ "default": {
+ "ssh_key": os.path.expanduser("~/.ssh/b2gbld_dsa"),
+ "ssh_user": "b2gbld",
+ "upload_remote_host": "pvtbuilds.pvt.build.mozilla.org",
+ "upload_remote_path": "/pvt/mozilla.org/b2gotoro/tinderbox-builds/%(branch)s-%(target)s/%(buildid)s",
+ "upload_remote_symlink": "/pvt/mozilla.org/b2gotoro/tinderbox-builds/%(branch)s-%(target)s/latest",
+ "upload_remote_nightly_path": "/pvt/mozilla.org/b2gotoro/nightly/%(branch)s-%(target)s/%(year)04i/%(month)02i/%(year)04i-%(month)02i-%(day)02i-%(hour)02i-%(minute)02i-%(second)02i",
+ "upload_remote_nightly_symlink": "/pvt/mozilla.org/b2gotoro/nightly/%(branch)s-%(target)s/latest",
+ "upload_dep_target_exclusions": ["inari", "leo", "helix", "mako", "wasabi"],
+ },
+ "public": {
+ "ssh_key": os.path.expanduser("~/.ssh/ffxbld_rsa"),
+ "ssh_user": "ffxbld",
+ "upload_remote_host": "stage.mozilla.org",
+ "post_upload_cmd": "post_upload.py --tinderbox-builds-dir %(branch)s-%(target)s -p b2g -i %(buildid)s --revision %(revision)s --release-to-tinderbox-dated-builds",
+ "post_upload_nightly_cmd": "post_upload.py --tinderbox-builds-dir %(branch)s-%(target)s -b %(branch)s-%(target)s -p b2g -i %(buildid)s --revision %(revision)s --release-to-tinderbox-dated-builds --release-to-latest --release-to-dated",
+ },
+ },
+ "gittool_share_base": "/builds/git-shared/git",
+ "gittool_base_mirror_urls": [],
+ "hgtool_share_base": "/builds/hg-shared",
+ "hgtool_base_bundle_urls": ["https://ftp-ssl.mozilla.org/pub/mozilla.org/firefox/bundles"],
+ "exes": {
+ "tooltool.py": "/tools/tooltool.py",
+ },
+ "manifest": {
+ "upload_remote_host": "stage.mozilla.org",
+ "upload_remote_basepath": "/pub/mozilla.org/b2g/manifests/nightly/%(version)s",
+ "depend_upload_remote_basepath": "/pub/mozilla.org/b2g/manifests/depend/%(branch)s/%(platform)s/%(buildid)s",
+ "ssh_key": os.path.expanduser("~/.ssh/b2gbld_dsa"),
+ "ssh_user": "b2gbld",
+ "branches": {
+ 'mozilla-b2g32_v2_0': '2.0.0',
+ 'mozilla-b2g34_v2_1': '2.1.0',
+ 'mozilla-b2g37_v2_2': '2.2.0',
+ 'mozilla-central': '3.0.0',
+ },
+ "translate_hg_to_git": True,
+ "translate_base_url": "http://cruncher.build.mozilla.org/mapper/{project}/{vcs}/{rev}",
+ },
+ "env": {
+ "CCACHE_DIR": "/builds/ccache",
+ "CCACHE_COMPRESS": "1",
+ "CCACHE_UMASK": "002",
+ "GAIA_OPTIMIZE": "1",
+ "SYMBOL_SERVER_HOST": "symbolpush.mozilla.org",
+ "SYMBOL_SERVER_USER": "b2gbld",
+ "SYMBOL_SERVER_SSH_KEY": "/home/mock_mozilla/.ssh/b2gbld_dsa",
+ "SYMBOL_SERVER_PATH": "/mnt/netapp/breakpad/symbols_b2g/",
+ "POST_SYMBOL_UPLOAD_CMD": "/usr/local/bin/post-symbol-upload.py",
+ "WGET_OPTS": "-c -q",
+ "PATH": "/tools/python27/bin:%(PATH)s",
+ },
+ "purge_minsize": 15,
+ "clobberer_url": "https://api.pub.build.mozilla.org/clobberer/lastclobber",
+ "is_automation": True,
+ "repo_mirror_dir": "/builds/git-shared/repo",
+ "repo_remote_mappings": {
+ 'https://android.googlesource.com/': 'https://git.mozilla.org/external/aosp',
+ 'git://codeaurora.org/': 'https://git.mozilla.org/external/caf',
+ 'https://git.mozilla.org/b2g': 'https://git.mozilla.org/b2g',
+ 'git://github.com/mozilla-b2g/': 'https://git.mozilla.org/b2g',
+ 'git://github.com/mozilla/': 'https://git.mozilla.org/b2g',
+ 'https://git.mozilla.org/releases': 'https://git.mozilla.org/releases',
+ 'http://android.git.linaro.org/git-ro/': 'https://git.mozilla.org/external/linaro',
+ 'git://github.com/apitrace/': 'https://git.mozilla.org/external/apitrace',
+ },
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g/releng-try.py
@@ -0,0 +1,56 @@
+#!/usr/bin/env python
+import os
+config = {
+ "default_actions": [
+ 'clobber',
+ 'checkout-sources',
+ 'get-blobs',
+ 'update-source-manifest',
+ 'build',
+ 'build-symbols',
+ 'prep-upload',
+ 'upload',
+ ],
+ "upload": {
+ "default": {
+ "ssh_key": os.path.expanduser("~/.ssh/b2gtry_dsa"),
+ "ssh_user": "b2gtry",
+ "upload_remote_host": "pvtbuilds2.dmz.scl3.mozilla.com",
+ "upload_remote_path": "/pub/mozilla.org/b2g/try-builds/%(user)s-%(revision)s/%(branch)s-%(target)s",
+ "upload_dep_target_exclusions": [],
+ },
+ },
+ "gittool_share_base": "/builds/git-shared/git",
+ "gittool_base_mirror_urls": [],
+ "hgtool_share_base": "/builds/hg-shared",
+ "hgtool_base_bundle_urls": ["https://ftp-ssl.mozilla.org/pub/mozilla.org/firefox/bundles"],
+ "sendchange_masters": ["buildbot-master81.build.mozilla.org:9301"],
+ "exes": {
+ "tooltool.py": "/tools/tooltool.py",
+ "buildbot": "/tools/buildbot/bin/buildbot",
+ },
+ "env": {
+ "CCACHE_DIR": "/builds/ccache",
+ "CCACHE_COMPRESS": "1",
+ "CCACHE_UMASK": "002",
+ "GAIA_OPTIMIZE": "1",
+ "WGET_OPTS": "-c -q",
+ "PATH": "/tools/python27/bin:%(PATH)s",
+ },
+ "purge_minsize": 20,
+ #"clobberer_url": "https://api-pub-build.allizom.org/clobberer/lastclobber",
+ #"clobberer_url": "https://api.pub.build.mozilla.org/clobberer/lastclobber",
+ "is_automation": True,
+ "force_clobber": True,
+ "repo_mirror_dir": "/builds/git-shared/repo",
+ "repo_remote_mappings": {
+ 'https://android.googlesource.com/': 'https://git.mozilla.org/external/aosp',
+ 'git://codeaurora.org/': 'https://git.mozilla.org/external/caf',
+ 'https://git.mozilla.org/b2g': 'https://git.mozilla.org/b2g',
+ 'git://github.com/mozilla-b2g/': 'https://git.mozilla.org/b2g',
+ 'git://github.com/mozilla/': 'https://git.mozilla.org/b2g',
+ 'https://git.mozilla.org/releases': 'https://git.mozilla.org/releases',
+ 'http://android.git.linaro.org/git-ro/': 'https://git.mozilla.org/external/linaro',
+ 'git://github.com/apitrace/': 'https://git.mozilla.org/external/apitrace',
+ },
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g/releng_sub_linux_configs/32_debug.py
@@ -0,0 +1,7 @@
+import os
+
+config = {
+ 'stage_platform': 'linux32_gecko-debug',
+ 'debug_build': True,
+ 'src_mozconfig': 'b2g/config/mozconfigs/linux32_gecko/debug',
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g/releng_sub_linux_configs/64_debug.py
@@ -0,0 +1,7 @@
+import os
+
+config = {
+ 'stage_platform': 'linux64_gecko-debug',
+ 'debug_build': True,
+ 'src_mozconfig': 'b2g/config/mozconfigs/linux64_gecko/debug',
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g/releng_sub_mac_configs/64_debug.py
@@ -0,0 +1,7 @@
+import os
+
+config = {
+ 'stage_platform': 'macosx64_gecko-debug',
+ 'debug_build': True,
+ 'src_mozconfig': 'b2g/config/mozconfigs/macosx64_gecko/debug',
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g/releng_sub_windows_configs/32_debug.py
@@ -0,0 +1,7 @@
+import os
+
+config = {
+ 'stage_platform': 'win32_gecko-debug',
+ 'debug_build': True,
+ 'src_mozconfig': 'b2g/config/mozconfigs/win32_gecko/debug',
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g/taskcluster-emulator.py
@@ -0,0 +1,24 @@
+#!/usr/bin/env python
+config = {
+ "default_vcs": "tc-vcs",
+ "default_actions": [
+ 'checkout-sources',
+ 'build',
+ 'build-symbols',
+ ],
+ "env": {
+ "GAIA_OPTIMIZE": "1",
+ "WGET_OPTS": "-c -q"
+ },
+ "is_automation": True,
+ "repo_remote_mappings": {
+ 'https://android.googlesource.com/': 'https://git.mozilla.org/external/aosp',
+ 'git://codeaurora.org/': 'https://git.mozilla.org/external/caf',
+ 'https://git.mozilla.org/b2g': 'https://git.mozilla.org/b2g',
+ 'git://github.com/mozilla-b2g/': 'https://git.mozilla.org/b2g',
+ 'git://github.com/mozilla/': 'https://git.mozilla.org/b2g',
+ 'https://git.mozilla.org/releases': 'https://git.mozilla.org/releases',
+ 'http://android.git.linaro.org/git-ro/': 'https://git.mozilla.org/external/linaro',
+ 'git://github.com/apitrace/': 'https://git.mozilla.org/external/apitrace',
+ },
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g/taskcluster-phone-ota.py
@@ -0,0 +1,52 @@
+#!/usr/bin/env python
+import os.path
+config = {
+ "default_vcs": "tc-vcs",
+ "default_actions": [
+ 'checkout-sources',
+ 'build',
+ 'build-symbols',
+ 'make-updates',
+ 'prep-upload',
+ 'submit-to-balrog'
+ ],
+ "balrog_credentials_file": "balrog_credentials",
+ "nightly_build": True,
+ "upload": {
+ "default": {
+ "upload_dep_target_exclusions": []
+ }
+ },
+ "upload": {
+ "default": {
+ "ssh_key": os.path.expanduser("~/.ssh/b2g-rsa"),
+ "ssh_user": "",
+ "upload_remote_host": "",
+ "upload_remote_nightly_path": "/srv/ftp/pub/mozilla.org/b2g/nightly/%(branch)s-%(target)s/latest",
+ "upload_remote_path": "/srv/ftp/pub/mozilla.org/b2g/%(target)s/%(branch)s-%(target)s/%(buildid)s",
+ "upload_remote_symlink": "/srv/ftp/pub/mozilla.org/b2g/%(target)s/%(branch)s-%(target)s/latest",
+ },
+ "public": {
+ "ssh_key": os.path.expanduser("~/.ssh/b2g-rsa"),
+ "ssh_user": "",
+ "upload_remote_host": "",
+ "post_upload_cmd": "post_upload.py --tinderbox-builds-dir %(branch)s-%(target)s -p b2g -i %(buildid)s --revision %(revision)s --release-to-tinderbox-dated-builds",
+ "post_upload_nightly_cmd": "post_upload.py --tinderbox-builds-dir %(branch)s-%(target)s -b %(branch)s-%(target)s -p b2g -i %(buildid)s --revision %(revision)s --release-to-tinderbox-dated-builds --release-to-latest --release-to-dated",
+ },
+ },
+ "env": {
+ "GAIA_OPTIMIZE": "1",
+ "WGET_OPTS": "-c -q"
+ },
+ "is_automation": True,
+ "repo_remote_mappings": {
+ 'https://android.googlesource.com/': 'https://git.mozilla.org/external/aosp',
+ 'git://codeaurora.org/': 'https://git.mozilla.org/external/caf',
+ 'https://git.mozilla.org/b2g': 'https://git.mozilla.org/b2g',
+ 'git://github.com/mozilla-b2g/': 'https://git.mozilla.org/b2g',
+ 'git://github.com/mozilla/': 'https://git.mozilla.org/b2g',
+ 'https://git.mozilla.org/releases': 'https://git.mozilla.org/releases',
+ 'http://android.git.linaro.org/git-ro/': 'https://git.mozilla.org/external/linaro',
+ 'git://github.com/apitrace/': 'https://git.mozilla.org/external/apitrace',
+ },
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g/taskcluster-phone.py
@@ -0,0 +1,30 @@
+#!/usr/bin/env python
+config = {
+ "default_vcs": "tc-vcs",
+ "default_actions": [
+ 'checkout-sources',
+ 'build',
+ 'build-symbols',
+ 'prep-upload'
+ ],
+ "upload": {
+ "default": {
+ "upload_dep_target_exclusions": []
+ }
+ },
+ "env": {
+ "GAIA_OPTIMIZE": "1",
+ "WGET_OPTS": "-c -q"
+ },
+ "is_automation": True,
+ "repo_remote_mappings": {
+ 'https://android.googlesource.com/': 'https://git.mozilla.org/external/aosp',
+ 'git://codeaurora.org/': 'https://git.mozilla.org/external/caf',
+ 'https://git.mozilla.org/b2g': 'https://git.mozilla.org/b2g',
+ 'git://github.com/mozilla-b2g/': 'https://git.mozilla.org/b2g',
+ 'git://github.com/mozilla/': 'https://git.mozilla.org/b2g',
+ 'https://git.mozilla.org/releases': 'https://git.mozilla.org/releases',
+ 'http://android.git.linaro.org/git-ro/': 'https://git.mozilla.org/external/linaro',
+ 'git://github.com/apitrace/': 'https://git.mozilla.org/external/apitrace',
+ },
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g/taskcluster-spark-dogfood.py
@@ -0,0 +1,37 @@
+#!/usr/bin/env python
+import os.path
+config = {
+ "default_vcs": "tc-vcs",
+ "default_actions": [
+ 'checkout-sources',
+ 'build',
+ 'build-symbols',
+ 'make-updates',
+ 'prep-upload',
+ 'submit-to-balrog'
+ ],
+ "balrog_credentials_file": "balrog_credentials",
+ "nightly_build": True,
+ "env": {
+ "GAIA_OPTIMIZE": "1",
+ "B2G_UPDATER": "1",
+ "LIGHTSABER": "1",
+ "DOGFOOD": "1",
+ "B2G_UPDATE_CHANNEL": "dogfood",
+ "BOWER_FLAGS": "--allow-root",
+ "B2G_PATH": "%(work_dir)s",
+ "GAIA_DISTRIBUTION_DIR": "%(work_dir)s/gaia/distros/spark",
+ "WGET_OPTS": "-c -q"
+ },
+ "is_automation": True,
+ "repo_remote_mappings": {
+ 'https://android.googlesource.com/': 'https://git.mozilla.org/external/aosp',
+ 'git://codeaurora.org/': 'https://git.mozilla.org/external/caf',
+ 'https://git.mozilla.org/b2g': 'https://git.mozilla.org/b2g',
+ 'git://github.com/mozilla-b2g/': 'https://git.mozilla.org/b2g',
+ 'git://github.com/mozilla/': 'https://git.mozilla.org/b2g',
+ 'https://git.mozilla.org/releases': 'https://git.mozilla.org/releases',
+ 'http://android.git.linaro.org/git-ro/': 'https://git.mozilla.org/external/linaro',
+ 'git://github.com/apitrace/': 'https://git.mozilla.org/external/apitrace',
+ },
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g/taskcluster-spark-ota.py
@@ -0,0 +1,35 @@
+#!/usr/bin/env python
+import os.path
+config = {
+ "default_vcs": "tc-vcs",
+ "default_actions": [
+ 'checkout-sources',
+ 'build',
+ 'build-symbols',
+ 'make-updates',
+ 'prep-upload',
+ 'submit-to-balrog'
+ ],
+ "balrog_credentials_file": "balrog_credentials",
+ "nightly_build": True,
+ "env": {
+ "GAIA_OPTIMIZE": "1",
+ "B2G_UPDATER": "1",
+ "LIGHTSABER": "1",
+ "BOWER_FLAGS": "--allow-root",
+ "B2G_PATH": "%(work_dir)s",
+ "GAIA_DISTRIBUTION_DIR": "%(work_dir)s/gaia/distros/spark",
+ "WGET_OPTS": "-c -q"
+ },
+ "is_automation": True,
+ "repo_remote_mappings": {
+ 'https://android.googlesource.com/': 'https://git.mozilla.org/external/aosp',
+ 'git://codeaurora.org/': 'https://git.mozilla.org/external/caf',
+ 'https://git.mozilla.org/b2g': 'https://git.mozilla.org/b2g',
+ 'git://github.com/mozilla-b2g/': 'https://git.mozilla.org/b2g',
+ 'git://github.com/mozilla/': 'https://git.mozilla.org/b2g',
+ 'https://git.mozilla.org/releases': 'https://git.mozilla.org/releases',
+ 'http://android.git.linaro.org/git-ro/': 'https://git.mozilla.org/external/linaro',
+ 'git://github.com/apitrace/': 'https://git.mozilla.org/external/apitrace',
+ },
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g/taskcluster-spark.py
@@ -0,0 +1,35 @@
+#!/usr/bin/env python
+config = {
+ "default_vcs": "tc-vcs",
+ "default_actions": [
+ 'checkout-sources',
+ 'build',
+ 'build-symbols',
+ 'prep-upload'
+ ],
+ "upload": {
+ "default": {
+ "upload_dep_target_exclusions": []
+ }
+ },
+ "env": {
+ "GAIA_OPTIMIZE": "1",
+ "WGET_OPTS": "-c -q",
+ "LIGHTSABER": "1",
+ "B2G_PATH": "%(work_dir)s",
+ "BOWER_FLAGS": "--allow-root",
+ "GAIA_DISTRIBUTION_DIR": "%(work_dir)s/gaia/distros/spark",
+ "WGET_OPTS": "-c -q",
+ },
+ "is_automation": True,
+ "repo_remote_mappings": {
+ 'https://android.googlesource.com/': 'https://git.mozilla.org/external/aosp',
+ 'git://codeaurora.org/': 'https://git.mozilla.org/external/caf',
+ 'https://git.mozilla.org/b2g': 'https://git.mozilla.org/b2g',
+ 'git://github.com/mozilla-b2g/': 'https://git.mozilla.org/b2g',
+ 'git://github.com/mozilla/': 'https://git.mozilla.org/b2g',
+ 'https://git.mozilla.org/releases': 'https://git.mozilla.org/releases',
+ 'http://android.git.linaro.org/git-ro/': 'https://git.mozilla.org/external/linaro',
+ 'git://github.com/apitrace/': 'https://git.mozilla.org/external/apitrace',
+ },
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g_bumper/master.py
@@ -0,0 +1,96 @@
+#!/usr/bin/env python
+config = {
+ "exes": {
+ # Get around the https warnings
+ "hg": ['/usr/local/bin/hg', "--config", "web.cacerts=/etc/pki/tls/certs/ca-bundle.crt"],
+ "hgtool.py": ["/usr/local/bin/hgtool.py"],
+ "gittool.py": ["/usr/local/bin/gittool.py"],
+ },
+ 'gecko_pull_url': 'https://hg.mozilla.org/integration/b2g-inbound',
+ 'gecko_push_url': 'ssh://hg.mozilla.org/integration/b2g-inbound',
+ 'gecko_local_dir': 'b2g-inbound',
+ 'git_ref_cache': '/builds/b2g_bumper/git_ref_cache.json',
+
+ 'manifests_repo': 'https://git.mozilla.org/b2g/b2g-manifest.git',
+ 'manifests_revision': 'origin/master',
+
+ 'hg_user': 'B2G Bumper Bot <release+b2gbumper@mozilla.com>',
+ "ssh_key": "~/.ssh/ffxbld_rsa",
+ "ssh_user": "ffxbld",
+
+ 'hgtool_base_bundle_urls': ['https://ftp-ssl.mozilla.org/pub/mozilla.org/firefox/bundles'],
+
+ 'gaia_repo_url': 'https://hg.mozilla.org/integration/gaia-central',
+ 'gaia_revision_file': 'b2g/config/gaia.json',
+ 'gaia_max_revisions': 1,
+ # Which git branch this hg repo corresponds to
+ 'gaia_git_branch': 'master',
+ 'gaia_git_repo': 'https://git.mozilla.org/releases/gaia.git',
+ 'gaia_mapper_project': 'gaia',
+ 'mapper_url': 'http://cruncher.build.mozilla.org/mapper/{project}/{vcs}/{rev}',
+
+ 'devices': {
+ 'dolphin': {
+ 'ignore_projects': ['gecko'],
+ 'ignore_groups': ['darwin'],
+ },
+ 'emulator-l': {
+ 'ignore_projects': ['gecko'],
+ 'ignore_groups': ['darwin'],
+ },
+ 'emulator-kk': {
+ 'ignore_projects': ['gecko'],
+ 'ignore_groups': ['darwin'],
+ },
+ 'emulator-jb': {
+ 'ignore_projects': ['gecko'],
+ 'ignore_groups': ['darwin'],
+ },
+ 'emulator-ics': {
+ 'ignore_projects': ['gecko'],
+ 'ignore_groups': ['darwin'],
+ 'manifest_file': 'emulator.xml',
+ },
+ # Equivalent to emulator-ics - see bug 916134
+ # Remove once the above bug resolved
+ 'emulator': {
+ 'ignore_projects': ['gecko'],
+ 'ignore_groups': ['darwin'],
+ 'manifest_file': 'emulator.xml',
+ },
+ 'flame-kk': {
+ 'ignore_projects': ['gecko'],
+ 'ignore_groups': ['darwin'],
+ },
+ 'nexus-4': {
+ 'ignore_projects': ['gecko'],
+ 'ignore_groups': ['darwin'],
+ },
+ 'nexus-5-l': {
+ 'ignore_projects': ['gecko'],
+ 'ignore_groups': ['darwin'],
+ },
+ 'aries': {
+ 'ignore_projects': ['gecko'],
+ 'ignore_groups': ['darwin'],
+ 'manifest_file': 'shinano.xml',
+ },
+ },
+ 'repo_remote_mappings': {
+ 'https://android.googlesource.com/': 'https://git.mozilla.org/external/aosp',
+ 'git://codeaurora.org/': 'https://git.mozilla.org/external/caf',
+ 'git://github.com/mozilla-b2g/': 'https://git.mozilla.org/b2g',
+ 'git://github.com/mozilla/': 'https://git.mozilla.org/b2g',
+ 'https://git.mozilla.org/releases': 'https://git.mozilla.org/releases',
+ 'http://android.git.linaro.org/git-ro/': 'https://git.mozilla.org/external/linaro',
+ 'http://sprdsource.spreadtrum.com:8085/b2g/android': 'https://git.mozilla.org/external/sprd-aosp',
+ 'git://github.com/apitrace/': 'https://git.mozilla.org/external/apitrace',
+ 'git://github.com/t2m-foxfone/': 'https://git.mozilla.org/external/t2m-foxfone',
+ # Some mappings to ourself, we want to leave these as-is!
+ 'https://git.mozilla.org/external/aosp': 'https://git.mozilla.org/external/aosp',
+ 'https://git.mozilla.org/external/caf': 'https://git.mozilla.org/external/caf',
+ 'https://git.mozilla.org/b2g': 'https://git.mozilla.org/b2g',
+ 'https://git.mozilla.org/external/apitrace': 'https://git.mozilla.org/external/apitrace',
+ 'https://git.mozilla.org/external/t2m-foxfone': 'https://git.mozilla.org/external/t2m-foxfone',
+ },
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g_bumper/v2.0.py
@@ -0,0 +1,78 @@
+#!/usr/bin/env python
+config = {
+ "exes": {
+ # Get around the https warnings
+ "hg": ['/usr/local/bin/hg', "--config", "web.cacerts=/etc/pki/tls/certs/ca-bundle.crt"],
+ "hgtool.py": ["/usr/local/bin/hgtool.py"],
+ "gittool.py": ["/usr/local/bin/gittool.py"],
+ },
+ 'gecko_pull_url': 'https://hg.mozilla.org/releases/mozilla-b2g32_v2_0',
+ 'gecko_push_url': 'ssh://hg.mozilla.org/releases/mozilla-b2g32_v2_0',
+ 'gecko_local_dir': 'mozilla-b2g32_v2_0',
+ 'git_ref_cache': '/builds/b2g_bumper/git_ref_cache.json',
+
+ 'manifests_repo': 'https://git.mozilla.org/b2g/b2g-manifest.git',
+ 'manifests_revision': 'origin/v2.0',
+
+ 'hg_user': 'B2G Bumper Bot <release+b2gbumper@mozilla.com>',
+ "ssh_key": "~/.ssh/ffxbld_rsa",
+ "ssh_user": "ffxbld",
+
+ 'hgtool_base_bundle_urls': ['https://ftp-ssl.mozilla.org/pub/mozilla.org/firefox/bundles'],
+
+ 'gaia_repo_url': 'https://hg.mozilla.org/integration/gaia-2_0',
+ 'gaia_revision_file': 'b2g/config/gaia.json',
+ 'gaia_max_revisions': 5,
+ # Which git branch this hg repo corresponds to
+ 'gaia_git_branch': 'v2.0',
+ 'gaia_git_repo': 'https://git.mozilla.org/releases/gaia.git',
+ 'gaia_mapper_project': 'gaia',
+ 'mapper_url': 'http://cruncher.build.mozilla.org/mapper/{project}/{vcs}/{rev}',
+
+ 'devices': {
+ 'emulator-kk': {
+ 'ignore_projects': ['gecko'],
+ 'ignore_groups': ['darwin'],
+ },
+ 'emulator-jb': {
+ 'ignore_projects': ['gecko'],
+ 'ignore_groups': ['darwin'],
+ },
+ 'emulator-ics': {
+ 'ignore_projects': ['gecko'],
+ 'ignore_groups': ['darwin'],
+ 'manifest_file': 'emulator.xml',
+ },
+ # Equivalent to emulator-ics - see bug 916134
+ # Remove once the above bug resolved
+ 'emulator': {
+ 'ignore_projects': ['gecko'],
+ 'ignore_groups': ['darwin'],
+ 'manifest_file': 'emulator.xml',
+ },
+ 'flame-kk': {
+ 'ignore_projects': ['gecko'],
+ 'ignore_groups': ['darwin'],
+ },
+ 'nexus-4': {
+ 'ignore_projects': ['gecko'],
+ 'ignore_groups': ['darwin'],
+ },
+ },
+ 'repo_remote_mappings': {
+ 'https://android.googlesource.com/': 'https://git.mozilla.org/external/aosp',
+ 'git://codeaurora.org/': 'https://git.mozilla.org/external/caf',
+ 'git://github.com/mozilla-b2g/': 'https://git.mozilla.org/b2g',
+ 'git://github.com/mozilla/': 'https://git.mozilla.org/b2g',
+ 'https://git.mozilla.org/releases': 'https://git.mozilla.org/releases',
+ 'http://android.git.linaro.org/git-ro/': 'https://git.mozilla.org/external/linaro',
+ 'git://github.com/apitrace/': 'https://git.mozilla.org/external/apitrace',
+ 'git://github.com/t2m-foxfone/': 'https://git.mozilla.org/external/t2m-foxfone',
+ # Some mappings to ourself, we want to leave these as-is!
+ 'https://git.mozilla.org/external/aosp': 'https://git.mozilla.org/external/aosp',
+ 'https://git.mozilla.org/external/caf': 'https://git.mozilla.org/external/caf',
+ 'https://git.mozilla.org/b2g': 'https://git.mozilla.org/b2g',
+ 'https://git.mozilla.org/external/apitrace': 'https://git.mozilla.org/external/apitrace',
+ 'https://git.mozilla.org/external/t2m-foxfone': 'https://git.mozilla.org/external/t2m-foxfone',
+ },
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g_bumper/v2.1.py
@@ -0,0 +1,83 @@
+#!/usr/bin/env python
+config = {
+ "exes": {
+ # Get around the https warnings
+ "hg": ['/usr/local/bin/hg', "--config", "web.cacerts=/etc/pki/tls/certs/ca-bundle.crt"],
+ "hgtool.py": ["/usr/local/bin/hgtool.py"],
+ "gittool.py": ["/usr/local/bin/gittool.py"],
+ },
+ 'gecko_pull_url': 'https://hg.mozilla.org/releases/mozilla-b2g34_v2_1/',
+ 'gecko_push_url': 'ssh://hg.mozilla.org/releases/mozilla-b2g34_v2_1/',
+ 'gecko_local_dir': 'mozilla-b2g34_v2_1',
+ 'git_ref_cache': '/builds/b2g_bumper/git_ref_cache.json',
+
+ 'manifests_repo': 'https://git.mozilla.org/b2g/b2g-manifest.git',
+ 'manifests_revision': 'origin/v2.1',
+
+ 'hg_user': 'B2G Bumper Bot <release+b2gbumper@mozilla.com>',
+ "ssh_key": "~/.ssh/ffxbld_rsa",
+ "ssh_user": "ffxbld",
+
+ 'hgtool_base_bundle_urls': ['https://ftp-ssl.mozilla.org/pub/mozilla.org/firefox/bundles'],
+
+ 'gaia_repo_url': 'https://hg.mozilla.org/integration/gaia-2_1',
+ 'gaia_revision_file': 'b2g/config/gaia.json',
+ 'gaia_max_revisions': 5,
+ # Which git branch this hg repo corresponds to
+ 'gaia_git_branch': 'v2.1',
+ 'gaia_git_repo': 'https://git.mozilla.org/releases/gaia.git',
+ 'gaia_mapper_project': 'gaia',
+ 'mapper_url': 'http://cruncher.build.mozilla.org/mapper/{project}/{vcs}/{rev}',
+
+ 'devices': {
+ 'dolphin': {
+ 'ignore_projects': ['gecko'],
+ 'ignore_groups': ['darwin'],
+ },
+ 'emulator-kk': {
+ 'ignore_projects': ['gecko'],
+ 'ignore_groups': ['darwin'],
+ },
+ 'emulator-jb': {
+ 'ignore_projects': ['gecko'],
+ 'ignore_groups': ['darwin'],
+ },
+ 'emulator-ics': {
+ 'ignore_projects': ['gecko'],
+ 'ignore_groups': ['darwin'],
+ 'manifest_file': 'emulator.xml',
+ },
+ # Equivalent to emulator-ics - see bug 916134
+ # Remove once the above bug resolved
+ 'emulator': {
+ 'ignore_projects': ['gecko'],
+ 'ignore_groups': ['darwin'],
+ 'manifest_file': 'emulator.xml',
+ },
+ 'flame-kk': {
+ 'ignore_projects': ['gecko'],
+ 'ignore_groups': ['darwin'],
+ },
+ 'nexus-4': {
+ 'ignore_projects': ['gecko'],
+ 'ignore_groups': ['darwin'],
+ },
+ },
+ 'repo_remote_mappings': {
+ 'https://android.googlesource.com/': 'https://git.mozilla.org/external/aosp',
+ 'git://codeaurora.org/': 'https://git.mozilla.org/external/caf',
+ 'git://github.com/mozilla-b2g/': 'https://git.mozilla.org/b2g',
+ 'git://github.com/mozilla/': 'https://git.mozilla.org/b2g',
+ 'https://git.mozilla.org/releases': 'https://git.mozilla.org/releases',
+ 'http://android.git.linaro.org/git-ro/': 'https://git.mozilla.org/external/linaro',
+ 'http://sprdsource.spreadtrum.com:8085/b2g/android': 'https://git.mozilla.org/external/sprd-aosp',
+ 'git://github.com/apitrace/': 'https://git.mozilla.org/external/apitrace',
+ 'git://github.com/t2m-foxfone/': 'https://git.mozilla.org/external/t2m-foxfone',
+ # Some mappings to ourself, we want to leave these as-is!
+ 'https://git.mozilla.org/external/aosp': 'https://git.mozilla.org/external/aosp',
+ 'https://git.mozilla.org/external/caf': 'https://git.mozilla.org/external/caf',
+ 'https://git.mozilla.org/b2g': 'https://git.mozilla.org/b2g',
+ 'https://git.mozilla.org/external/apitrace': 'https://git.mozilla.org/external/apitrace',
+ 'https://git.mozilla.org/external/t2m-foxfone': 'https://git.mozilla.org/external/t2m-foxfone',
+ },
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g_bumper/v2.1s.py
@@ -0,0 +1,87 @@
+#!/usr/bin/env python
+config = {
+ "exes": {
+ # Get around the https warnings
+ "hg": ['/usr/local/bin/hg', "--config", "web.cacerts=/etc/pki/tls/certs/ca-bundle.crt"],
+ "hgtool.py": ["/usr/local/bin/hgtool.py"],
+ "gittool.py": ["/usr/local/bin/gittool.py"],
+ },
+ 'gecko_pull_url': 'https://hg.mozilla.org/releases/mozilla-b2g34_v2_1s/',
+ 'gecko_push_url': 'ssh://hg.mozilla.org/releases/mozilla-b2g34_v2_1s/',
+ 'gecko_local_dir': 'mozilla-b2g34_v2_1s',
+ 'git_ref_cache': '/builds/b2g_bumper/git_ref_cache.json',
+
+ 'manifests_repo': 'https://git.mozilla.org/b2g/b2g-manifest.git',
+ 'manifests_revision': 'origin/v2.1s',
+
+ 'hg_user': 'B2G Bumper Bot <release+b2gbumper@mozilla.com>',
+ "ssh_key": "~/.ssh/ffxbld_rsa",
+ "ssh_user": "ffxbld",
+
+ 'hgtool_base_bundle_urls': ['https://ftp-ssl.mozilla.org/pub/mozilla.org/firefox/bundles'],
+
+ 'gaia_repo_url': 'https://hg.mozilla.org/integration/gaia-2_1s',
+ 'gaia_revision_file': 'b2g/config/gaia.json',
+ 'gaia_max_revisions': 5,
+ # Which git branch this hg repo corresponds to
+ 'gaia_git_branch': 'v2.1s',
+ 'gaia_git_repo': 'https://git.mozilla.org/releases/gaia.git',
+ 'gaia_mapper_project': 'gaia',
+ 'mapper_url': 'http://cruncher.build.mozilla.org/mapper/{project}/{vcs}/{rev}',
+
+ 'devices': {
+ 'dolphin': {
+ 'ignore_projects': ['gecko'],
+ 'ignore_groups': ['darwin'],
+ },
+ 'dolphin-512': {
+ 'ignore_projects': ['gecko'],
+ 'ignore_groups': ['darwin'],
+ },
+ 'emulator-kk': {
+ 'ignore_projects': ['gecko'],
+ 'ignore_groups': ['darwin'],
+ },
+ 'emulator-jb': {
+ 'ignore_projects': ['gecko'],
+ 'ignore_groups': ['darwin'],
+ },
+ 'emulator-ics': {
+ 'ignore_projects': ['gecko'],
+ 'ignore_groups': ['darwin'],
+ 'manifest_file': 'emulator.xml',
+ },
+ # Equivalent to emulator-ics - see bug 916134
+ # Remove once the above bug resolved
+ 'emulator': {
+ 'ignore_projects': ['gecko'],
+ 'ignore_groups': ['darwin'],
+ 'manifest_file': 'emulator.xml',
+ },
+ 'flame-kk': {
+ 'ignore_projects': ['gecko'],
+ 'ignore_groups': ['darwin'],
+ },
+ 'nexus-4': {
+ 'ignore_projects': ['gecko'],
+ 'ignore_groups': ['darwin'],
+ },
+ },
+ 'repo_remote_mappings': {
+ 'https://android.googlesource.com/': 'https://git.mozilla.org/external/aosp',
+ 'git://codeaurora.org/': 'https://git.mozilla.org/external/caf',
+ 'git://github.com/mozilla-b2g/': 'https://git.mozilla.org/b2g',
+ 'git://github.com/mozilla/': 'https://git.mozilla.org/b2g',
+ 'https://git.mozilla.org/releases': 'https://git.mozilla.org/releases',
+ 'http://android.git.linaro.org/git-ro/': 'https://git.mozilla.org/external/linaro',
+ 'http://sprdsource.spreadtrum.com:8085/b2g/android': 'https://git.mozilla.org/external/sprd-aosp',
+ 'git://github.com/apitrace/': 'https://git.mozilla.org/external/apitrace',
+ 'git://github.com/t2m-foxfone/': 'https://git.mozilla.org/external/t2m-foxfone',
+ # Some mappings to ourself, we want to leave these as-is!
+ 'https://git.mozilla.org/external/aosp': 'https://git.mozilla.org/external/aosp',
+ 'https://git.mozilla.org/external/caf': 'https://git.mozilla.org/external/caf',
+ 'https://git.mozilla.org/b2g': 'https://git.mozilla.org/b2g',
+ 'https://git.mozilla.org/external/apitrace': 'https://git.mozilla.org/external/apitrace',
+ 'https://git.mozilla.org/external/t2m-foxfone': 'https://git.mozilla.org/external/t2m-foxfone',
+ },
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/b2g_bumper/v2.2.py
@@ -0,0 +1,91 @@
+#!/usr/bin/env python
+config = {
+ "exes": {
+ # Get around the https warnings
+ "hg": ['/usr/local/bin/hg', "--config", "web.cacerts=/etc/pki/tls/certs/ca-bundle.crt"],
+ "hgtool.py": ["/usr/local/bin/hgtool.py"],
+ "gittool.py": ["/usr/local/bin/gittool.py"],
+ },
+ 'gecko_pull_url': 'https://hg.mozilla.org/releases/mozilla-b2g37_v2_2/',
+ 'gecko_push_url': 'ssh://hg.mozilla.org/releases/mozilla-b2g37_v2_2/',
+ 'gecko_local_dir': 'mozilla-b2g37_v2_2',
+ 'git_ref_cache': '/builds/b2g_bumper/git_ref_cache.json',
+
+ 'manifests_repo': 'https://git.mozilla.org/b2g/b2g-manifest.git',
+ 'manifests_revision': 'origin/v2.2',
+
+ 'hg_user': 'B2G Bumper Bot <release+b2gbumper@mozilla.com>',
+ "ssh_key": "~/.ssh/ffxbld_rsa",
+ "ssh_user": "ffxbld",
+
+ 'hgtool_base_bundle_urls': ['https://ftp-ssl.mozilla.org/pub/mozilla.org/firefox/bundles'],
+
+ 'gaia_repo_url': 'https://hg.mozilla.org/integration/gaia-2_2',
+ 'gaia_revision_file': 'b2g/config/gaia.json',
+ 'gaia_max_revisions': 5,
+ # Which git branch this hg repo corresponds to
+ 'gaia_git_branch': 'v2.2',
+ 'gaia_git_repo': 'https://git.mozilla.org/releases/gaia.git',
+ 'gaia_mapper_project': 'gaia',
+ 'mapper_url': 'http://cruncher.build.mozilla.org/mapper/{project}/{vcs}/{rev}',
+
+ 'devices': {
+ 'dolphin': {
+ 'ignore_projects': ['gecko'],
+ 'ignore_groups': ['darwin'],
+ },
+ 'emulator-l': {
+ 'ignore_projects': ['gecko'],
+ 'ignore_groups': ['darwin'],
+ },
+ 'emulator-kk': {
+ 'ignore_projects': ['gecko'],
+ 'ignore_groups': ['darwin'],
+ },
+ 'emulator-jb': {
+ 'ignore_projects': ['gecko'],
+ 'ignore_groups': ['darwin'],
+ },
+ 'emulator-ics': {
+ 'ignore_projects': ['gecko'],
+ 'ignore_groups': ['darwin'],
+ 'manifest_file': 'emulator.xml',
+ },
+ # Equivalent to emulator-ics - see bug 916134
+ # Remove once the above bug resolved
+ 'emulator': {
+ 'ignore_projects': ['gecko'],
+ 'ignore_groups': ['darwin'],
+ 'manifest_file': 'emulator.xml',
+ },
+ 'flame-kk': {
+ 'ignore_projects': ['gecko'],
+ 'ignore_groups': ['darwin'],
+ },
+ 'nexus-4': {
+ 'ignore_projects': ['gecko'],
+ 'ignore_groups': ['darwin'],
+ },
+ 'nexus-5-l': {
+ 'ignore_projects': ['gecko'],
+ 'ignore_groups': ['darwin'],
+ },
+ },
+ 'repo_remote_mappings': {
+ 'https://android.googlesource.com/': 'https://git.mozilla.org/external/aosp',
+ 'git://codeaurora.org/': 'https://git.mozilla.org/external/caf',
+ 'git://github.com/mozilla-b2g/': 'https://git.mozilla.org/b2g',
+ 'git://github.com/mozilla/': 'https://git.mozilla.org/b2g',
+ 'https://git.mozilla.org/releases': 'https://git.mozilla.org/releases',
+ 'http://android.git.linaro.org/git-ro/': 'https://git.mozilla.org/external/linaro',
+ 'http://sprdsource.spreadtrum.com:8085/b2g/android': 'https://git.mozilla.org/external/sprd-aosp',
+ 'git://github.com/apitrace/': 'https://git.mozilla.org/external/apitrace',
+ 'git://github.com/t2m-foxfone/': 'https://git.mozilla.org/external/t2m-foxfone',
+ # Some mappings to ourself, we want to leave these as-is!
+ 'https://git.mozilla.org/external/aosp': 'https://git.mozilla.org/external/aosp',
+ 'https://git.mozilla.org/external/caf': 'https://git.mozilla.org/external/caf',
+ 'https://git.mozilla.org/b2g': 'https://git.mozilla.org/b2g',
+ 'https://git.mozilla.org/external/apitrace': 'https://git.mozilla.org/external/apitrace',
+ 'https://git.mozilla.org/external/t2m-foxfone': 'https://git.mozilla.org/external/t2m-foxfone',
+ },
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/balrog/docker-worker.py
@@ -0,0 +1,21 @@
+config = {
+ 'balrog_servers': [
+ {
+ 'balrog_api_root': 'http://balrog/api',
+ 'ignore_failures': False,
+ 'url_replacements': [
+ ('http://ftp.mozilla.org/pub/mozilla.org', 'http://download.cdn.mozilla.net/pub/mozilla.org'),
+ ],
+ 'balrog_usernames': {
+ 'b2g': 'b2gbld',
+ 'firefox': 'ffxbld',
+ 'thunderbird': 'tbirdbld',
+ 'mobile': 'ffxbld',
+ 'Fennec': 'ffxbld',
+ 'graphene': 'ffxbld',
+ 'horizon': 'ffxbld',
+ }
+ }
+ ]
+}
+
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/balrog/production.py
@@ -0,0 +1,33 @@
+config = {
+ 'balrog_servers': [
+ {
+ 'balrog_api_root': 'https://aus4-admin.mozilla.org/api',
+ 'ignore_failures': False,
+ 'url_replacements': [
+ ('http://ftp.mozilla.org/pub/mozilla.org', 'http://download.cdn.mozilla.net/pub/mozilla.org'),
+ ],
+ 'balrog_usernames': {
+ 'b2g': 'b2gbld',
+ 'firefox': 'ffxbld',
+ 'thunderbird': 'tbirdbld',
+ 'mobile': 'ffxbld',
+ 'Fennec': 'ffxbld',
+ 'graphene': 'ffxbld',
+ 'horizon': 'ffxbld',
+ }
+ },
+ {
+ 'balrog_api_root': 'https://aus4-admin-dev.allizom.org/api',
+ 'ignore_failures': True,
+ 'balrog_usernames': {
+ 'b2g': 'stage-b2gbld',
+ 'firefox': 'stage-ffxbld',
+ 'thunderbird': 'stage-tbirdbld',
+ 'mobile': 'stage-ffxbld',
+ 'Fennec': 'stage-ffxbld',
+ 'graphene': 'stage-ffxbld',
+ 'horizon': 'stage-ffxbld',
+ }
+ }
+ ]
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/balrog/staging.py
@@ -0,0 +1,17 @@
+config = {
+ 'balrog_servers': [
+ {
+ 'balrog_api_root': 'https://aus4-admin-dev.allizom.org/api',
+ 'ignore_failures': False,
+ 'balrog_usernames': {
+ 'b2g': 'stage-b2gbld',
+ 'firefox': 'stage-ffxbld',
+ 'thunderbird': 'stage-tbirdbld',
+ 'mobile': 'stage-ffxbld',
+ 'Fennec': 'stage-ffxbld',
+ 'graphene': 'stage-ffxbld',
+ 'horizon': 'stage-ffxbld',
+ }
+ }
+ ]
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/branch_specifics.py
@@ -0,0 +1,149 @@
+# this is a dict of branch specific keys/values. As this fills up and more
+# fx build factories are ported, we might deal with this differently
+
+# we should be able to port this in-tree and have the respective repos and
+# revisions handle what goes on in here. Tracking: bug 978510
+
+# example config and explanation of how it works:
+# config = {
+# # if a branch matches a key below, override items in self.config with
+# # items in the key's value.
+# # this override can be done for every platform or at a platform level
+# '<branch-name>': {
+# # global config items (applies to all platforms and build types)
+# 'repo_path': "projects/<branch-name>",
+# 'graph_server_branch_name': "Firefox",
+#
+# # platform config items (applies to specific platforms)
+# 'platform_overrides': {
+# # if a platform matches a key below, override items in
+# # self.config with items in the key's value
+# 'linux64-debug': {
+# 'upload_symbols': False,
+# },
+# 'win64': {
+# 'enable_checktests': False,
+# },
+# }
+# },
+# }
+
+config = {
+ ### release branches
+ "mozilla-central": {
+ "repo_path": 'mozilla-central',
+ "update_channel": "nightly",
+ "graph_server_branch_name": "Firefox",
+ 'use_branch_in_symbols_extra_buildid': False,
+ },
+ 'mozilla-release': {
+ 'repo_path': 'releases/mozilla-release',
+ # TODO I think we can remove update_channel since we don't run
+ # nightlies for mozilla-release
+ 'update_channel': 'release',
+ 'branch_uses_per_checkin_strategy': True,
+ 'use_branch_in_symbols_extra_buildid': False,
+ },
+ 'mozilla-beta': {
+ 'repo_path': 'releases/mozilla-beta',
+ # TODO I think we can remove update_channel since we don't run
+ # nightlies for mozilla-beta
+ 'update_channel': 'beta',
+ 'branch_uses_per_checkin_strategy': True,
+ 'use_branch_in_symbols_extra_buildid': False,
+ },
+ 'mozilla-aurora': {
+ 'repo_path': 'releases/mozilla-aurora',
+ 'update_channel': 'aurora',
+ 'branch_uses_per_checkin_strategy': True,
+ 'use_branch_in_symbols_extra_buildid': False,
+ },
+ 'mozilla-esr31': {
+ 'repo_path': 'releases/mozilla-esr31',
+ 'update_channel': 'nightly-esr31',
+ 'branch_uses_per_checkin_strategy': True,
+ 'use_branch_in_symbols_extra_buildid': False,
+ },
+ 'mozilla-b2g32_v2_0': {
+ 'repo_path': 'releases/mozilla-b2g32_v2_0',
+ 'use_branch_in_symbols_extra_buildid': False,
+ 'update_channel': 'nightly-b2g32',
+ 'graph_server_branch_name': 'Mozilla-B2g32-v2.0',
+ },
+ 'try': {
+ 'repo_path': 'try',
+ 'clone_by_revision': True,
+ 'clone_with_purge': True,
+ 'tinderbox_build_dir': '%(who)s-%(got_revision)s',
+ 'to_tinderbox_dated': False,
+ 'include_post_upload_builddir': True,
+ 'release_to_try_builds': True,
+ 'use_branch_in_symbols_extra_buildid': False,
+ 'stage_username': 'trybld',
+ 'stage_ssh_key': 'trybld_dsa',
+ 'branch_supports_uploadsymbols': False,
+ 'use_clobberer': False,
+ },
+
+ ### project branches
+ 'b2g-inbound': {
+ 'repo_path': 'integration/b2g-inbound',
+ },
+ 'fx-team': {
+ 'repo_path': 'integration/fx-team',
+ },
+ 'gum': {
+ 'branch_uses_per_checkin_strategy': True,
+ },
+ 'mozilla-inbound': {
+ 'repo_path': 'integration/mozilla-inbound',
+ },
+ 'services-central': {
+ 'repo_path': 'services/services-central',
+ },
+ 'ux': {
+ "graph_server_branch_name": "UX",
+ },
+ # When build promotion goes live the mozconfig changes are probably better
+ # expressed once in files like configs/builds/releng_base_windows_32_builds.py
+ 'date': {
+ 'enable_release_promotion': 1,
+ 'platform_overrides': {
+ 'linux': {
+ 'src_mozconfig': 'browser/config/mozconfigs/linux32/beta',
+ },
+ 'linux64': {
+ 'src_mozconfig': 'browser/config/mozconfigs/linux64/beta',
+ },
+ 'macosx64': {
+ 'src_mozconfig': 'browser/config/mozconfigs/macosx-universal/beta',
+ },
+ 'win32': {
+ 'src_mozconfig': 'browser/config/mozconfigs/win32/beta',
+ },
+ 'win64': {
+ 'src_mozconfig': 'browser/config/mozconfigs/win64/beta',
+ },
+ },
+ },
+ 'cypress': {
+ # bug 1164935
+ 'branch_uses_per_checkin_strategy': True,
+ }
+
+ ### other branches that do not require anything special:
+ # 'alder': {},
+ # 'ash': {},
+ # 'birch': {},
+ # 'build-system': {}
+ # 'cedar': {},
+ # 'elm': {},
+ # 'fig': {},
+ # 'graphics': {}
+ # 'holly': {},
+ # 'jamun': {},
+ # 'larch': {},
+ # 'maple': {},
+ # 'oak': {},
+ # 'pine': {}
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/build_pool_specifics.py
@@ -0,0 +1,43 @@
+# this is a dict of pool specific keys/values. As this fills up and more
+# fx build factories are ported, we might deal with this differently
+
+config = {
+ "staging": {
+ # if not clobberer_url, only clobber 'abs_work_dir'
+ # if true: possibly clobber, clobberer, and purge_builds
+ # see PurgeMixin for clobber() conditions
+ 'clobberer_url': 'https://api-pub-build.allizom.org/clobberer/lastclobber',
+ # staging we should use MozillaTest
+ # but in production we let the self.branch decide via
+ # self._query_graph_server_branch_name()
+ "graph_server_branch_name": "MozillaTest",
+ 'graph_server': 'graphs.allizom.org',
+ "hgtool_base_bundle_urls": [
+ 'http://dev-stage01.build.mozilla.org/pub/mozilla'
+ '.org/firefox/bundles',
+ ],
+ 'symbol_server_host': "dev-stage01.srv.releng.scl3.mozilla.com",
+ 'stage_server': 'dev-stage01.srv.releng.scl3.mozilla.com',
+ "sendchange_masters": ["dev-master1.srv.releng.scl3.mozilla.com:9038"],
+ 'taskcluster_index': 'index.garbage.staging',
+ },
+ "production": {
+ # if not clobberer_url, only clobber 'abs_work_dir'
+ # if true: possibly clobber, clobberer, and purge_builds
+ # see PurgeMixin for clobber() conditions
+ 'clobberer_url': 'https://api.pub.build.mozilla.org/clobberer/lastclobber',
+ 'graph_server': 'graphs.mozilla.org',
+ "hgtool_base_bundle_urls": [
+ 'https://ftp-ssl.mozilla.org/pub/mozilla.org/firefox/bundles'
+ ],
+ 'symbol_server_host': "symbolpush.mozilla.org",
+ 'stage_server': 'stage.mozilla.org',
+ "sendchange_masters": ["buildbot-master81.build.mozilla.org:9301"],
+ 'taskcluster_index': 'index',
+ },
+ "taskcluster": {
+ 'graph_server': 'graphs.mozilla.org',
+ 'symbol_server_host': "symbolpush.mozilla.org",
+ 'stage_server': 'stage.mozilla.org',
+ },
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_base_android_64_builds.py
@@ -0,0 +1,106 @@
+import os
+
+config = {
+ #########################################################################
+ ######## ANDROID GENERIC CONFIG KEYS/VAlUES
+
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ 'setup-mock',
+ 'build',
+ 'upload-files',
+ 'sendchange',
+ 'multi-l10n',
+ 'update', # decided by query_is_nightly()
+ ],
+ "buildbot_json_path": "buildprops.json",
+ 'exes': {
+ 'hgtool.py': os.path.join(
+ os.getcwd(), 'build', 'tools', 'buildfarm', 'utils', 'hgtool.py'
+ ),
+ "buildbot": "/tools/buildbot/bin/buildbot",
+ },
+ 'app_ini_path': '%(obj_dir)s/dist/bin/application.ini',
+ # decides whether we want to use moz_sign_cmd in env
+ 'enable_signing': True,
+ 'purge_skip': ['info', 'rel-*:45d', 'tb-rel-*:45d'],
+ 'purge_basedirs': ["/mock/users/cltbld/home/cltbld/build"],
+ # mock shtuff
+ 'mock_mozilla_dir': '/builds/mock_mozilla',
+ 'mock_target': 'mozilla-centos6-x86_64-android',
+ 'mock_files': [
+ ('/home/cltbld/.ssh', '/home/mock_mozilla/.ssh'),
+ ('/home/cltbld/.hgrc', '/builds/.hgrc'),
+ ('/home/cltbld/.boto', '/builds/.boto'),
+ ('/builds/mozilla-api.key', '/builds/mozilla-api.key'),
+ ('/builds/mozilla-fennec-geoloc-api.key', '/builds/mozilla-fennec-geoloc-api.key'),
+ ('/builds/crash-stats-api.token', '/builds/crash-stats-api.token'),
+ ],
+ 'enable_ccache': True,
+ 'vcs_share_base': '/builds/hg-shared',
+ 'objdir': 'obj-firefox',
+ 'tooltool_script': ["/builds/tooltool.py"],
+ 'tooltool_bootstrap': "setup.sh",
+ 'enable_count_ctors': False,
+ 'enable_talos_sendchange': True,
+ 'enable_unittest_sendchange': True,
+ 'multi_locale': True,
+ #########################################################################
+
+
+ #########################################################################
+ 'base_name': 'Android 2.3 %(branch)s',
+ 'platform': 'android',
+ 'stage_platform': 'android',
+ 'stage_product': 'mobile',
+ 'post_upload_include_platform': True,
+ 'enable_max_vsize': False,
+ 'use_package_as_marfile': True,
+ 'env': {
+ 'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+ 'MOZ_AUTOMATION': '1',
+ 'DISPLAY': ':2',
+ 'HG_SHARE_BASE_DIR': '/builds/hg-shared',
+ 'MOZ_OBJDIR': 'obj-firefox',
+ # SYMBOL_SERVER_HOST is dictated from build_pool_specifics.py
+ 'SYMBOL_SERVER_HOST': '%(symbol_server_host)s',
+ 'SYMBOL_SERVER_SSH_KEY': "/home/mock_mozilla/.ssh/ffxbld_rsa",
+ 'SYMBOL_SERVER_USER': 'ffxbld',
+ 'SYMBOL_SERVER_PATH': '/mnt/netapp/breakpad/symbols_ffx/',
+ 'POST_SYMBOL_UPLOAD_CMD': '/usr/local/bin/post-symbol-upload.py',
+ 'TINDERBOX_OUTPUT': '1',
+ 'TOOLTOOL_CACHE': '/builds/tooltool_cache',
+ 'TOOLTOOL_HOME': '/builds',
+ 'CCACHE_DIR': '/builds/ccache',
+ 'CCACHE_COMPRESS': '1',
+ 'CCACHE_UMASK': '002',
+ 'LC_ALL': 'C',
+ 'PATH': '/tools/buildbot/bin:/usr/local/bin:/bin:/usr/bin',
+ 'SHIP_LICENSED_FONTS': '1',
+ },
+ 'upload_env': {
+ # stage_server is dictated from build_pool_specifics.py
+ 'UPLOAD_HOST': '%(stage_server)s',
+ 'UPLOAD_USER': '%(stage_username)s',
+ 'UPLOAD_SSH_KEY': '/home/mock_mozilla/.ssh/%(stage_ssh_key)s',
+ 'UPLOAD_TO_TEMP': '1',
+ },
+ "check_test_env": {
+ 'MINIDUMP_STACKWALK': '%(abs_tools_dir)s/breakpad/linux/minidump_stackwalk',
+ 'MINIDUMP_SAVE_PATH': '%(base_work_dir)s/minidumps',
+ },
+ 'purge_minsize': 12,
+ 'mock_packages': ['autoconf213', 'mozilla-python27-mercurial', 'yasm',
+ 'ccache', 'zip', "gcc472_0moz1", "gcc473_0moz1",
+ 'java-1.7.0-openjdk-devel', 'zlib-devel',
+ 'glibc-static', 'openssh-clients', 'mpfr',
+ 'wget', 'glibc.i686', 'libstdc++.i686',
+ 'zlib.i686', 'freetype-2.3.11-6.el6_1.8.x86_64',
+ 'ant', 'ant-apache-regexp'
+ ],
+ 'src_mozconfig': 'mobile/android/config/mozconfigs/android/nightly',
+ 'tooltool_manifest_src': "mobile/android/config/tooltool-manifests/android/releng.manifest",
+ #########################################################################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_base_linux_32_builds.py
@@ -0,0 +1,154 @@
+import os
+
+config = {
+ #########################################################################
+ ######## LINUX GENERIC CONFIG KEYS/VAlUES
+ # if you are updating this with custom 32 bit keys/values please add them
+ # below under the '32 bit specific' code block otherwise, update in this
+ # code block and also make sure this is synced with
+ # releng_base_linux_64_builds.py
+
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ 'setup-mock',
+ 'build',
+ 'upload-files',
+ 'sendchange',
+ 'check-test',
+ 'generate-build-stats',
+ 'update', # decided by query_is_nightly()
+ ],
+ "buildbot_json_path": "buildprops.json",
+ 'exes': {
+ 'hgtool.py': os.path.join(
+ os.getcwd(), 'build', 'tools', 'buildfarm', 'utils', 'hgtool.py'
+ ),
+ "buildbot": "/tools/buildbot/bin/buildbot",
+ },
+ 'app_ini_path': '%(obj_dir)s/dist/bin/application.ini',
+ # decides whether we want to use moz_sign_cmd in env
+ 'enable_signing': True,
+ 'purge_skip': ['info', 'rel-*:45d', 'tb-rel-*:45d'],
+ 'purge_basedirs': ["/mock/users/cltbld/home/cltbld/build"],
+ # mock shtuff
+ 'mock_mozilla_dir': '/builds/mock_mozilla',
+ 'mock_target': 'mozilla-centos6-x86_64',
+ 'mock_files': [
+ ('/home/cltbld/.ssh', '/home/mock_mozilla/.ssh'),
+ ('/home/cltbld/.hgrc', '/builds/.hgrc'),
+ ('/home/cltbld/.boto', '/builds/.boto'),
+ ('/builds/gapi.data', '/builds/gapi.data'),
+ ('/builds/relengapi.tok', '/builds/relengapi.tok'),
+ ('/tools/tooltool.py', '/builds/tooltool.py'),
+ ('/builds/mozilla-desktop-geoloc-api.key', '/builds/mozilla-desktop-geoloc-api.key'),
+ ('/builds/crash-stats-api.token', '/builds/crash-stats-api.token'),
+ ('/builds/adjust-sdk.token', '/builds/adjust-sdk.token'),
+ ],
+ 'enable_ccache': True,
+ 'vcs_share_base': '/builds/hg-shared',
+ 'objdir': 'obj-firefox',
+ 'tooltool_script': ["/builds/tooltool.py"],
+ 'tooltool_bootstrap': "setup.sh",
+ 'enable_count_ctors': True,
+ 'enable_talos_sendchange': True,
+ 'enable_unittest_sendchange': True,
+ #########################################################################
+
+
+ #########################################################################
+ ###### 32 bit specific ######
+ 'base_name': 'Linux_%(branch)s',
+ 'platform': 'linux',
+ 'stage_platform': 'linux',
+ 'env': {
+ 'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+ 'MOZ_AUTOMATION': '1',
+ 'DISPLAY': ':2',
+ 'HG_SHARE_BASE_DIR': '/builds/hg-shared',
+ 'MOZ_OBJDIR': 'obj-firefox',
+ # SYMBOL_SERVER_HOST is dictated from build_pool_specifics.py
+ 'SYMBOL_SERVER_HOST': '%(symbol_server_host)s',
+ 'SYMBOL_SERVER_SSH_KEY': "/home/mock_mozilla/.ssh/ffxbld_rsa",
+ 'SYMBOL_SERVER_USER': 'ffxbld',
+ 'SYMBOL_SERVER_PATH': '/mnt/netapp/breakpad/symbols_ffx/',
+ 'POST_SYMBOL_UPLOAD_CMD': '/usr/local/bin/post-symbol-upload.py',
+ 'TINDERBOX_OUTPUT': '1',
+ 'TOOLTOOL_CACHE': '/builds/tooltool_cache',
+ 'TOOLTOOL_HOME': '/builds',
+ 'MOZ_CRASHREPORTER_NO_REPORT': '1',
+ 'CCACHE_DIR': '/builds/ccache',
+ 'CCACHE_COMPRESS': '1',
+ 'CCACHE_UMASK': '002',
+ 'LC_ALL': 'C',
+ # 32 bit specific
+ 'PATH': '/tools/buildbot/bin:/usr/local/bin:/usr/lib/ccache:\
+/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/tools/git/bin:\
+/tools/python27/bin:/tools/python27-mercurial/bin:/home/cltbld/bin',
+ 'LD_LIBRARY_PATH': "/tools/gcc-4.3.3/installed/lib",
+ },
+ 'upload_env': {
+ # stage_server is dictated from build_pool_specifics.py
+ 'UPLOAD_HOST': '%(stage_server)s',
+ 'UPLOAD_USER': '%(stage_username)s',
+ 'UPLOAD_SSH_KEY': '/home/mock_mozilla/.ssh/%(stage_ssh_key)s',
+ 'UPLOAD_TO_TEMP': '1',
+ },
+ "check_test_env": {
+ 'MINIDUMP_STACKWALK': '%(abs_tools_dir)s/breakpad/linux/minidump_stackwalk',
+ 'MINIDUMP_SAVE_PATH': '%(base_work_dir)s/minidumps',
+ },
+ 'purge_minsize': 12,
+ 'mock_packages': [
+ 'autoconf213', 'python', 'mozilla-python27', 'zip', 'mozilla-python27-mercurial',
+ 'git', 'ccache', 'perl-Test-Simple', 'perl-Config-General',
+ 'yasm', 'wget',
+ 'mpfr', # required for system compiler
+ 'xorg-x11-font*', # fonts required for PGO
+ 'imake', # required for makedepend!?!
+ ### <-- from releng repo
+ 'gcc45_0moz3', 'gcc454_0moz1', 'gcc472_0moz1', 'gcc473_0moz1',
+ 'yasm', 'ccache',
+ ###
+ 'valgrind',
+ ######## 32 bit specific ###########
+ 'glibc-static.i686', 'libstdc++-static.i686',
+ 'gtk2-devel.i686', 'libnotify-devel.i686',
+ 'alsa-lib-devel.i686', 'libcurl-devel.i686',
+ 'wireless-tools-devel.i686', 'libX11-devel.i686',
+ 'libXt-devel.i686', 'mesa-libGL-devel.i686',
+ 'gnome-vfs2-devel.i686', 'GConf2-devel.i686',
+ 'pulseaudio-libs-devel.i686',
+ 'gstreamer-devel.i686', 'gstreamer-plugins-base-devel.i686',
+ # Packages already installed in the mock environment, as x86_64
+ # packages.
+ 'glibc-devel.i686', 'libgcc.i686', 'libstdc++-devel.i686',
+ # yum likes to install .x86_64 -devel packages that satisfy .i686
+ # -devel packages dependencies. So manually install the dependencies
+ # of the above packages.
+ 'ORBit2-devel.i686', 'atk-devel.i686', 'cairo-devel.i686',
+ 'check-devel.i686', 'dbus-devel.i686', 'dbus-glib-devel.i686',
+ 'fontconfig-devel.i686', 'glib2-devel.i686',
+ 'hal-devel.i686', 'libICE-devel.i686', 'libIDL-devel.i686',
+ 'libSM-devel.i686', 'libXau-devel.i686', 'libXcomposite-devel.i686',
+ 'libXcursor-devel.i686', 'libXdamage-devel.i686',
+ 'libXdmcp-devel.i686', 'libXext-devel.i686', 'libXfixes-devel.i686',
+ 'libXft-devel.i686', 'libXi-devel.i686', 'libXinerama-devel.i686',
+ 'libXrandr-devel.i686', 'libXrender-devel.i686',
+ 'libXxf86vm-devel.i686', 'libdrm-devel.i686', 'libidn-devel.i686',
+ 'libpng-devel.i686', 'libxcb-devel.i686', 'libxml2-devel.i686',
+ 'pango-devel.i686', 'perl-devel.i686', 'pixman-devel.i686',
+ 'zlib-devel.i686',
+ # Freetype packages need to be installed be version, because a newer
+ # version is available, but we don't want it for Firefox builds.
+ 'freetype-2.3.11-6.el6_1.8.i686',
+ 'freetype-devel-2.3.11-6.el6_1.8.i686',
+ 'freetype-2.3.11-6.el6_1.8.x86_64',
+ ######## 32 bit specific ###########
+ ],
+ 'src_mozconfig': 'browser/config/mozconfigs/linux32/nightly',
+ 'tooltool_manifest_src': "browser/config/tooltool-manifests/linux32/\
+releng.manifest",
+ #########################################################################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_base_linux_64_builds.py
@@ -0,0 +1,135 @@
+import os
+
+config = {
+ #########################################################################
+ ######## LINUX GENERIC CONFIG KEYS/VAlUES
+ # if you are updating this with custom 64 bit keys/values please add them
+ # below under the '64 bit specific' code block otherwise, update in this
+ # code block and also make sure this is synced with
+ # releng_base_linux_64_builds.py
+
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ 'setup-mock',
+ 'build',
+ 'upload-files',
+ 'sendchange',
+ 'check-test',
+ 'generate-build-stats',
+ 'update', # decided by query_is_nightly()
+ ],
+ "buildbot_json_path": "buildprops.json",
+ 'exes': {
+ 'hgtool.py': os.path.join(
+ os.getcwd(), 'build', 'tools', 'buildfarm', 'utils', 'hgtool.py'
+ ),
+ "buildbot": "/tools/buildbot/bin/buildbot",
+ },
+ 'app_ini_path': '%(obj_dir)s/dist/bin/application.ini',
+ # decides whether we want to use moz_sign_cmd in env
+ 'enable_signing': True,
+ 'purge_skip': ['info', 'rel-*:45d', 'tb-rel-*:45d'],
+ 'purge_basedirs': ["/mock/users/cltbld/home/cltbld/build"],
+ # mock shtuff
+ 'mock_mozilla_dir': '/builds/mock_mozilla',
+ 'mock_target': 'mozilla-centos6-x86_64',
+ 'mock_files': [
+ ('/home/cltbld/.ssh', '/home/mock_mozilla/.ssh'),
+ ('/home/cltbld/.hgrc', '/builds/.hgrc'),
+ ('/home/cltbld/.boto', '/builds/.boto'),
+ ('/builds/gapi.data', '/builds/gapi.data'),
+ ('/builds/relengapi.tok', '/builds/relengapi.tok'),
+ ('/tools/tooltool.py', '/builds/tooltool.py'),
+ ('/builds/mozilla-desktop-geoloc-api.key', '/builds/mozilla-desktop-geoloc-api.key'),
+ ('/builds/crash-stats-api.token', '/builds/crash-stats-api.token'),
+ ('/builds/adjust-sdk.token', '/builds/adjust-sdk.token'),
+ ],
+ 'enable_ccache': True,
+ 'vcs_share_base': '/builds/hg-shared',
+ 'objdir': 'obj-firefox',
+ 'tooltool_script': ["/builds/tooltool.py"],
+ 'tooltool_bootstrap': "setup.sh",
+ 'enable_count_ctors': True,
+ 'enable_talos_sendchange': True,
+ 'enable_unittest_sendchange': True,
+ #########################################################################
+
+
+ #########################################################################
+ ###### 64 bit specific ######
+ 'base_name': 'Linux_x86-64_%(branch)s',
+ 'platform': 'linux64',
+ 'stage_platform': 'linux64',
+ 'use_platform_in_symbols_extra_buildid': True,
+ 'env': {
+ 'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+ 'MOZ_AUTOMATION': '1',
+ 'DISPLAY': ':2',
+ 'HG_SHARE_BASE_DIR': '/builds/hg-shared',
+ 'MOZ_OBJDIR': 'obj-firefox',
+ # SYMBOL_SERVER_HOST is dictated from build_pool_specifics.py
+ 'SYMBOL_SERVER_HOST': '%(symbol_server_host)s',
+ 'SYMBOL_SERVER_SSH_KEY': "/home/mock_mozilla/.ssh/ffxbld_rsa",
+ 'SYMBOL_SERVER_USER': 'ffxbld',
+ 'SYMBOL_SERVER_PATH': '/mnt/netapp/breakpad/symbols_ffx/',
+ 'POST_SYMBOL_UPLOAD_CMD': '/usr/local/bin/post-symbol-upload.py',
+ 'TINDERBOX_OUTPUT': '1',
+ 'TOOLTOOL_CACHE': '/builds/tooltool_cache',
+ 'TOOLTOOL_HOME': '/builds',
+ 'MOZ_CRASHREPORTER_NO_REPORT': '1',
+ 'CCACHE_DIR': '/builds/ccache',
+ 'CCACHE_COMPRESS': '1',
+ 'CCACHE_UMASK': '002',
+ 'LC_ALL': 'C',
+ ## 64 bit specific
+ 'PATH': '/tools/buildbot/bin:/usr/local/bin:/usr/lib64/ccache:/bin:\
+/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/tools/git/bin:/tools/python27/bin:\
+/tools/python27-mercurial/bin:/home/cltbld/bin',
+ 'LD_LIBRARY_PATH': "/tools/gcc-4.3.3/installed/lib64",
+ ##
+ },
+ 'upload_env': {
+ # stage_server is dictated from build_pool_specifics.py
+ 'UPLOAD_HOST': '%(stage_server)s',
+ 'UPLOAD_USER': '%(stage_username)s',
+ 'UPLOAD_SSH_KEY': '/home/mock_mozilla/.ssh/%(stage_ssh_key)s',
+ 'UPLOAD_TO_TEMP': '1',
+ },
+ "check_test_env": {
+ 'MINIDUMP_STACKWALK': '%(abs_tools_dir)s/breakpad/linux64/minidump_stackwalk',
+ 'MINIDUMP_SAVE_PATH': '%(base_work_dir)s/minidumps',
+ },
+ 'purge_minsize': 14,
+ 'mock_packages': [
+ 'autoconf213', 'python', 'mozilla-python27', 'zip', 'mozilla-python27-mercurial',
+ 'git', 'ccache', 'perl-Test-Simple', 'perl-Config-General',
+ 'yasm', 'wget',
+ 'mpfr', # required for system compiler
+ 'xorg-x11-font*', # fonts required for PGO
+ 'imake', # required for makedepend!?!
+ ### <-- from releng repo
+ 'gcc45_0moz3', 'gcc454_0moz1', 'gcc472_0moz1', 'gcc473_0moz1',
+ 'yasm', 'ccache',
+ ###
+ 'valgrind', 'dbus-x11',
+ ######## 64 bit specific ###########
+ 'glibc-static', 'libstdc++-static',
+ 'gtk2-devel', 'libnotify-devel',
+ 'alsa-lib-devel', 'libcurl-devel', 'wireless-tools-devel',
+ 'libX11-devel', 'libXt-devel', 'mesa-libGL-devel', 'gnome-vfs2-devel',
+ 'GConf2-devel',
+ ### from releng repo
+ 'gcc45_0moz3', 'gcc454_0moz1', 'gcc472_0moz1', 'gcc473_0moz1',
+ 'yasm', 'ccache',
+ ###
+ 'pulseaudio-libs-devel', 'gstreamer-devel',
+ 'gstreamer-plugins-base-devel', 'freetype-2.3.11-6.el6_1.8.x86_64',
+ 'freetype-devel-2.3.11-6.el6_1.8.x86_64'
+ ],
+ 'src_mozconfig': 'browser/config/mozconfigs/linux64/nightly',
+ 'tooltool_manifest_src': "browser/config/tooltool-manifests/linux64/\
+releng.manifest",
+ #########################################################################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_base_mac_64_builds.py
@@ -0,0 +1,91 @@
+import os
+import sys
+
+config = {
+ #########################################################################
+ ######## MACOSX GENERIC CONFIG KEYS/VAlUES
+
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ # 'setup-mock',
+ 'checkout-sources',
+ 'build',
+ 'upload-files',
+ 'sendchange',
+ 'check-test',
+ 'generate-build-stats',
+ 'update', # decided by query_is_nightly()
+ ],
+ "buildbot_json_path": "buildprops.json",
+ 'exes': {
+ 'python2.7': sys.executable,
+ 'hgtool.py': os.path.join(
+ os.getcwd(), 'build', 'tools', 'buildfarm', 'utils', 'hgtool.py'
+ ),
+ "buildbot": "/tools/buildbot/bin/buildbot",
+ },
+ 'app_ini_path': '%(obj_dir)s/dist/bin/application.ini',
+ # decides whether we want to use moz_sign_cmd in env
+ 'enable_signing': True,
+ 'purge_skip': ['info', 'rel-*:45d', 'tb-rel-*:45d'],
+ 'purge_basedirs': [],
+ 'enable_ccache': True,
+ 'vcs_share_base': '/builds/hg-shared',
+ 'objdir': 'obj-firefox/i386',
+ 'tooltool_script': ["/builds/tooltool.py"],
+ 'tooltool_bootstrap': "setup.sh",
+ 'enable_count_ctors': False,
+ 'enable_talos_sendchange': True,
+ 'enable_unittest_sendchange': True,
+ #########################################################################
+
+
+ #########################################################################
+ ###### 64 bit specific ######
+ 'base_name': 'OS X 10.7 %(branch)s',
+ 'platform': 'macosx64',
+ 'stage_platform': 'macosx64',
+ 'use_platform_in_symbols_extra_buildid': True,
+ 'env': {
+ 'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+ 'MOZ_AUTOMATION': '1',
+ 'HG_SHARE_BASE_DIR': '/builds/hg-shared',
+ 'MOZ_OBJDIR': 'obj-firefox',
+ # SYMBOL_SERVER_HOST is dictated from build_pool_specifics.py
+ 'SYMBOL_SERVER_HOST': '%(symbol_server_host)s',
+ 'SYMBOL_SERVER_SSH_KEY': "/Users/cltbld/.ssh/ffxbld_rsa",
+ 'SYMBOL_SERVER_USER': 'ffxbld',
+ 'SYMBOL_SERVER_PATH': '/mnt/netapp/breakpad/symbols_ffx/',
+ 'POST_SYMBOL_UPLOAD_CMD': '/usr/local/bin/post-symbol-upload.py',
+ 'CHOWN_ROOT': '~/bin/chown_root',
+ 'CHOWN_REVERT': '~/bin/chown_revert',
+ 'TINDERBOX_OUTPUT': '1',
+ 'TOOLTOOL_CACHE': '/builds/tooltool_cache',
+ 'TOOLTOOL_HOME': '/builds',
+ 'MOZ_CRASHREPORTER_NO_REPORT': '1',
+ 'CCACHE_DIR': '/builds/ccache',
+ 'CCACHE_COMPRESS': '1',
+ 'CCACHE_UMASK': '002',
+ 'LC_ALL': 'C',
+ ## 64 bit specific
+ 'PATH': '/tools/python/bin:/tools/buildbot/bin:/opt/local/bin:/usr/bin:'
+ '/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin',
+ ##
+ },
+ 'upload_env': {
+ # stage_server is dictated from build_pool_specifics.py
+ 'UPLOAD_HOST': '%(stage_server)s',
+ 'UPLOAD_USER': '%(stage_username)s',
+ 'UPLOAD_SSH_KEY': '/Users/cltbld/.ssh/%(stage_ssh_key)s',
+ 'UPLOAD_TO_TEMP': '1',
+ },
+ "check_test_env": {
+ 'MINIDUMP_STACKWALK': '%(abs_tools_dir)s/breakpad/osx64/minidump_stackwalk',
+ 'MINIDUMP_SAVE_PATH': '%(base_work_dir)s/minidumps',
+ },
+ 'purge_minsize': 12,
+ 'src_mozconfig': 'browser/config/mozconfigs/macosx-universal/nightly',
+ 'tooltool_manifest_src': 'browser/config/tooltool-manifests/macosx64/releng.manifest',
+ #########################################################################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_base_windows_32_builds.py
@@ -0,0 +1,113 @@
+import os
+import sys
+
+config = {
+ #########################################################################
+ ######## WINDOWS GENERIC CONFIG KEYS/VAlUES
+ # if you are updating this with custom 32 bit keys/values please add them
+ # below under the '32 bit specific' code block otherwise, update in this
+ # code block and also make sure this is synced with
+ # releng_base_windows_64_builds.py
+
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ # 'setup-mock', windows do not use mock
+ 'build',
+ 'upload-files',
+ 'sendchange',
+ 'check-test',
+ 'generate-build-stats',
+ 'update', # decided by query_is_nightly()
+ ],
+ "buildbot_json_path": "buildprops.json",
+ 'exes': {
+ 'python2.7': sys.executable,
+ 'hgtool.py': [
+ sys.executable,
+ os.path.join(
+ os.getcwd(), 'build', 'tools', 'buildfarm', 'utils', 'hgtool.py'
+ )
+ ],
+ "buildbot": {
+ 'gpo_location': [
+ sys.executable,
+ 'c:\\mozilla-build\\buildbotve\\scripts\\buildbot'
+ ],
+ 'puppet_location': [
+ sys.executable,
+ 'c:\\mozilla-build\\buildbot-0.8.4-pre-moz6\\scripts\\buildbot'
+ ]
+ },
+ "make": [
+ sys.executable,
+ os.path.join(
+ os.getcwd(), 'build', 'src', 'build', 'pymake', 'make.py'
+ )
+ ],
+ 'virtualenv': [
+ sys.executable,
+ 'c:/mozilla-build/buildbotve/virtualenv.py'
+ ],
+ },
+ 'app_ini_path': '%(obj_dir)s/dist/bin/application.ini',
+ # decides whether we want to use moz_sign_cmd in env
+ 'enable_signing': True,
+ 'purge_skip': ['info', 'rel-*:45d', 'tb-rel-*:45d'],
+ 'purge_basedirs': [],
+ 'enable_ccache': False,
+ 'vcs_share_base': 'C:/builds/hg-shared',
+ 'objdir': 'obj-firefox',
+ 'tooltool_script': [sys.executable,
+ 'C:/mozilla-build/tooltool.py'],
+ 'tooltool_bootstrap': "setup.sh",
+ 'enable_count_ctors': False,
+ 'enable_talos_sendchange': True,
+ 'enable_unittest_sendchange': True,
+ 'max_build_output_timeout': 60 * 80,
+ #########################################################################
+
+
+ #########################################################################
+ ###### 32 bit specific ######
+ 'base_name': 'WINNT_5.2_%(branch)s',
+ 'platform': 'win32',
+ 'stage_platform': 'win32',
+ 'env': {
+ 'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+ 'MOZ_AUTOMATION': '1',
+ 'BINSCOPE': 'C:/Program Files (x86)/Microsoft/SDL BinScope/BinScope.exe',
+ 'HG_SHARE_BASE_DIR': 'C:/builds/hg-shared',
+ 'MOZ_CRASHREPORTER_NO_REPORT': '1',
+ 'MOZ_OBJDIR': 'obj-firefox',
+ 'PATH': 'C:/mozilla-build/nsis-3.0b1;C:/mozilla-build/nsis-2.46u;C:/mozilla-build/python27;'
+ 'C:/mozilla-build/buildbotve/scripts;'
+ '%s' % (os.environ.get('path')),
+ 'PDBSTR_PATH': '/c/Program Files (x86)/Windows Kits/8.0/Debuggers/x64/srcsrv/pdbstr.exe',
+ 'PROPERTIES_FILE': os.path.join(os.getcwd(), 'buildprops.json'),
+ # SYMBOL_SERVER_HOST is dictated from build_pool_specifics.py
+ 'SYMBOL_SERVER_HOST': '%(symbol_server_host)s',
+ 'SYMBOL_SERVER_SSH_KEY': '/c/Users/cltbld/.ssh/ffxbld_rsa',
+ 'SYMBOL_SERVER_USER': 'ffxbld',
+ 'SYMBOL_SERVER_PATH': '/mnt/netapp/breakpad/symbols_ffx/',
+ 'POST_SYMBOL_UPLOAD_CMD': '/usr/local/bin/post-symbol-upload.py',
+ 'TINDERBOX_OUTPUT': '1',
+ },
+ 'upload_env': {
+ # stage_server is dictated from build_pool_specifics.py
+ 'UPLOAD_HOST': '%(stage_server)s',
+ 'UPLOAD_USER': '%(stage_username)s',
+ 'UPLOAD_SSH_KEY': '/c/Users/cltbld/.ssh/%(stage_ssh_key)s',
+ 'UPLOAD_TO_TEMP': '1',
+ },
+ "check_test_env": {
+ 'MINIDUMP_STACKWALK': '%(abs_tools_dir)s/breakpad/win32/minidump_stackwalk.exe',
+ 'MINIDUMP_SAVE_PATH': '%(base_work_dir)s/minidumps',
+ },
+ 'enable_pymake': True,
+ 'purge_minsize': 12,
+ 'src_mozconfig': 'browser/config/mozconfigs/win32/nightly',
+ 'tooltool_manifest_src': "browser/config/tooltool-manifests/win32/releng.manifest",
+ #########################################################################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_base_windows_64_builds.py
@@ -0,0 +1,111 @@
+import os
+import sys
+
+config = {
+ #########################################################################
+ ######## WINDOWS GENERIC CONFIG KEYS/VAlUES
+ # if you are updating this with custom 32 bit keys/values please add them
+ # below under the '32 bit specific' code block otherwise, update in this
+ # code block and also make sure this is synced with
+ # releng_base_windows_64_builds.py
+
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ # 'setup-mock', windows do not use mock
+ 'build',
+ 'upload-files',
+ 'sendchange',
+ 'check-test',
+ 'generate-build-stats',
+ 'update', # decided by query_is_nightly()
+ ],
+ "buildbot_json_path": "buildprops.json",
+ 'exes': {
+ 'python2.7': sys.executable,
+ 'hgtool.py': [
+ sys.executable,
+ os.path.join(
+ os.getcwd(), 'build', 'tools', 'buildfarm', 'utils', 'hgtool.py'
+ )
+ ],
+ "buildbot": {
+ 'gpo_location': [
+ sys.executable,
+ 'c:\\mozilla-build\\buildbotve\\scripts\\buildbot'
+ ],
+ 'puppet_location': [
+ sys.executable,
+ 'c:\\mozilla-build\\buildbot-0.8.4-pre-moz6\\scripts\\buildbot'
+ ]
+ },
+ "make": [
+ sys.executable,
+ os.path.join(
+ os.getcwd(), 'build', 'src', 'build', 'pymake', 'make.py'
+ )
+ ],
+ 'virtualenv': [
+ sys.executable,
+ 'c:/mozilla-build/buildbotve/virtualenv.py'
+ ],
+ },
+ 'app_ini_path': '%(obj_dir)s/dist/bin/application.ini',
+ # decides whether we want to use moz_sign_cmd in env
+ 'enable_signing': True,
+ 'purge_skip': ['info', 'rel-*:45d', 'tb-rel-*:45d'],
+ 'purge_basedirs': [],
+ 'enable_ccache': False,
+ 'vcs_share_base': 'C:/builds/hg-shared',
+ 'objdir': 'obj-firefox',
+ 'tooltool_script': [sys.executable,
+ 'C:/mozilla-build/tooltool.py'],
+ 'tooltool_bootstrap': "setup.sh",
+ 'enable_count_ctors': False,
+ 'enable_talos_sendchange': True,
+ 'enable_unittest_sendchange': True,
+ 'max_build_output_timeout': 60 * 80,
+ #########################################################################
+
+
+ #########################################################################
+ ###### 64 bit specific ######
+ 'base_name': 'WINNT_6.1_x86-64_%(branch)s',
+ 'platform': 'win64',
+ 'stage_platform': 'win64',
+ 'env': {
+ 'MOZ_SYMBOLS_EXTRA_BUILDID': 'win64',
+ 'MOZ_AUTOMATION': '1',
+ 'HG_SHARE_BASE_DIR': 'C:/builds/hg-shared',
+ 'MOZ_CRASHREPORTER_NO_REPORT': '1',
+ 'MOZ_OBJDIR': 'obj-firefox',
+ 'PATH': 'C:/mozilla-build/python27;C:/mozilla-build/buildbotve/scripts;'
+ '%s' % (os.environ.get('path')),
+ 'PDBSTR_PATH': '/c/Program Files (x86)/Windows Kits/8.0/Debuggers/x64/srcsrv/pdbstr.exe',
+ 'PROPERTIES_FILE': os.path.join(os.getcwd(), 'buildprops.json'),
+ # SYMBOL_SERVER_HOST is dictated from build_pool_specifics.py
+ 'SYMBOL_SERVER_HOST': '%(symbol_server_host)s',
+ 'SYMBOL_SERVER_SSH_KEY': '/c/Users/cltbld/.ssh/ffxbld_rsa',
+ 'SYMBOL_SERVER_USER': 'ffxbld',
+ 'SYMBOL_SERVER_PATH': '/mnt/netapp/breakpad/symbols_ffx/',
+ 'POST_SYMBOL_UPLOAD_CMD': '/usr/local/bin/post-symbol-upload.py',
+ 'TINDERBOX_OUTPUT': '1',
+ },
+ 'upload_env': {
+ # stage_server is dictated from build_pool_specifics.py
+ 'UPLOAD_HOST': '%(stage_server)s',
+ 'UPLOAD_USER': '%(stage_username)s',
+ 'UPLOAD_SSH_KEY': '/c/Users/cltbld/.ssh/%(stage_ssh_key)s',
+ 'UPLOAD_TO_TEMP': '1',
+ },
+ "check_test_env": {
+ 'MINIDUMP_STACKWALK': '%(abs_tools_dir)s/breakpad/win64/minidump_stackwalk.exe',
+ 'MINIDUMP_SAVE_PATH': '%(base_work_dir)s/minidumps',
+ },
+ 'enable_pymake': True,
+ 'purge_minsize': 12,
+ 'src_mozconfig': 'browser/config/mozconfigs/win64/nightly',
+ 'tooltool_manifest_src': "browser/config/tooltool-manifests/win64/releng.manifest",
+ #########################################################################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_android_configs/64_api_11.py
@@ -0,0 +1,7 @@
+config = {
+ 'base_name': 'Android armv7 API 11+ %(branch)s',
+ 'stage_platform': 'android-api-11',
+ 'src_mozconfig': 'mobile/android/config/mozconfigs/android-api-11/nightly',
+ 'tooltool_manifest_src': 'mobile/android/config/tooltool-manifests/android/releng.manifest',
+ 'multi_locale_config_platform': 'android',
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_android_configs/64_api_11_debug.py
@@ -0,0 +1,8 @@
+config = {
+ 'base_name': 'Android armv7 API 11+ %(branch)s debug',
+ 'stage_platform': 'android-api-11-debug',
+ 'src_mozconfig': 'mobile/android/config/mozconfigs/android-api-11/debug',
+ 'tooltool_manifest_src': 'mobile/android/config/tooltool-manifests/android/releng.manifest',
+ 'multi_locale_config_platform': 'android',
+ 'debug_build': True,
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_android_configs/64_api_9.py
@@ -0,0 +1,7 @@
+config = {
+ 'base_name': 'Android armv7 API 9 %(branch)s',
+ 'stage_platform': 'android-api-9',
+ 'src_mozconfig': 'mobile/android/config/mozconfigs/android-api-9-10-constrained/nightly',
+ 'tooltool_manifest_src': 'mobile/android/config/tooltool-manifests/android/releng.manifest',
+ 'multi_locale_config_platform': 'android',
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_android_configs/64_api_9_debug.py
@@ -0,0 +1,8 @@
+config = {
+ 'base_name': 'Android armv7 API 9 %(branch)s debug',
+ 'stage_platform': 'android-api-9-debug',
+ 'src_mozconfig': 'mobile/android/config/mozconfigs/android-api-9-10-constrained/debug',
+ 'tooltool_manifest_src': 'mobile/android/config/tooltool-manifests/android/releng.manifest',
+ 'multi_locale_config_platform': 'android',
+ 'debug_build': True,
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_android_configs/64_x86.py
@@ -0,0 +1,6 @@
+config = {
+ 'base_name': 'Android 4.2 x86 %(branch)s',
+ 'stage_platform': 'android-x86',
+ 'src_mozconfig': 'mobile/android/config/mozconfigs/android-x86/nightly',
+ 'tooltool_manifest_src': 'mobile/android/config/tooltool-manifests/android-x86/releng.manifest',
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/32_debug.py
@@ -0,0 +1,46 @@
+import os
+
+MOZ_OBJDIR = 'obj-firefox'
+
+config = {
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ 'setup-mock',
+ 'build',
+ 'upload-files',
+ 'sendchange',
+ 'check-test',
+ # 'generate-build-stats',
+ 'update', # decided by query_is_nightly()
+ ],
+ 'debug_build': True,
+ 'stage_platform': 'linux-debug',
+ 'purge_minsize': 15,
+ 'enable_signing': False,
+ 'enable_talos_sendchange': False,
+ #### 32 bit build specific #####
+ 'env': {
+ 'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+ 'MOZ_AUTOMATION': '1',
+ 'DISPLAY': ':2',
+ 'HG_SHARE_BASE_DIR': '/builds/hg-shared',
+ 'MOZ_OBJDIR': MOZ_OBJDIR,
+ 'MOZ_CRASHREPORTER_NO_REPORT': '1',
+ 'CCACHE_DIR': '/builds/ccache',
+ 'CCACHE_COMPRESS': '1',
+ 'CCACHE_UMASK': '002',
+ 'LC_ALL': 'C',
+ # 32 bit specific
+ 'PATH': '/tools/buildbot/bin:/usr/local/bin:/usr/lib/ccache:/bin:\
+/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/tools/git/bin:/tools/python27/bin:\
+/tools/python27-mercurial/bin:/home/cltbld/bin',
+ 'LD_LIBRARY_PATH': '/tools/gcc-4.3.3/installed/lib:\
+%s/dist/bin' % (MOZ_OBJDIR,),
+ 'XPCOM_DEBUG_BREAK': 'stack-and-abort',
+ 'TINDERBOX_OUTPUT': '1',
+ },
+ 'src_mozconfig': 'browser/config/mozconfigs/linux32/debug',
+ #######################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_asan.py
@@ -0,0 +1,47 @@
+import os
+
+MOZ_OBJDIR = 'obj-firefox'
+
+config = {
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ 'setup-mock',
+ 'build',
+ 'upload-files',
+ 'sendchange',
+ 'check-test',
+ # 'generate-build-stats',
+ # 'update',
+ ],
+ 'stage_platform': 'linux64-asan',
+ 'purge_minsize': 12,
+ 'tooltool_manifest_src': "browser/config/tooltool-manifests/linux64/\
+asan.manifest",
+ 'platform_supports_post_upload_to_latest': False,
+ 'enable_signing': False,
+ 'enable_talos_sendchange': False,
+ #### 64 bit build specific #####
+ 'env': {
+ 'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+ 'MOZ_AUTOMATION': '1',
+ 'DISPLAY': ':2',
+ 'HG_SHARE_BASE_DIR': '/builds/hg-shared',
+ 'MOZ_OBJDIR': 'obj-firefox',
+ 'TINDERBOX_OUTPUT': '1',
+ 'TOOLTOOL_CACHE': '/builds/tooltool_cache',
+ 'TOOLTOOL_HOME': '/builds',
+ 'MOZ_CRASHREPORTER_NO_REPORT': '1',
+ 'CCACHE_DIR': '/builds/ccache',
+ 'CCACHE_COMPRESS': '1',
+ 'CCACHE_UMASK': '002',
+ 'LC_ALL': 'C',
+ ## 64 bit specific
+ 'PATH': '/tools/buildbot/bin:/usr/local/bin:/usr/lib64/ccache:/bin:\
+/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/tools/git/bin:/tools/python27/bin:\
+/tools/python27-mercurial/bin:/home/cltbld/bin',
+ },
+ 'src_mozconfig': 'browser/config/mozconfigs/linux64/nightly-asan',
+ #######################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_asan_and_debug.py
@@ -0,0 +1,48 @@
+import os
+
+MOZ_OBJDIR = 'obj-firefox'
+
+config = {
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ 'setup-mock',
+ 'build',
+ 'upload-files',
+ 'sendchange',
+ 'check-test',
+ # 'generate-build-stats',
+ # 'update',
+ ],
+ 'stage_platform': 'linux64-asan-debug',
+ 'debug_build': True,
+ 'purge_minsize': 12,
+ 'tooltool_manifest_src': "browser/config/tooltool-manifests/linux64/\
+asan.manifest",
+ 'platform_supports_post_upload_to_latest': False,
+ 'enable_signing': False,
+ 'enable_talos_sendchange': False,
+ #### 64 bit build specific #####
+ 'env': {
+ 'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+ 'MOZ_AUTOMATION': '1',
+ 'DISPLAY': ':2',
+ 'HG_SHARE_BASE_DIR': '/builds/hg-shared',
+ 'MOZ_OBJDIR': 'obj-firefox',
+ 'TINDERBOX_OUTPUT': '1',
+ 'TOOLTOOL_CACHE': '/builds/tooltool_cache',
+ 'TOOLTOOL_HOME': '/builds',
+ 'MOZ_CRASHREPORTER_NO_REPORT': '1',
+ 'CCACHE_DIR': '/builds/ccache',
+ 'CCACHE_COMPRESS': '1',
+ 'CCACHE_UMASK': '002',
+ 'LC_ALL': 'C',
+ ## 64 bit specific
+ 'PATH': '/tools/buildbot/bin:/usr/local/bin:/usr/lib64/ccache:/bin:\
+/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/tools/git/bin:/tools/python27/bin:\
+/tools/python27-mercurial/bin:/home/cltbld/bin',
+ },
+ 'src_mozconfig': 'browser/config/mozconfigs/linux64/debug-asan',
+ #######################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_code_coverage.py
@@ -0,0 +1,45 @@
+import os
+
+MOZ_OBJDIR = 'obj-firefox'
+
+config = {
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ 'setup-mock',
+ 'build',
+ 'upload-files',
+ 'sendchange',
+ 'check-test',
+ # 'generate-build-stats',
+ 'update', # decided by query_is_nightly()
+ ],
+ 'stage_platform': 'linux64-cc',
+ 'platform_supports_post_upload_to_latest': False,
+ 'enable_signing': False,
+ 'enable_talos_sendchange': False,
+ 'enable_count_ctors': False,
+ #### 64 bit build specific #####
+ 'env': {
+ 'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+ 'MOZ_AUTOMATION': '1',
+ 'DISPLAY': ':2',
+ 'HG_SHARE_BASE_DIR': '/builds/hg-shared',
+ 'MOZ_OBJDIR': 'obj-firefox',
+ 'TINDERBOX_OUTPUT': '1',
+ 'TOOLTOOL_CACHE': '/builds/tooltool_cache',
+ 'TOOLTOOL_HOME': '/builds',
+ 'MOZ_CRASHREPORTER_NO_REPORT': '1',
+ 'CCACHE_DIR': '/builds/ccache',
+ 'CCACHE_COMPRESS': '1',
+ 'CCACHE_UMASK': '002',
+ 'LC_ALL': 'C',
+ ## 64 bit specific
+ 'PATH': '/tools/buildbot/bin:/usr/local/bin:/usr/lib64/ccache:/bin:\
+/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/tools/git/bin:/tools/python27/bin:\
+/tools/python27-mercurial/bin:/home/cltbld/bin',
+ },
+ 'src_mozconfig': 'browser/config/mozconfigs/linux64/code-coverage',
+ #######################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_debug.py
@@ -0,0 +1,45 @@
+import os
+
+MOZ_OBJDIR = 'obj-firefox'
+
+config = {
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ 'setup-mock',
+ 'build',
+ 'upload-files',
+ 'sendchange',
+ 'check-test',
+ # 'generate-build-stats',
+ 'update', # decided by query_is_nightly()
+ ],
+ 'stage_platform': 'linux64-debug',
+ 'debug_build': True,
+ 'enable_signing': False,
+ 'enable_talos_sendchange': False,
+ #### 64 bit build specific #####
+ 'env': {
+ 'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+ 'MOZ_AUTOMATION': '1',
+ 'DISPLAY': ':2',
+ 'HG_SHARE_BASE_DIR': '/builds/hg-shared',
+ 'MOZ_OBJDIR': MOZ_OBJDIR,
+ 'MOZ_CRASHREPORTER_NO_REPORT': '1',
+ 'CCACHE_DIR': '/builds/ccache',
+ 'CCACHE_COMPRESS': '1',
+ 'CCACHE_UMASK': '002',
+ 'LC_ALL': 'C',
+ 'XPCOM_DEBUG_BREAK': 'stack-and-abort',
+ # 64 bit specific
+ 'PATH': '/tools/buildbot/bin:/usr/local/bin:/usr/lib64/ccache:/bin:\
+/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/tools/git/bin:/tools/python27/bin:\
+/tools/python27-mercurial/bin:/home/cltbld/bin',
+ 'LD_LIBRARY_PATH': '/tools/gcc-4.3.3/installed/lib64:\
+%s/dist/bin' % (MOZ_OBJDIR,),
+ 'TINDERBOX_OUTPUT': '1',
+ },
+ 'src_mozconfig': 'browser/config/mozconfigs/linux64/debug',
+ #######################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_graphene.py
@@ -0,0 +1,45 @@
+import os
+
+config = {
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ 'setup-mock',
+ 'build',
+ 'upload-files',
+ 'sendchange',
+ 'check-test',
+ 'update', # may or may not happen based on query_is_nightly()
+ ],
+ 'stage_platform': 'linux64',
+ 'stage_product': 'b2g',
+ 'enable_signing': False,
+ 'enable_talos_sendchange': False,
+ 'enable_unittest_sendchange': False,
+ 'enable_count_ctors': False,
+ 'objdir': 'obj-graphene',
+ #### 64 bit build specific #####
+ 'env': {
+ 'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+ 'MOZ_AUTOMATION': '1',
+ 'HG_SHARE_BASE_DIR': '/builds/hg-shared',
+ 'MOZ_OBJDIR': 'obj-graphene',
+ 'TINDERBOX_OUTPUT': '1',
+ 'CCACHE_DIR': '/builds/ccache',
+ 'CCACHE_COMPRESS': '1',
+ 'CCACHE_UMASK': '002',
+ 'LC_ALL': 'C',
+ ## 64 bit specific
+ 'PATH': '/tools/buildbot/bin:/usr/local/bin:/usr/lib64/ccache:/bin:\
+/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/tools/git/bin:/tools/python27/bin:\
+/tools/python27-mercurial/bin:/home/cltbld/bin',
+ "SYMBOL_SERVER_HOST": "%(symbol_server_host)s",
+ "SYMBOL_SERVER_SSH_KEY": "/home/mock_mozilla/.ssh/ffxbld_rsa",
+ "SYMBOL_SERVER_USER": "ffxbld",
+ "SYMBOL_SERVER_PATH": "/mnt/netapp/breakpad/symbols_ffx",
+ },
+ 'src_mozconfig': 'b2g/graphene/config/mozconfigs/linux64/nightly',
+ 'balrog_platform': 'linux64',
+ #######################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_horizon.py
@@ -0,0 +1,45 @@
+import os
+
+config = {
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ 'setup-mock',
+ 'build',
+ 'upload-files',
+ 'sendchange',
+ 'check-test',
+ 'update', # may or may not happen based on query_is_nightly()
+ ],
+ 'stage_platform': 'linux64',
+ 'stage_product': 'b2g',
+ 'enable_signing': False,
+ 'enable_talos_sendchange': False,
+ 'enable_unittest_sendchange': False,
+ 'enable_count_ctors': False,
+ 'objdir': 'obj-horizon',
+ #### 64 bit build specific #####
+ 'env': {
+ 'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+ 'MOZ_AUTOMATION': '1',
+ 'HG_SHARE_BASE_DIR': '/builds/hg-shared',
+ 'MOZ_OBJDIR': 'obj-horizon',
+ 'TINDERBOX_OUTPUT': '1',
+ 'CCACHE_DIR': '/builds/ccache',
+ 'CCACHE_COMPRESS': '1',
+ 'CCACHE_UMASK': '002',
+ 'LC_ALL': 'C',
+ ## 64 bit specific
+ 'PATH': '/tools/buildbot/bin:/usr/local/bin:/usr/lib64/ccache:/bin:\
+/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/tools/git/bin:/tools/python27/bin:\
+/tools/python27-mercurial/bin:/home/cltbld/bin',
+ "SYMBOL_SERVER_HOST": "%(symbol_server_host)s",
+ "SYMBOL_SERVER_SSH_KEY": "/home/mock_mozilla/.ssh/ffxbld_rsa",
+ "SYMBOL_SERVER_USER": "ffxbld",
+ "SYMBOL_SERVER_PATH": "/mnt/netapp/breakpad/symbols_ffx",
+ },
+ 'src_mozconfig': 'b2g/graphene/config/horizon-mozconfigs/linux64/nightly',
+ 'balrog_platform': 'linux64',
+ #######################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_mulet.py
@@ -0,0 +1,42 @@
+import os
+
+config = {
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ 'setup-mock',
+ 'build',
+ 'upload-files',
+ 'sendchange',
+ ],
+ 'stage_platform': 'linux64-mulet',
+ 'stage_product': 'b2g',
+ 'tooltool_manifest_src': "b2g/dev/config/tooltool-manifests/linux64/releng.manifest",
+ 'platform_supports_post_upload_to_latest': False,
+ 'enable_signing': False,
+ 'enable_talos_sendchange': False,
+ 'enable_count_ctors': False,
+ #### 64 bit build specific #####
+ 'env': {
+ 'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+ 'MOZ_AUTOMATION': '1',
+ 'DISPLAY': ':2',
+ 'HG_SHARE_BASE_DIR': '/builds/hg-shared',
+ 'MOZ_OBJDIR': 'obj-firefox',
+ 'TINDERBOX_OUTPUT': '1',
+ 'TOOLTOOL_CACHE': '/builds/tooltool_cache',
+ 'TOOLTOOL_HOME': '/builds',
+ 'MOZ_CRASHREPORTER_NO_REPORT': '1',
+ 'CCACHE_DIR': '/builds/ccache',
+ 'CCACHE_COMPRESS': '1',
+ 'CCACHE_UMASK': '002',
+ 'LC_ALL': 'C',
+ ## 64 bit specific
+ 'PATH': '/tools/buildbot/bin:/usr/local/bin:/usr/lib64/ccache:/bin:\
+/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/tools/git/bin:/tools/python27/bin:\
+/tools/python27-mercurial/bin:/home/cltbld/bin',
+ },
+ 'src_mozconfig': 'b2g/dev/config/mozconfigs/linux64/mulet',
+ #######################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_source.py
@@ -0,0 +1,19 @@
+config = {
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ 'setup-mock',
+ 'package-source',
+ ],
+ 'stage_platform': 'source', # Not used, but required by the script
+ 'purge_minsize': 3,
+ 'buildbot_json_path': 'buildprops.json',
+ 'app_ini_path': 'FAKE', # Not used, but required by the script
+ 'objdir': 'obj-firefox',
+ 'env': {
+ 'MOZ_OBJDIR': 'obj-firefox',
+ 'TINDERBOX_OUTPUT': '1',
+ 'LC_ALL': 'C',
+ },
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_stat_and_debug.py
@@ -0,0 +1,51 @@
+import os
+
+MOZ_OBJDIR = 'obj-firefox'
+
+config = {
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ 'setup-mock',
+ 'build',
+ 'upload-files',
+ 'sendchange',
+ 'check-test',
+ # 'generate-build-stats',
+ 'update', # decided by query_is_nightly()
+ ],
+ 'debug_build': True,
+ 'stage_platform': 'linux64-st-an-debug',
+ 'purge_minsize': 12,
+ 'tooltool_manifest_src': "browser/config/tooltool-manifests/linux64/\
+clang.manifest",
+ 'platform_supports_post_upload_to_latest': False,
+ 'enable_signing': False,
+ 'enable_talos_sendchange': False,
+ 'enable_unittest_sendchange': False,
+ #### 64 bit build specific #####
+ 'env': {
+ 'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+ 'MOZ_AUTOMATION': '1',
+ 'DISPLAY': ':2',
+ 'HG_SHARE_BASE_DIR': '/builds/hg-shared',
+ 'MOZ_OBJDIR': MOZ_OBJDIR,
+ 'TINDERBOX_OUTPUT': '1',
+ 'TOOLTOOL_CACHE': '/builds/tooltool_cache',
+ 'TOOLTOOL_HOME': '/builds',
+ 'MOZ_CRASHREPORTER_NO_REPORT': '1',
+ 'CCACHE_DIR': '/builds/ccache',
+ 'CCACHE_COMPRESS': '1',
+ 'CCACHE_UMASK': '002',
+ 'LC_ALL': 'C',
+ 'XPCOM_DEBUG_BREAK': 'stack-and-abort',
+ # 64 bit specific
+ 'PATH': '/tools/buildbot/bin:/usr/local/bin:/usr/lib64/ccache:/bin:\
+/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/tools/git/bin:/tools/python27/bin:\
+/tools/python27-mercurial/bin:/home/cltbld/bin',
+ },
+ 'src_mozconfig': 'browser/config/mozconfigs/linux64/\
+debug-static-analysis-clang',
+ #######################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_mac_configs/64_debug.py
@@ -0,0 +1,45 @@
+import os
+
+MOZ_OBJDIR = 'obj-firefox'
+
+config = {
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ # 'setup-mock',
+ 'build',
+ 'upload-files',
+ 'sendchange',
+ 'check-test',
+ # 'generate-build-stats',
+ 'update', # decided by query_is_nightly()
+ ],
+ 'stage_platform': 'macosx64-debug',
+ 'debug_build': True,
+ 'objdir': 'obj-firefox',
+ 'enable_talos_sendchange': False,
+ #### 64 bit build specific #####
+ 'env': {
+ 'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+ 'MOZ_AUTOMATION': '1',
+ 'HG_SHARE_BASE_DIR': '/builds/hg-shared',
+ 'MOZ_OBJDIR': 'obj-firefox',
+ 'TINDERBOX_OUTPUT': '1',
+ 'TOOLTOOL_CACHE': '/builds/tooltool_cache',
+ 'TOOLTOOL_HOME': '/builds',
+ 'MOZ_CRASHREPORTER_NO_REPORT': '1',
+ 'CCACHE_DIR': '/builds/ccache',
+ 'CCACHE_COMPRESS': '1',
+ 'CCACHE_UMASK': '002',
+ 'LC_ALL': 'C',
+ 'XPCOM_DEBUG_BREAK': 'stack-and-abort',
+ ## 64 bit specific
+ 'PATH': '/tools/python/bin:/tools/buildbot/bin:/opt/local/bin:/usr/bin:'
+ '/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin',
+ ##
+ },
+ 'src_mozconfig': 'browser/config/mozconfigs/macosx64/debug',
+ 'purge_minsize': 10,
+ #######################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_mac_configs/64_graphene.py
@@ -0,0 +1,43 @@
+import os
+
+config = {
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ 'build',
+ 'upload-files',
+ 'sendchange',
+ 'check-test',
+ 'update', # may or may not happen based on query_is_nightly()
+ ],
+ 'stage_platform': 'mac',
+ 'stage_product': 'b2g',
+ 'enable_signing': False,
+ 'enable_talos_sendchange': False,
+ 'enable_unittest_sendchange': False,
+ 'enable_count_ctors': False,
+ 'objdir': 'obj-graphene',
+ #### 64 bit build specific #####
+ 'env': {
+ 'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+ 'MOZ_AUTOMATION': '1',
+ 'HG_SHARE_BASE_DIR': '/builds/hg-shared',
+ 'MOZ_OBJDIR': 'obj-graphene',
+ 'TINDERBOX_OUTPUT': '1',
+ 'CCACHE_DIR': '/builds/ccache',
+ 'CCACHE_COMPRESS': '1',
+ 'CCACHE_UMASK': '002',
+ 'LC_ALL': 'C',
+ ## 64 bit specific
+ 'PATH': '/tools/python/bin:/tools/buildbot/bin:/opt/local/bin:/usr/bin:'
+ '/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin',
+ "SYMBOL_SERVER_HOST": "%(symbol_server_host)s",
+ "SYMBOL_SERVER_SSH_KEY": "/Users/cltbld/.ssh/ffxbld_rsa",
+ "SYMBOL_SERVER_USER": "ffxbld",
+ "SYMBOL_SERVER_PATH": "/mnt/netapp/breakpad/symbols_ffx",
+ },
+ 'src_mozconfig': 'b2g/graphene/config/mozconfigs/macosx64/nightly',
+ 'balrog_platform': 'macosx64',
+ #######################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_mac_configs/64_horizon.py
@@ -0,0 +1,43 @@
+import os
+
+config = {
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ 'build',
+ 'upload-files',
+ 'sendchange',
+ 'check-test',
+ 'update', # may or may not happen based on query_is_nightly()
+ ],
+ 'stage_platform': 'mac',
+ 'stage_product': 'b2g',
+ 'enable_signing': False,
+ 'enable_talos_sendchange': False,
+ 'enable_unittest_sendchange': False,
+ 'enable_count_ctors': False,
+ 'objdir': 'obj-horizon',
+ #### 64 bit build specific #####
+ 'env': {
+ 'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+ 'MOZ_AUTOMATION': '1',
+ 'HG_SHARE_BASE_DIR': '/builds/hg-shared',
+ 'MOZ_OBJDIR': 'obj-horizon',
+ 'TINDERBOX_OUTPUT': '1',
+ 'CCACHE_DIR': '/builds/ccache',
+ 'CCACHE_COMPRESS': '1',
+ 'CCACHE_UMASK': '002',
+ 'LC_ALL': 'C',
+ ## 64 bit specific
+ 'PATH': '/tools/python/bin:/tools/buildbot/bin:/opt/local/bin:/usr/bin:'
+ '/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin',
+ "SYMBOL_SERVER_HOST": "%(symbol_server_host)s",
+ "SYMBOL_SERVER_SSH_KEY": "/Users/cltbld/.ssh/ffxbld_rsa",
+ "SYMBOL_SERVER_USER": "ffxbld",
+ "SYMBOL_SERVER_PATH": "/mnt/netapp/breakpad/symbols_ffx",
+ },
+ 'src_mozconfig': 'b2g/graphene/config/horizon-mozconfigs/macosx64/nightly',
+ 'balrog_platform': 'macosx64',
+ #######################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_mac_configs/64_mulet.py
@@ -0,0 +1,42 @@
+import os
+
+config = {
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ 'build',
+ 'upload-files',
+ 'sendchange',
+ ],
+ 'stage_platform': 'macosx64-mulet',
+ 'stage_product': 'b2g',
+ 'tooltool_manifest_src': "b2g/dev/config/tooltool-manifests/macosx64/releng.manifest",
+ 'objdir': 'obj-firefox',
+ 'enable_signing': False,
+ 'enable_unittest_sendchange': False,
+ 'enable_talos_sendchange': False,
+ #### 64 bit build specific #####
+ 'env': {
+ 'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+ 'MOZ_AUTOMATION': '1',
+ 'HG_SHARE_BASE_DIR': '/builds/hg-shared',
+ 'MOZ_OBJDIR': 'obj-firefox',
+ 'TINDERBOX_OUTPUT': '1',
+ 'TOOLTOOL_CACHE': '/builds/tooltool_cache',
+ 'TOOLTOOL_HOME': '/builds',
+ 'MOZ_CRASHREPORTER_NO_REPORT': '1',
+ 'CCACHE_DIR': '/builds/ccache',
+ 'CCACHE_COMPRESS': '1',
+ 'CCACHE_UMASK': '002',
+ 'LC_ALL': 'C',
+ 'XPCOM_DEBUG_BREAK': 'stack-and-abort',
+ ## 64 bit specific
+ 'PATH': '/tools/python/bin:/tools/buildbot/bin:/opt/local/bin:/usr/bin:'
+ '/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin',
+ ##
+ },
+ 'src_mozconfig': 'b2g/dev/config/mozconfigs/macosx64/mulet',
+ 'purge_minsize': 10,
+ #######################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_mac_configs/64_stat_and_debug.py
@@ -0,0 +1,50 @@
+import os
+
+MOZ_OBJDIR = 'obj-firefox'
+
+config = {
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ # 'setup-mock',
+ 'build',
+ 'upload-files',
+ 'sendchange',
+ 'check-test',
+ # 'generate-build-stats',
+ 'update', # decided by query_is_nightly()
+ ],
+ 'debug_build': True,
+ 'stage_platform': 'macosx64-st-an-debug',
+ 'purge_minsize': 12,
+ 'tooltool_manifest_src': "browser/config/tooltool-manifests/macosx64/\
+clang.manifest",
+ 'platform_supports_post_upload_to_latest': False,
+ 'enable_signing': False,
+ 'enable_talos_sendchange': False,
+ 'enable_unittest_sendchange': False,
+ 'objdir': MOZ_OBJDIR,
+ #### 64 bit build specific #####
+ 'env': {
+ 'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+ 'MOZ_AUTOMATION': '1',
+ 'HG_SHARE_BASE_DIR': '/builds/hg-shared',
+ 'MOZ_OBJDIR': MOZ_OBJDIR,
+ 'TINDERBOX_OUTPUT': '1',
+ 'TOOLTOOL_CACHE': '/builds/tooltool_cache',
+ 'TOOLTOOL_HOME': '/builds',
+ 'MOZ_CRASHREPORTER_NO_REPORT': '1',
+ 'CCACHE_DIR': '/builds/ccache',
+ 'CCACHE_COMPRESS': '1',
+ 'CCACHE_UMASK': '002',
+ 'LC_ALL': 'C',
+ 'XPCOM_DEBUG_BREAK': 'stack-and-abort',
+ # 64 bit specific
+ 'PATH': '/tools/python/bin:/tools/buildbot/bin:/opt/local/bin:/usr/bin:'
+ '/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin',
+ },
+ 'src_mozconfig': 'browser/config/mozconfigs/macosx64/\
+debug-static-analysis',
+ #######################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_windows_configs/32_debug.py
@@ -0,0 +1,39 @@
+import os
+
+MOZ_OBJDIR = 'obj-firefox'
+
+config = {
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ # 'setup-mock', windows do not use mock
+ 'build',
+ 'upload-files',
+ 'sendchange',
+ 'check-test',
+ # 'generate-build-stats',
+ 'update', # decided by query_is_nightly()
+ ],
+ 'stage_platform': 'win32-debug',
+ 'debug_build': True,
+ 'enable_talos_sendchange': False,
+ #### 32 bit build specific #####
+ 'env': {
+ 'BINSCOPE': 'C:/Program Files (x86)/Microsoft/SDL BinScope/BinScope.exe',
+ 'HG_SHARE_BASE_DIR': 'C:/builds/hg-shared',
+ 'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+ 'MOZ_AUTOMATION': '1',
+ 'MOZ_CRASHREPORTER_NO_REPORT': '1',
+ 'MOZ_OBJDIR': 'obj-firefox',
+ 'PATH': 'C:/mozilla-build/nsis-3.0b1;C:/mozilla-build/nsis-2.46u;C:/mozilla-build/python27;'
+ 'C:/mozilla-build/buildbotve/scripts;'
+ '%s' % (os.environ.get('path')),
+ 'PROPERTIES_FILE': os.path.join(os.getcwd(), 'buildprops.json'),
+ 'TINDERBOX_OUTPUT': '1',
+ 'XPCOM_DEBUG_BREAK': 'stack-and-abort',
+ },
+ 'src_mozconfig': 'browser/config/mozconfigs/win32/debug',
+ 'purge_minsize': 9,
+ #######################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_windows_configs/32_mulet.py
@@ -0,0 +1,36 @@
+import os
+
+config = {
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ 'build',
+ 'upload-files',
+ 'sendchange',
+ ],
+ 'stage_platform': 'win32-mulet',
+ 'stage_product': 'b2g',
+ 'tooltool_manifest_src': "b2g/dev/config/tooltool-manifests/win32/releng.manifest",
+ 'enable_signing': False,
+ 'enable_talos_sendchange': False,
+ 'enable_unittest_sendchange': False,
+ #### 32 bit build specific #####
+ 'env': {
+ 'BINSCOPE': 'C:/Program Files (x86)/Microsoft/SDL BinScope/BinScope.exe',
+ 'HG_SHARE_BASE_DIR': 'C:/builds/hg-shared',
+ 'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+ 'MOZ_AUTOMATION': '1',
+ 'MOZ_CRASHREPORTER_NO_REPORT': '1',
+ 'MOZ_OBJDIR': 'obj-firefox',
+ 'PATH': 'C:/mozilla-build/nsis-3.0b1;C:/mozilla-build/nsis-2.46u;C:/mozilla-build/python27;'
+ 'C:/mozilla-build/buildbotve/scripts;'
+ '%s' % (os.environ.get('path')),
+ 'PROPERTIES_FILE': os.path.join(os.getcwd(), 'buildprops.json'),
+ 'TINDERBOX_OUTPUT': '1',
+ 'XPCOM_DEBUG_BREAK': 'stack-and-abort',
+ },
+ 'src_mozconfig': 'b2g/dev/config/mozconfigs/win32/mulet',
+ 'purge_minsize': 9,
+ #######################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_windows_configs/64_debug.py
@@ -0,0 +1,37 @@
+import os
+
+MOZ_OBJDIR = 'obj-firefox'
+
+config = {
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ # 'setup-mock', windows do not use mock
+ 'build',
+ 'upload-files',
+ 'sendchange',
+ 'check-test',
+ # 'generate-build-stats',
+ 'update', # decided by query_is_nightly()
+ ],
+ 'stage_platform': 'win64-debug',
+ 'debug_build': True,
+ 'enable_talos_sendchange': False,
+ #### 64 bit build specific #####
+ 'env': {
+ 'BINSCOPE': 'C:/Program Files (x86)/Microsoft/SDL BinScope/BinScope.exe',
+ 'HG_SHARE_BASE_DIR': 'C:/builds/hg-shared',
+ 'MOZ_AUTOMATION': '1',
+ 'MOZ_CRASHREPORTER_NO_REPORT': '1',
+ 'MOZ_OBJDIR': 'obj-firefox',
+ 'PATH': 'C:/mozilla-build/python27;C:/mozilla-build/buildbotve/scripts;'
+ '%s' % (os.environ.get('path')),
+ 'PROPERTIES_FILE': os.path.join(os.getcwd(), 'buildprops.json'),
+ 'TINDERBOX_OUTPUT': '1',
+ 'XPCOM_DEBUG_BREAK': 'stack-and-abort',
+ },
+ 'src_mozconfig': 'browser/config/mozconfigs/win64/debug',
+ 'purge_minsize': 9,
+ #######################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_windows_configs/64_graphene.py
@@ -0,0 +1,42 @@
+import os
+
+config = {
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ 'build',
+ 'upload-files',
+ 'sendchange',
+ 'check-test',
+ 'update', # may or may not happen based on query_is_nightly()
+ ],
+ 'stage_platform': 'win64',
+ 'stage_product': 'b2g',
+ 'enable_signing': False,
+ 'enable_talos_sendchange': False,
+ 'enable_unittest_sendchange': False,
+ 'enable_count_ctors': False,
+ 'objdir': 'obj-graphene',
+ 'env': {
+ 'BINSCOPE': 'C:/Program Files (x86)/Microsoft/SDL BinScope/BinScope.exe',
+ 'HG_SHARE_BASE_DIR': 'C:/builds/hg-shared',
+ 'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+ 'MOZ_AUTOMATION': '1',
+ 'MOZ_CRASHREPORTER_NO_REPORT': '1',
+ 'MOZ_OBJDIR': 'obj-graphene',
+ 'PATH': 'C:/mozilla-build/nsis-3.0b1;C:/mozilla-build/nsis-2.46u;C:/mozilla-build/python27;'
+ 'C:/mozilla-build/buildbotve/scripts;'
+ '%s' % (os.environ.get('path')),
+ 'PROPERTIES_FILE': os.path.join(os.getcwd(), 'buildprops.json'),
+ 'TINDERBOX_OUTPUT': '1',
+ 'XPCOM_DEBUG_BREAK': 'stack-and-abort',
+ "SYMBOL_SERVER_HOST": "%(symbol_server_host)s",
+ "SYMBOL_SERVER_SSH_KEY": "/c/Users/cltbld/.ssh/ffxbld_rsa",
+ "SYMBOL_SERVER_USER": "ffxbld",
+ "SYMBOL_SERVER_PATH": "/mnt/netapp/breakpad/symbols_ffx",
+ },
+ 'src_mozconfig': 'b2g/graphene/config/mozconfigs/win64/nightly',
+ 'balrog_platform': 'win64',
+ #######################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_windows_configs/64_horizon.py
@@ -0,0 +1,42 @@
+import os
+
+config = {
+ 'default_actions': [
+ 'clobber',
+ 'clone-tools',
+ 'checkout-sources',
+ 'build',
+ 'upload-files',
+ 'sendchange',
+ 'check-test',
+ 'update', # may or may not happen based on query_is_nightly()
+ ],
+ 'stage_platform': 'win64',
+ 'stage_product': 'b2g',
+ 'enable_signing': False,
+ 'enable_talos_sendchange': False,
+ 'enable_unittest_sendchange': False,
+ 'enable_count_ctors': False,
+ 'objdir': 'obj-horizon',
+ 'env': {
+ 'BINSCOPE': 'C:/Program Files (x86)/Microsoft/SDL BinScope/BinScope.exe',
+ 'HG_SHARE_BASE_DIR': 'C:/builds/hg-shared',
+ 'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+ 'MOZ_AUTOMATION': '1',
+ 'MOZ_CRASHREPORTER_NO_REPORT': '1',
+ 'MOZ_OBJDIR': 'obj-horizon',
+ 'PATH': 'C:/mozilla-build/nsis-3.0b1;C:/mozilla-build/nsis-2.46u;C:/mozilla-build/python27;'
+ 'C:/mozilla-build/buildbotve/scripts;'
+ '%s' % (os.environ.get('path')),
+ 'PROPERTIES_FILE': os.path.join(os.getcwd(), 'buildprops.json'),
+ 'TINDERBOX_OUTPUT': '1',
+ 'XPCOM_DEBUG_BREAK': 'stack-and-abort',
+ "SYMBOL_SERVER_HOST": "%(symbol_server_host)s",
+ "SYMBOL_SERVER_SSH_KEY": "/c/Users/cltbld/.ssh/ffxbld_rsa",
+ "SYMBOL_SERVER_USER": "ffxbld",
+ "SYMBOL_SERVER_PATH": "/mnt/netapp/breakpad/symbols_ffx",
+ },
+ 'src_mozconfig': 'b2g/graphene/config/horizon-mozconfigs/win64/nightly',
+ 'balrog_platform': 'win64',
+ #######################
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/developer_config.py
@@ -0,0 +1,51 @@
+"""
+This config file can be appended to any other mozharness job
+running under treeherder. The purpose of this config is to
+override values that are specific to Release Engineering machines
+that can reach specific hosts within their network.
+In other words, this config allows you to run any job
+outside of the Release Engineering network
+
+Using this config file should be accompanied with using
+--test-url and --installer-url where appropiate
+"""
+
+import os
+LOCAL_WORKDIR = os.path.expanduser("~/.mozilla/releng")
+
+config = {
+ # Developer mode values
+ "developer_mode": True,
+ "local_workdir": LOCAL_WORKDIR,
+ "replace_urls": [
+ ("http://pvtbuilds.pvt.build", "https://pvtbuilds"),
+ ],
+
+ # General local variable overwrite
+ "exes": {
+ "hgtool.py": os.path.join(LOCAL_WORKDIR, "hgtool.py"),
+ "gittool.py": os.path.join(LOCAL_WORKDIR, "gittool.py"),
+ },
+ "env": {
+ "PIP_TRUSTED_HOST": "pypi.pub.build.mozilla.org",
+ },
+
+ # Pip
+ "find_links": ["http://pypi.pub.build.mozilla.org/pub"],
+ "pip_index": False,
+
+ # Talos related
+ "python_webserver": True,
+ "virtualenv_path": '%s/build/venv' % os.getcwd(),
+
+ # Tooltool related
+ "tooltool_cache": os.path.join(LOCAL_WORKDIR, "builds/tooltool_cache"),
+ "tooltool_cache_path": os.path.join(LOCAL_WORKDIR, "builds/tooltool_cache"),
+
+ # VCS tools
+ "hgtool.py": 'http://hg.mozilla.org/build/puppet/raw-file/faaf5abd792e/modules/packages/files/hgtool.py',
+ "gittool.py": 'http://hg.mozilla.org/build/puppet/raw-file/faaf5abd792e/modules/packages/files/gittool.py',
+
+ # Android related
+ "host_utils_url": "https://api.pub.build.mozilla.org/tooltool/sha512/372c89f9dccaf5ee3b9d35fd1cfeb089e1e5db3ff1c04e35aa3adc8800bc61a2ae10e321f37ae7bab20b56e60941f91bb003bcb22035902a73d70872e7bd3282",
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/generic_releng_config.py
@@ -0,0 +1,50 @@
+# This config file has generic values needed for any job and any platform running
+# on Release Engineering machines inside the VPN
+from mozharness.base.script import platform_name
+
+# These are values specific to each platform on Release Engineering machines
+PYTHON_WIN32 = 'c:/mozilla-build/python27/python.exe'
+# These are values specific to running machines on Release Engineering machines
+# to run it locally on your machines append --cfg developer_config.py
+PLATFORM_CONFIG = {
+ 'linux64': {
+ 'exes': {
+ 'gittool.py': '/usr/local/bin/gittool.py',
+ 'hgtool.py': '/usr/local/bin/hgtool.py',
+ 'python': '/tools/buildbot/bin/python',
+ 'virtualenv': ['/tools/buildbot/bin/python', '/tools/misc-python/virtualenv.py'],
+ },
+ 'env': {
+ 'DISPLAY': ':2',
+ }
+ },
+ 'macosx': {
+ 'exes': {
+ 'gittool.py': '/usr/local/bin/gittool.py',
+ 'hgtool.py': '/usr/local/bin/hgtool.py',
+ 'python': '/tools/buildbot/bin/python',
+ 'virtualenv': ['/tools/buildbot/bin/python', '/tools/misc-python/virtualenv.py'],
+ },
+ },
+ 'win32': {
+ "exes": {
+ 'gittool.py': [PYTHON_WIN32, 'c:/builds/hg-shared/build/tools/buildfarm/utils/gittool.py'],
+ 'hgtool.py': [PYTHON_WIN32, 'c:/builds/hg-shared/build/tools/buildfarm/utils/hgtool.py'],
+ # Otherwise, depending on the PATH we can pick python 2.6 up
+ 'python': PYTHON_WIN32,
+ 'virtualenv': [PYTHON_WIN32, 'c:/mozilla-build/buildbotve/virtualenv.py'],
+ }
+ }
+}
+
+config = PLATFORM_CONFIG[platform_name()]
+# Generic values
+config.update({
+ "find_links": [
+ "http://pypi.pvt.build.mozilla.org/pub",
+ "http://pypi.pub.build.mozilla.org/pub",
+ ],
+ 'pip_index': False,
+ 'virtualenv_path': 'venv',
+})
+
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/hazards/build_b2g.py
@@ -0,0 +1,23 @@
+config = {
+ 'build_command': "build.b2g",
+ 'expect_file': "expect.b2g.json",
+
+ 'default_actions': [
+ 'clobber',
+ 'checkout-tools',
+ 'checkout-sources',
+ 'get-blobs',
+ 'clobber-shell',
+ 'configure-shell',
+ 'build-shell',
+ 'clobber-analysis',
+ 'setup-analysis',
+ 'run-analysis',
+ 'collect-analysis-output',
+ 'upload-analysis',
+ 'check-expectations',
+ ],
+
+ 'sixgill_manifest': "build/sixgill-b2g.manifest",
+ 'b2g_target_compiler_prefix': "target_compiler/gcc/linux-x86/arm/arm-linux-androideabi-4.7/bin/arm-linux-androideabi-",
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/hazards/build_browser.py
@@ -0,0 +1,4 @@
+config = {
+ 'build_command': "build.browser",
+ 'expect_file': "expect.browser.json",
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/hazards/build_shell.py
@@ -0,0 +1,4 @@
+config = {
+ 'build_command': "build.shell",
+ 'expect_file': "expect.shell.json",
+}
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/hazards/common.py
@@ -0,0 +1,89 @@
+HG_SHARE_BASE_DIR = "/builds/hg-shared"
+
+PYTHON_DIR = "/tools/python27"
+SRCDIR = "source"
+
+config = {
+ "log_name": "hazards",
+ "shell-objdir": "obj-opt-js",
+ "analysis-dir": "analysis",
+ "analysis-objdir": "obj-analyzed",
+ "srcdir": SRCDIR,
+ "analysis-scriptdir": "js/src/devtools/rootAnalysis",
+
+ # These paths are relative to the tooltool checkout location
+ "sixgill": "sixgill/usr/libexec/sixgill",
+ "sixgill_bin": "sixgill/usr/bin",
+
+ "python": "python",
+
+ "exes": {
+ 'hgtool.py': '%(abs_tools_dir)s/buildfarm/utils/hgtool.py',
+ 'gittool.py': '%(abs_tools_dir)s/buildfarm/utils/gittool.py',
+ 'tooltool.py': '/tools/tooltool.py',
+ },
+
+ "purge_minsize": 18,
+ "force_clobber": True,
+ 'vcs_share_base': HG_SHARE_BASE_DIR,
+
+ "repos": [{
+ "repo": "https://hg.mozilla.org/build/tools",
+ "revision": "default",
+ "dest": "tools"
+ }],
+
+ "upload_remote_baseuri": 'https://ftp-ssl.mozilla.org/',
+
+ 'tools_dir': "/tools",
+ 'compiler_manifest': "build/gcc.manifest",
+ 'b2g_compiler_manifest': "build/gcc-b2g.manifest",
+ 'compiler_setup': "setup.sh.gcc",
+ 'sixgill_manifest': "build/sixgill.manifest",
+ 'sixgill_setup': "setup.sh.sixgill",
+
+ # Mock.
+ "mock_packages": [
+ "autoconf213", "mozilla-python27-mercurial", "ccache",
+ "zip", "zlib-devel", "glibc-static",
+ "openssh-clients", "mpfr", "wget", "rsync",
+
+ # For building the JS shell
+ "gmp-devel", "nspr", "nspr-devel",
+
+ # For building the browser
+ "dbus-devel", "dbus-glib-devel", "hal-devel",
+ "libICE-devel", "libIDL-devel",
+
+ # For mach resource-usage
+ "python-psutil",
+
+ 'zip', 'git',
+ 'libstdc++-static', 'perl-Test-Simple', 'perl-Config-General',
+ 'gtk2-devel', 'libnotify-devel', 'yasm',
+ 'alsa-lib-devel', 'libcurl-devel',
+ 'wireless-tools-devel', 'libX11-devel',
+ 'libXt-devel', 'mesa-libGL-devel',
+ 'gnome-vfs2-devel', 'GConf2-devel', 'wget',
+ 'mpfr', # required for system compiler
+ 'xorg-x11-font*', # fonts required for PGO
+ 'imake', # required for makedepend!?!
+ 'pulseaudio-libs-devel',
+ 'freetype-2.3.11-6.el6_1.8.x86_64',
+ 'freetype-devel-2.3.11-6.el6_1.8.x86_64',
+ 'gstreamer-devel', 'gstreamer-plugins-base-devel',
+ ],
+ "mock_files": [
+ ("/home/cltbld/.ssh", "/home/mock_mozilla/.ssh"),
+ ("/tools/tooltool.py", "/tools/tooltool.py"),
+ ],
+ "env_replacements": {
+ "pythondir": PYTHON_DIR,
+ "gccdir": "%(abs_work_dir)s/gcc",
+ "sixgilldir": "%(abs_work_dir)s/sixgill",
+ },
+ "partial_env": {
+ "PATH": "%(pythondir)s/bin:%(gccdir)s/bin:%(PATH)s",
+ "LD_LIBRARY_PATH": "%(sixgilldir)s/usr/lib64",
+ },
+}
new file mode 100644
--- /dev/