Bug 1286075: add a static-analysis kind; r=Ehsan
authorDustin J. Mitchell <dustin@mozilla.com>
Thu, 08 Sep 2016 00:31:35 +0000
changeset 357214 882f3c9c1bc061e793a26da57970041f75193e9f
parent 357213 50c72981af794b9e09e1d5ce4eecfa36618bd193
child 357215 ae09f23c30124fcfb4cab32d355a96487280c0c1
push id1324
push usermtabara@mozilla.com
push dateMon, 16 Jan 2017 13:07:44 +0000
treeherdermozilla-release@a01c49833940 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersEhsan
bugs1286075
milestone51.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1286075: add a static-analysis kind; r=Ehsan MozReview-Commit-ID: G8muXBcNd5L
taskcluster/ci/static-analysis/kind.yml
taskcluster/docs/kinds.rst
taskcluster/taskgraph/try_option_syntax.py
new file mode 100644
--- /dev/null
+++ b/taskcluster/ci/static-analysis/kind.yml
@@ -0,0 +1,63 @@
+# 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/.
+
+implementation: taskgraph.task.transform:TransformTask
+
+transforms:
+   - taskgraph.transforms.build_attrs:transforms
+   - taskgraph.transforms.job:transforms
+   - taskgraph.transforms.task:transforms
+
+job-defaults:
+    index:
+        product: firefox
+    treeherder:
+        symbol: S
+        kind: build
+        tier: 1
+    worker:
+        implementation: docker-worker
+        docker-image: {in-tree: desktop-build}
+        max-run-time: 36000
+
+jobs:
+    macosx64-st-an/opt:
+        description: "MacOS X x64 Cross-compile Static Analysis"
+        index:
+            job-name: macosx64-st-an-opt
+        treeherder:
+            platform: osx-10-7/opt
+        worker-type: aws-provisioner-v1/opt-macosx64
+        run:
+            using: mozharness
+            actions: [get-secrets build generate-build-stats update]
+            config:
+                - builds/releng_base_mac_64_cross_builds.py
+                - balrog/production.py
+            # Note that, despite the name "cross-opt", this config variant
+            # enables static analysis.
+            custom-build-variant-cfg: cross-opt
+            script: "mozharness/scripts/fx_desktop_build.py"
+            secrets: true
+            tooltool-downloads: internal
+            keep-artifacts: false
+
+    linux64-st-an/opt:
+        description: "Linux64 Opt Static Analysis"
+        index:
+            job-name: linux64-st-an-opt
+        treeherder:
+            platform: linux64/opt
+        worker-type: aws-provisioner-v1/gecko-{level}-b-linux
+        run:
+            using: mozharness
+            actions: [get-secrets build generate-build-stats]
+            config:
+                - builds/releng_sub_linux_configs/64_stat_and_opt.py
+                - balrog/production.py
+            script: "mozharness/scripts/fx_desktop_build.py"
+            secrets: true
+            tooltool-downloads: public
+            need-xvfb: true
+            keep-artifacts: false
--- a/taskcluster/docs/kinds.rst
+++ b/taskcluster/docs/kinds.rst
@@ -44,16 +44,24 @@ upload-symbols
 Upload-symbols tasks run after builds and upload the symbols files generated by
 build tasks to Socorro for later use in crash analysis.
 
 valgrind
 --------
 
 Valgrind tasks produce builds instrumented by valgrind.
 
+static-analysis
+---------------
+
+Static analysis builds use the compiler to perform some detailed analysis of
+the source code while building.  The useful output from these tasks are their
+build logs, and while they produce a binary, they do not upload it as an
+artifact.
+
 Tests
 -----
 
 Test tasks for Gecko products are divided into several kinds, but share a
 common implementation.  The process goes like this, based on a set of YAML
 files named in ``kind.yml``:
 
  * For each build task, determine the related test platforms based on the build
--- a/taskcluster/taskgraph/try_option_syntax.py
+++ b/taskcluster/taskgraph/try_option_syntax.py
@@ -24,16 +24,17 @@ BUILD_TYPE_ALIASES = {
 # consider anything in this whitelist of kinds to be governed by -b/-p
 BUILD_KINDS = set([
     'build',
     'artifact-build',
     'hazard',
     'l10n',
     'upload-symbols',
     'valgrind',
+    'static-analysis',
 ])
 
 # anything in this list is governed by -j
 JOB_KINDS = set([
     'source-check',
 ])