Bug 1304998 - enable tc win pgo; r=dustin draft
authorRob Thijssen <rthijssen@mozilla.com>
Thu, 29 Sep 2016 07:49:30 +0100
changeset 418886 34817db2922fa27a4aa36e719dad11f598ad3f2d
parent 418456 b1d60f2f68c7cccc96fcf9a2075bb430a500a0f2
child 419383 ef60b40c4823322318d2e0d9d2b7aa6e5d897b88
push id30788
push userrthijssen@mozilla.com
push dateThu, 29 Sep 2016 06:50:39 +0000
reviewersdustin
bugs1304998
milestone52.0a1
Bug 1304998 - enable tc win pgo; r=dustin MozReview-Commit-ID: 8X9aj19Kp13
build/mozconfig.cache
taskcluster/ci/build/windows.yml
taskcluster/taskgraph/transforms/gecko_v2_whitelist.py
taskcluster/taskgraph/transforms/job/mozharness.py
--- a/build/mozconfig.cache
+++ b/build/mozconfig.cache
@@ -77,18 +77,21 @@ elif test -z "$CCACHE_DIR" -a -z "$SCCAC
                 master=dummy.usw1.mozilla.com
                 ;;
             us-west-2)
                 master=dummy.usw2.mozilla.com
                 ;;
             esac
         fi
     fi
+fi
 
-
+# if platform hasn't been determined from buildprops, and we're on windows,
+# it must be set to prevent adding ac_add_options --with-ccache below
+if test -z "$platform"; then
     # set platform based on the SYSTEMROOT env var
     case "${SYSTEMROOT}" in
     *Windows)
         platform=windows
         ;;
     esac
 fi
 
--- a/taskcluster/ci/build/windows.yml
+++ b/taskcluster/ci/build/windows.yml
@@ -33,16 +33,37 @@ win32/opt:
         implementation: generic-worker
         max-run-time: 7200
     run:
         using: mozharness
         script: mozharness/scripts/fx_desktop_build.py
         config:
             - builds/taskcluster_firefox_win32_opt.py
 
+win32/pgo:
+    description: "Win32 Opt PGO"
+    index:
+        product: firefox
+        job-name:
+            gecko-v2: win32-pgo
+    treeherder:
+        platform: windows2012-32/pgo
+        symbol: tc(B)
+        tier: 2
+    worker-type: aws-provisioner-v1/gecko-{level}-b-win2012
+    worker:
+        implementation: generic-worker
+        max-run-time: 7200
+    run:
+        using: mozharness
+        options: [enable-pgo]
+        script: mozharness/scripts/fx_desktop_build.py
+        config:
+            - builds/taskcluster_firefox_win32_opt.py
+
 win64/debug:
     description: "Win64 Debug"
     index:
         product: firefox
         job-name:
             gecko-v2: win64-debug
     treeherder:
         platform: windows2012-64/debug
@@ -73,8 +94,29 @@ win64/opt:
         implementation: generic-worker
         max-run-time: 7200
     run:
         using: mozharness
         script: mozharness/scripts/fx_desktop_build.py
         config:
             - builds/taskcluster_firefox_win64_opt.py
 
+win64/pgo:
+    description: "Win64 Opt PGO"
+    index:
+        product: firefox
+        job-name:
+            gecko-v2: win64-pgo
+    treeherder:
+        platform: windows2012-64/opt
+        symbol: tc(B)
+        tier: 2
+    worker-type: aws-provisioner-v1/gecko-{level}-b-win2012
+    worker:
+        implementation: generic-worker
+        max-run-time: 7200
+    run:
+        using: mozharness
+        options: [enable-pgo]
+        script: mozharness/scripts/fx_desktop_build.py
+        config:
+            - builds/taskcluster_firefox_win64_opt.py
+
--- a/taskcluster/taskgraph/transforms/gecko_v2_whitelist.py
+++ b/taskcluster/taskgraph/transforms/gecko_v2_whitelist.py
@@ -58,18 +58,20 @@ JOB_NAME_WHITELIST = set([
     'sm-nonunified-debug',
     'sm-package-opt',
     'sm-plaindebug-debug',
     'sm-plain-opt',
     'sm-rootanalysis-debug',
     'sm-tsan-opt',
     'win32-debug',
     'win32-opt',
+    'win32-pgo',
     'win64-debug',
     'win64-opt',
+    'win64-pgo',
 ])
 
 JOB_NAME_WHITELIST_ERROR = """\
 The gecko-v2 job name {} is not in the whitelist in __file__.
 If this job runs on Buildbot, please ensure that the job names match between
 Buildbot and TaskCluster, then add the job name to the whitelist.  If this is a
 new job, there is nothing to check -- just add the job to the whitelist.
 """
--- a/taskcluster/taskgraph/transforms/job/mozharness.py
+++ b/taskcluster/taskgraph/transforms/job/mozharness.py
@@ -148,17 +148,17 @@ def mozharness_on_docker_worker_setup(co
 
 # We use the generic worker to run tasks on Windows
 @run_job_using("generic-worker", "mozharness", schema=mozharness_run_schema)
 def mozharness_on_windows(config, job, taskdesc):
     run = job['run']
 
     # fail if invalid run options are included
     invalid = []
-    for prop in ['actions', 'options', 'custom-build-variant-cfg',
+    for prop in ['actions', 'custom-build-variant-cfg',
                  'tooltool-downloads', 'secrets', 'taskcluster-proxy',
                  'need-xvfb']:
         if prop in run and run[prop]:
             invalid.append(prop)
     if not run.get('keep-artifacts', True):
         invalid.append('keep-artifacts')
     if invalid:
         raise Exception("Jobs run using mozharness on Windows do not support properties " +
@@ -182,15 +182,17 @@ def mozharness_on_windows(config, job, t
     })
 
     mh_command = [r'c:\mozilla-build\python\python.exe']
     mh_command.append('\\'.join([r'.\build\src\testing', run['script'].replace('/', '\\')]))
     for cfg in run['config']:
         mh_command.append('--config ' + cfg.replace('/', '\\'))
     mh_command.append('--branch ' + config.params['project'])
     mh_command.append(r'--skip-buildbot-actions --work-dir %cd:Z:=z:%\build')
+    for option in run.get('options', []):
+        mh_command.append('--' + option)
     hg = r'c:\Program Files\Mercurial\hg.exe'
     worker['command'] = [
         r'mkdir .\build\src',
         r'"{}" share c:\builds\hg-shared\mozilla-central .\build\src'.format(hg),
         r'"{}" pull -u -R .\build\src --rev %GECKO_HEAD_REV% %GECKO_HEAD_REPOSITORY%'.format(hg),
         ' '.join(mh_command),
     ]