Bug 1319230 - Add a Taskcluster job to build with the tup backend; r?Build draft
authorMike Shal <mshal@mozilla.com>
Thu, 22 Feb 2018 13:31:10 -0500
changeset 774861 dbae3da115d214e5b4a3349570697f1a652a9604
parent 774711 8c71359d60e21055074ae8bc3dcb796d20f0cbaf
push id104532
push userbmo:mshal@mozilla.com
push dateThu, 29 Mar 2018 17:34:51 +0000
reviewersBuild
bugs1319230
milestone61.0a1
Bug 1319230 - Add a Taskcluster job to build with the tup backend; r?Build MozReview-Commit-ID: H3ZmKxXk2NP
browser/config/mozconfigs/linux64/tup
taskcluster/ci/build/linux.yml
testing/mozharness/configs/builds/releng_sub_linux_configs/64_tup.py
testing/mozharness/mozharness/mozilla/building/buildbase.py
new file mode 100644
--- /dev/null
+++ b/browser/config/mozconfigs/linux64/tup
@@ -0,0 +1,16 @@
+MOZ_AUTOMATION_BUILD_SYMBOLS=0
+MOZ_AUTOMATION_INSTALLER=0
+MOZ_AUTOMATION_L10N_CHECK=0
+MOZ_AUTOMATION_PACKAGE=0
+MOZ_AUTOMATION_PACKAGE_TESTS=0
+MOZ_AUTOMATION_UPDATE_PACKAGING=0
+MOZ_AUTOMATION_UPLOAD=0
+MOZ_AUTOMATION_UPLOAD_SYMBOLS=0
+
+TOOLTOOL_DIR=${TOOLTOOL_DIR:-$topsrcdir}
+export TUP=${TOOLTOOL_DIR}/tup/tup
+
+. "$topsrcdir/browser/config/mozconfigs/linux64/common-opt"
+. "$topsrcdir/build/mozconfig.common.override"
+
+ac_add_options --enable-build-backends=Tup
--- a/taskcluster/ci/build/linux.yml
+++ b/taskcluster/ci/build/linux.yml
@@ -715,16 +715,48 @@ linux64-rusttests/debug:
         need-xvfb: true
     run-on-projects: ['trunk', 'try']
     toolchains:
         - linux64-clang
         - linux64-gcc
         - linux64-rust
         - linux64-sccache
 
+linux64-tup/opt:
+    description: "Linux64 Tup"
+    index:
+        product: firefox
+        job-name: linux64-tup-opt
+    treeherder:
+        platform: linux64/opt
+        symbol: Btup
+        tier: 2
+    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
+    worker:
+        max-run-time: 36000
+        env:
+            PERFHERDER_EXTRA_OPTIONS: tup
+    run:
+        using: mozharness
+        actions: [get-secrets build update]
+        config:
+            - builds/releng_base_firefox.py
+            - builds/releng_base_linux_64_builds.py
+        script: "mozharness/scripts/fx_desktop_build.py"
+        secrets: true
+        custom-build-variant-cfg: tup
+        tooltool-downloads: public
+        need-xvfb: true
+    toolchains:
+        - linux64-clang
+        - linux64-gcc
+        - linux64-rust
+        - linux64-sccache
+        - linux64-tup
+
 linux64-jsdcov/opt:
     description: "Linux64-JSDCov Opt"
     index:
         product: firefox
         job-name: linux64-jsdcov-opt
     treeherder:
         platform: linux64-jsdcov/opt
         symbol: B
new file mode 100644
--- /dev/null
+++ b/testing/mozharness/configs/builds/releng_sub_linux_configs/64_tup.py
@@ -0,0 +1,35 @@
+import os
+
+config = {
+    'default_actions': [
+        'clobber',
+        'build',
+        'update',  # decided by query_is_nightly()
+    ],
+    'stage_platform': 'linux64-tup-opt',
+    'enable_signing': False,
+    'enable_talos_sendchange': False,
+    'env': {
+        'MOZBUILD_STATE_PATH': os.path.join(os.getcwd(), '.mozbuild'),
+        'DISPLAY': ':2',
+        'HG_SHARE_BASE_DIR': '/builds/hg-shared',
+        'MOZ_OBJDIR': '%(abs_obj_dir)s',
+        'MOZ_CRASHREPORTER_NO_REPORT': '1',
+        'LC_ALL': 'C',
+        'XPCOM_DEBUG_BREAK': 'stack-and-abort',
+        # 64 bit specific
+        'PATH': '/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:%(abs_obj_dir)s/dist/bin',
+        'TINDERBOX_OUTPUT': '1',
+
+        # sccache doesn't work yet with tup due to the way the server is
+        # spawned, and because the server does the file I/O
+        'SCCACHE_DISABLE': '1',
+    },
+    'mozconfig_variant': 'tup',
+    'enable_count_ctors': False, # TODO: libxul.so needs to be linked for this to work
+    'disable_package_metrics': True, # TODO: the package needs to be created for this to work
+    'artifact_flag_build_variant_in_try': None,
+}
--- a/testing/mozharness/mozharness/mozilla/building/buildbase.py
+++ b/testing/mozharness/mozharness/mozilla/building/buildbase.py
@@ -441,16 +441,17 @@ class BuildOptionParser(object):
         'android-lint': 'builds/releng_sub_%s_configs/%s_lint.py',
         'android-findbugs': 'builds/releng_sub_%s_configs/%s_findbugs.py',
         'android-geckoview-docs': 'builds/releng_sub_%s_configs/%s_geckoview_docs.py',
         'valgrind' : 'builds/releng_sub_%s_configs/%s_valgrind.py',
         'artifact': 'builds/releng_sub_%s_configs/%s_artifact.py',
         'debug-artifact': 'builds/releng_sub_%s_configs/%s_debug_artifact.py',
         'devedition': 'builds/releng_sub_%s_configs/%s_devedition.py',
         'dmd': 'builds/releng_sub_%s_configs/%s_dmd.py',
+        'tup': 'builds/releng_sub_%s_configs/%s_tup.py',
     }
     build_pool_cfg_file = 'builds/build_pool_specifics.py'
     branch_cfg_file = 'builds/branch_specifics.py'
 
     @classmethod
     def _query_pltfrm_and_bits(cls, target_option, options):
         """ determine platform and bits