summaryrefslogtreecommitdiffstats
path: root/taskcluster/ci/source-test/clang.yml
diff options
context:
space:
mode:
Diffstat (limited to 'taskcluster/ci/source-test/clang.yml')
-rw-r--r--taskcluster/ci/source-test/clang.yml116
1 files changed, 116 insertions, 0 deletions
diff --git a/taskcluster/ci/source-test/clang.yml b/taskcluster/ci/source-test/clang.yml
new file mode 100644
index 0000000000..f513ec8dc0
--- /dev/null
+++ b/taskcluster/ci/source-test/clang.yml
@@ -0,0 +1,116 @@
+# 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/.
+---
+job-defaults:
+ # Run only on try and code-review tasks
+ # to avoid running clang tools on the whole codebase
+ run-on-projects: []
+ platform: linux64/debug
+ worker-type: t-linux-xlarge-source
+ attributes:
+ code-review: true
+ worker:
+ docker-image: {in-tree: static-analysis-build}
+ max-run-time: 5400
+ treeherder:
+ kind: other
+ tier: 2
+ run:
+ using: run-task
+ tooltool-downloads: public
+ fetches:
+ toolchain:
+ - linux64-cbindgen
+ - linux64-nasm
+ - linux64-node
+ when:
+ files-changed:
+ - '**/*.c'
+ - '**/*.cpp'
+ - '**/*.cc'
+ - '**/*.cxx'
+ - '**/*.m'
+ - '**/*.mm'
+
+tidy:
+ description: Run static-analysis (clang-tidy) on C/C++ patches
+ treeherder:
+ symbol: cpp(clang-tidy)
+ run:
+ cwd: '{checkout}'
+ command: >-
+ source taskcluster/scripts/misc/source-test-clang-setup.sh &&
+ ./mach --log-no-times static-analysis check --outgoing --output $HOME/clang-tidy.json --format json
+ fetches:
+ toolchain:
+ - linux64-clang
+ - linux64-clang-tidy
+ - linux64-rust
+ - sysroot-x86_64-linux-gnu
+ - sysroot-wasm32-wasi
+ worker:
+ artifacts:
+ - type: file
+ name: public/code-review/clang-tidy.json
+ path: /builds/worker/clang-tidy.json
+
+format:
+ description: Run clang-format on C/C++ patches
+ treeherder:
+ symbol: cpp(clang-format)
+ run:
+ cwd: '{checkout}'
+ command: >-
+ source taskcluster/scripts/misc/source-test-clang-setup.sh &&
+ ./mach --log-no-times clang-format --outgoing --output $HOME/clang-format.json --format json &&
+ ./mach --log-no-times clang-format --outgoing --output $HOME/clang-format.diff --format diff
+ fetches:
+ toolchain:
+ - linux64-clang
+ - linux64-clang-tidy
+ - linux64-rust
+ - sysroot-x86_64-linux-gnu
+ - sysroot-wasm32-wasi
+ when:
+ files-changed:
+ - '**/*.c'
+ - '**/*.cpp'
+ - '**/*.cc'
+ - '**/*.cxx'
+ - '**/*.m'
+ - '**/*.mm'
+ - '**/*.h'
+ - '**/*.hh'
+ - '**/*.hpp'
+ - '**/*.hxx'
+ worker:
+ artifacts:
+ - type: file
+ name: public/code-review/clang-format.json
+ path: /builds/worker/clang-format.json
+ - type: file
+ name: public/code-review/clang-format.diff
+ path: /builds/worker/clang-format.diff
+
+external:
+ description: Run static-analysis (clang-tidy) on C/C++ patches with external checks
+ treeherder:
+ symbol: cpp(clang-tidy-external)
+ run:
+ cwd: '{checkout}'
+ command: >-
+ source taskcluster/scripts/misc/source-test-clang-setup.sh &&
+ ./mach --log-no-times static-analysis check --checks="-*,mozilla-civet-*" --outgoing --output $HOME/clang-tidy.json --format json
+ fetches:
+ toolchain:
+ - linux64-clang
+ - linux64-clang-tidy-external
+ - linux64-rust
+ - sysroot-x86_64-linux-gnu
+ - sysroot-wasm32-wasi
+ worker:
+ artifacts:
+ - type: file
+ name: public/code-review/clang-tidy.json
+ path: /builds/worker/clang-tidy.json