Bug 1286075: add a static-analysis kind; r=Ehsan
MozReview-Commit-ID: G8muXBcNd5L
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',
])