forked from mirrors/gecko-dev
Backed out changeset e8fcfc7f8108 (bug 1811850) Backed out changeset f8950d716c9e (bug 1811850) Backed out changeset f650123cc188 (bug 1811850) Backed out changeset d96f90c2c58b (bug 1811850) Backed out changeset c3b0f9666183 (bug 1811850)
579 lines
17 KiB
YAML
579 lines
17 KiB
YAML
# 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:
|
|
always-target: true
|
|
attributes:
|
|
code-review: true
|
|
treeherder:
|
|
kind: test
|
|
tier: 1
|
|
platform: lint/opt
|
|
worker-type: t-linux-xlarge-source
|
|
worker:
|
|
docker-image: {in-tree: "lint"}
|
|
max-run-time: 1800
|
|
artifacts:
|
|
- type: file
|
|
name: public/code-review/mozlint.json
|
|
path: /builds/worker/mozlint.json
|
|
run:
|
|
using: mach
|
|
when:
|
|
files-changed:
|
|
# Other misc lint related files.
|
|
- 'python/mozlint/**'
|
|
- 'tools/lint/**'
|
|
|
|
codespell:
|
|
description: Checks for misspellings in text files
|
|
treeherder:
|
|
symbol: text(spell)
|
|
# We don't want patches to be backed out because of a typo, a follow up bug will be
|
|
# good enough
|
|
tier: 2
|
|
run:
|
|
mach: lint -v -l codespell -f treeherder -f json:/builds/worker/mozlint.json *
|
|
when:
|
|
files-changed:
|
|
- '**/*.js'
|
|
- '**/*.jsm'
|
|
- '**/*.jxs'
|
|
- '**/*.mjs'
|
|
- '**/*.xml'
|
|
- '**/*.html'
|
|
- '**/*.xhtml'
|
|
- '**/*.cpp'
|
|
- '**/*.c'
|
|
- '**/*.h'
|
|
- '**/*.configure'
|
|
- '**/*.py'
|
|
- '**/*.properties'
|
|
- '**/*.rst'
|
|
- '**/*.ftl'
|
|
- 'tools/lint/codespell.yml'
|
|
|
|
|
|
rejected-words:
|
|
description: Reject some words we don't want to use in the code base
|
|
treeherder:
|
|
symbol: text(rejected-words)
|
|
# We don't want patches to be backed out because of this, a follow up bug will be
|
|
# good enough
|
|
tier: 2
|
|
run:
|
|
mach: lint -v -l rejected-words -f treeherder -f json:/builds/worker/mozlint.json *
|
|
when:
|
|
files-changed:
|
|
- '**/*.js'
|
|
- '**/*.jsm'
|
|
- '**/*.jxs'
|
|
- '**/*.mjs'
|
|
- '**/*.xml'
|
|
- '**/*.html'
|
|
- '**/*.xhtml'
|
|
- '**/*.cpp'
|
|
- '**/*.c'
|
|
- '**/*.h'
|
|
- '**/*.idl'
|
|
- '**/*.webidl'
|
|
- '**/*.configure'
|
|
- '**/*.py'
|
|
- '**/*.properties'
|
|
- '**/*.rst'
|
|
- '**/*.ftl'
|
|
- '**/*.java'
|
|
- '**/*.kt'
|
|
- 'tools/lint/rejected-words.yml'
|
|
|
|
eslint:
|
|
description: JS lint check
|
|
treeherder:
|
|
symbol: js(ES)
|
|
run:
|
|
using: run-task
|
|
cwd: '{checkout}'
|
|
command: >
|
|
cp -r /build/node_modules_eslint node_modules &&
|
|
cp -r /build/node_modules_eslint-plugin-mozilla/ tools/lint/eslint/eslint-plugin-mozilla/node_modules &&
|
|
ln -s ../tools/lint/eslint/eslint-plugin-mozilla node_modules &&
|
|
ln -s ../tools/lint/eslint/eslint-plugin-spidermonkey-js node_modules &&
|
|
./mach lint -v -l eslint -f treeherder -f json:/builds/worker/mozlint.json *
|
|
when:
|
|
files-changed:
|
|
# Files that are likely audited.
|
|
- '**/*.js'
|
|
- '**/*.jsm'
|
|
- '**/*.jsx'
|
|
- '**/*.mjs'
|
|
- '**/*.html'
|
|
- '**/*.xhtml'
|
|
- '**/*.xml'
|
|
- 'tools/lint/eslint.yml'
|
|
# Run when eslint policies change.
|
|
- '**/.eslintignore'
|
|
- '**/*eslintrc*'
|
|
# The plugin implementing custom checks.
|
|
- 'tools/lint/eslint/eslint-plugin-mozilla/**'
|
|
- 'tools/lint/eslint/eslint-plugin-spidermonkey-js/**'
|
|
|
|
eslint-build:
|
|
description: ESLint checks with build data
|
|
always-target: false
|
|
# Triggered by cron task, don't run on any projects and disable optimization.
|
|
run-on-projects: []
|
|
when: null
|
|
attributes:
|
|
code-review: false
|
|
treeherder:
|
|
symbol: js(ES-B)
|
|
tier: 2
|
|
run:
|
|
using: run-task
|
|
cwd: '{checkout}'
|
|
command: >
|
|
export MOZ_XPT_ARTIFACTS_DIR="$MOZ_FETCHES_DIR/$MOZ_XPT_ARTIFACTS_DIRNAME" &&
|
|
find "$MOZ_XPT_ARTIFACTS_DIR" &&
|
|
cp -r /build/node_modules_eslint node_modules &&
|
|
cp -r /build/node_modules_eslint-plugin-mozilla/ tools/lint/eslint/eslint-plugin-mozilla/node_modules &&
|
|
ln -s ../tools/lint/eslint/eslint-plugin-mozilla node_modules &&
|
|
ln -s ../tools/lint/eslint/eslint-plugin-spidermonkey-js node_modules &&
|
|
./mach lint -v -l eslint -f treeherder --quiet -f json:/builds/worker/mozlint.json * --rule "mozilla/valid-services-property: error" --rule "mozilla/valid-ci-uses: error"
|
|
worker:
|
|
env:
|
|
MOZ_XPT_ARTIFACTS_DIRNAME: xpt_artifacts
|
|
require-build:
|
|
.*: build-linux64/opt
|
|
fetches:
|
|
build:
|
|
- artifact: target.xpt_artifacts.zip
|
|
dest: xpt_artifacts
|
|
|
|
license:
|
|
description: Check for license blocks in source files.
|
|
treeherder:
|
|
symbol: pedantic(license)
|
|
run:
|
|
mach: lint -v -l license -f treeherder -f json:/builds/worker/mozlint.json *
|
|
when:
|
|
files-changed:
|
|
- '**/*.c'
|
|
- '**/*.cc'
|
|
- '**/*.cpp'
|
|
- '**/*.css'
|
|
- '**/*.dtd'
|
|
- '**/*.ftl'
|
|
- '**/*.h'
|
|
- '**/*.html'
|
|
- '**/*.js'
|
|
- '**/*.jsm'
|
|
- '**/*.jsx'
|
|
- '**/*.m'
|
|
- '**/*.mjs'
|
|
- '**/*.mm'
|
|
- '**/*.properties'
|
|
- '**/*.py'
|
|
- '**/*.rs'
|
|
- '**/*.svg'
|
|
- '**/*.xhtml'
|
|
- '**/*.xml'
|
|
- '**/*.xul'
|
|
- 'tools/lint/license.yml'
|
|
|
|
lintpref:
|
|
description: Check for duplicates between all.js and StaticPrefList.yaml.
|
|
treeherder:
|
|
symbol: misc(pref)
|
|
run:
|
|
mach: lint -v -l lintpref -f treeherder -f json:/builds/worker/mozlint.json *
|
|
when:
|
|
files-changed:
|
|
- 'modules/libpref/init/all.js'
|
|
- 'modules/libpref/init/StaticPrefList.yaml'
|
|
- 'browser/app/profile/firefox.js'
|
|
- 'mobile/android/app/mobile.js'
|
|
- 'devtools/client/preferences/debugger.js'
|
|
- 'mobile/android/app/geckoview-prefs.js'
|
|
- 'browser/branding/official/pref/firefox-branding.js'
|
|
- 'browser/branding/nightly/pref/firefox-branding.js'
|
|
- 'browser/branding/unofficial/pref/firefox-branding.js'
|
|
- 'browser/branding/aurora/pref/firefox-branding.js'
|
|
- 'browser/app/profile/channel-prefs.js'
|
|
- 'mobile/android/installer/mobile-l10n.js'
|
|
- 'mobile/android/locales/en-US/mobile-l10n.js'
|
|
- 'tools/lint/lintpref.yml'
|
|
|
|
mingw-cap:
|
|
description: lint for MinGW Capitalization issues
|
|
treeherder:
|
|
symbol: misc(mingw)
|
|
run:
|
|
mach: lint -v -l mingw-capitalization -f treeherder -f json:/builds/worker/mozlint.json *
|
|
when:
|
|
files-changed:
|
|
- '**/*.cpp'
|
|
- '**/*.cc'
|
|
- '**/*.c'
|
|
- '**/*.h'
|
|
- 'tools/lint/mingw-capitalization.yml'
|
|
|
|
updatebot:
|
|
description: Ensure moz.yaml files are valid per schema
|
|
treeherder:
|
|
symbol: misc(mozyaml)
|
|
run:
|
|
mach: lint -v -l updatebot -f treeherder -f json:/builds/worker/mozlint.json *
|
|
when:
|
|
files-changed:
|
|
- '**/moz.yaml'
|
|
|
|
mscom-init:
|
|
description: Lint for Microsoft COM initialization
|
|
treeherder:
|
|
symbol: misc(mscom)
|
|
run:
|
|
mach: lint -v -l mscom-init -f treeherder -f json:/builds/worker/mozlint.json *
|
|
when:
|
|
files-changed:
|
|
- '**/*.cpp'
|
|
- '**/*.cc'
|
|
- '**/*.c'
|
|
- '**/*.h'
|
|
- 'tools/lint/mscom-init.yml'
|
|
|
|
py-flake8:
|
|
description: flake8 run over the gecko codebase
|
|
treeherder:
|
|
symbol: py(f8)
|
|
run:
|
|
mach: lint -v -l flake8 -f treeherder -f json:/builds/worker/mozlint.json *
|
|
when:
|
|
files-changed:
|
|
- '**/*.py'
|
|
- '**/.flake8'
|
|
- 'tools/lint/flake8.yml'
|
|
# moz.configure files are also Python files.
|
|
- '**/*.configure'
|
|
|
|
py-black:
|
|
description: black run over the gecko codebase
|
|
treeherder:
|
|
symbol: py(black)
|
|
run:
|
|
mach: lint -v -l black -f treeherder -f json:/builds/worker/mozlint.json *
|
|
when:
|
|
files-changed:
|
|
# The list of extensions should match tools/lint/black.yml
|
|
- '**/*.py'
|
|
- '**/moz.build'
|
|
- '**/*.configure'
|
|
- '**/*.mozbuild'
|
|
- 'pyproject.toml'
|
|
- 'tools/lint/black.yml'
|
|
|
|
py-pylint:
|
|
description: pylint run over the gecko codebase
|
|
treeherder:
|
|
symbol: py(pylint)
|
|
run:
|
|
mach: lint -v -l pylint -f treeherder -f json:/builds/worker/mozlint.json *
|
|
when:
|
|
files-changed:
|
|
- '**/*.py'
|
|
- 'tools/lint/pylint.yml'
|
|
# moz.configure files are also Python files
|
|
# However, pylint has some hard time dealing with it
|
|
|
|
py-isort:
|
|
description: isort run over the gecko codebase
|
|
treeherder:
|
|
symbol: py(isort)
|
|
run:
|
|
mach: lint -v -l isort -f treeherder -f json:/builds/worker/mozlint.json *
|
|
when:
|
|
files-changed:
|
|
- '**/*.py'
|
|
- '**/.flake8'
|
|
- '**/.isort.cfg'
|
|
- 'tools/lint/isort.yml'
|
|
# moz.configure files are also Python files.
|
|
- '**/*.configure'
|
|
|
|
test-manifest:
|
|
description: lint test manifests
|
|
treeherder:
|
|
symbol: misc(tm)
|
|
run:
|
|
mach: lint -v -l test-manifest-alpha -l test-manifest-disable -l test-manifest-skip-if -f treeherder -f json:/builds/worker/mozlint.json *
|
|
when:
|
|
files-changed:
|
|
- '**/*.ini'
|
|
- 'python/mozlint/**'
|
|
- 'tools/lint/**'
|
|
- 'tools/lint/test-disable.yml'
|
|
|
|
wptlint-gecko:
|
|
description: web-platform-tests linter
|
|
treeherder:
|
|
symbol: misc(W)
|
|
run:
|
|
mach: lint -v -l wpt -f treeherder -f json:/builds/worker/mozlint.json *
|
|
when:
|
|
files-changed:
|
|
- 'testing/web-platform/tests/**'
|
|
- 'testing/web-platform/mozilla/tests/**'
|
|
- 'tools/lint/wpt.yml'
|
|
|
|
yaml:
|
|
description: yamllint run over the gecko codebase
|
|
treeherder:
|
|
symbol: pedantic(yaml)
|
|
run:
|
|
mach: lint -v -l yaml -f treeherder -f json:/builds/worker/mozlint.json *
|
|
when:
|
|
files-changed:
|
|
- '**/*.yml'
|
|
- '**/*.yaml'
|
|
- '**/.ymllint'
|
|
|
|
rst:
|
|
description: rst lint run over the gecko codebase
|
|
treeherder:
|
|
symbol: text(rst)
|
|
run:
|
|
mach: lint -v -l rst -f treeherder -f json:/builds/worker/mozlint.json *
|
|
when:
|
|
files-changed:
|
|
- '**/*.rst'
|
|
- 'tools/lint/rst.yml'
|
|
|
|
shellcheck:
|
|
description: shellcheck run over the gecko codebase
|
|
treeherder:
|
|
symbol: misc(shell)
|
|
run:
|
|
mach: lint -v -l shellcheck -f treeherder -f json:/builds/worker/mozlint.json *
|
|
when:
|
|
files-changed:
|
|
- '**/*.sh'
|
|
- 'tools/lint/shellcheck.yml'
|
|
|
|
|
|
localization:
|
|
description: l10n tests for strings with errors
|
|
treeherder:
|
|
symbol: l10n(l1nt)
|
|
run:
|
|
mach: lint -v -l l10n -f treeherder *
|
|
attributes:
|
|
code-review: false
|
|
when:
|
|
files-changed:
|
|
- '**/locales/en-US/**'
|
|
- '**/l10n.toml'
|
|
- 'third_party/python/compare-locales/**'
|
|
- 'third_party/python/fluent/**'
|
|
- 'tools/lint/l10n.yml'
|
|
|
|
|
|
l10n-conflicts:
|
|
description: l10n tests for strings with errors and conflicts with cross-channel
|
|
treeherder:
|
|
symbol: l10n(l1nt-conflicts)
|
|
always-target: false
|
|
run-on-projects: []
|
|
run:
|
|
mach: lint -W -l l10n -f treeherder -f json:/builds/worker/mozlint.json *
|
|
when:
|
|
files-changed:
|
|
- '**/locales/en-US/**'
|
|
- '**/l10n.toml'
|
|
- 'third_party/python/compare-locales/**'
|
|
- 'third_party/python/fluent/**'
|
|
- 'tools/lint/l10n.yml'
|
|
|
|
|
|
clang-format:
|
|
description: clang-format on the C/C++ code
|
|
treeherder:
|
|
symbol: cpp(clang-format)
|
|
run:
|
|
mach: lint -v -l clang-format -f treeherder -f json:/builds/worker/mozlint.json *
|
|
when:
|
|
files-changed:
|
|
- '**/*.cpp'
|
|
- '**/*.c'
|
|
- '**/*.cc'
|
|
- '**/*.h'
|
|
- '**/*.m'
|
|
- '**/*.mm'
|
|
- 'tools/lint/clang-format.yml'
|
|
dependencies:
|
|
linux64-clang-tidy: toolchain-linux64-clang-tidy
|
|
fetches:
|
|
linux64-clang-tidy:
|
|
- artifact: clang-tidy.tar.zst
|
|
dest: clang-tools
|
|
|
|
|
|
rustfmt:
|
|
description: rustfmt on the Rust code
|
|
treeherder:
|
|
symbol: rust(rustfmt)
|
|
run:
|
|
mach: lint -v -l rustfmt -f treeherder -f json:/builds/worker/mozlint.json *
|
|
when:
|
|
files-changed:
|
|
- '**/*.rs'
|
|
- 'tools/lint/rustfmt.yml'
|
|
fetches:
|
|
toolchain:
|
|
- linux64-rust
|
|
|
|
|
|
clippy:
|
|
description: clippy on the Rust code
|
|
treeherder:
|
|
symbol: rust(clippy)
|
|
run:
|
|
mach: lint -v -l clippy -f treeherder -f json:/builds/worker/mozlint.json -j 1 *
|
|
when:
|
|
files-changed:
|
|
- '**/*.rs'
|
|
- '**/Cargo.toml'
|
|
- 'tools/lint/clippy.yml'
|
|
fetches:
|
|
toolchain:
|
|
- linux64-rust
|
|
|
|
|
|
file-whitespace:
|
|
description: Check for trailing whitespaces and Windows CR
|
|
platform: lint/opt
|
|
treeherder:
|
|
symbol: pedantic(file-whitespace)
|
|
# We don't want patches to be backed out because of this, a follow up bug will be
|
|
# good enough
|
|
tier: 2
|
|
run:
|
|
mach: lint -v -l file-whitespace -f treeherder -f json:/builds/worker/mozlint.json *
|
|
when:
|
|
files-changed:
|
|
- '**/*.c'
|
|
- '**/*.cc'
|
|
- '**/*.cpp'
|
|
- '**/*.css'
|
|
- '**/*.dtd'
|
|
- '**/*.idl'
|
|
- '**/*.ftl'
|
|
- '**/*.h'
|
|
- '**/*.html'
|
|
- '**/*.md'
|
|
- '**/*.properties'
|
|
- '**/*.py'
|
|
- '**/*.rs'
|
|
- '**/*.rst'
|
|
- '**/*.webidl'
|
|
- '**/*.xhtml'
|
|
- 'tools/lint/file-whitespace.yml'
|
|
|
|
|
|
file-perm:
|
|
description: Check for incorrect permissions on source files
|
|
platform: lint/opt
|
|
treeherder:
|
|
symbol: pedantic(file-perm)
|
|
# We don't want patches to be backed out because of this, a follow up bug will be
|
|
# good enough
|
|
tier: 2
|
|
run:
|
|
mach: lint -v -l file-perm -f treeherder -f json:/builds/worker/mozlint.json *
|
|
when:
|
|
files-changed:
|
|
- '**/*.build'
|
|
- '**/*.c'
|
|
- '**/*.cc'
|
|
- '**/*.cpp'
|
|
- '**/*.flac'
|
|
- '**/*.h'
|
|
- '**/*.html'
|
|
- '**/*.idl'
|
|
- '**/*.js'
|
|
- '**/*.jsm'
|
|
- '**/*.jsx'
|
|
- '**/*.m'
|
|
- '**/*.m4s'
|
|
- '**/*.md'
|
|
- '**/*.mjs'
|
|
- '**/*.mm'
|
|
- '**/*.mozbuild'
|
|
- '**/*.mp4'
|
|
- '**/*.png'
|
|
- '**/*.rs'
|
|
- '**/*.rst'
|
|
- '**/*.svg'
|
|
- '**/*.ttf'
|
|
- '**/*.wasm'
|
|
- '**/*.webidl'
|
|
- '**/*.xhtml'
|
|
- '**/*.xml'
|
|
- '**/*.xul'
|
|
- '**/*.yml'
|
|
- 'tools/lint/file-perm.yml'
|
|
|
|
|
|
perfdocs-verify:
|
|
description: Verifies Performance Testing documentation
|
|
treeherder:
|
|
symbol: text(perfdocs)
|
|
run:
|
|
mach: lint -v -l perfdocs -f treeherder -f json:/builds/worker/mozlint.json *
|
|
worker:
|
|
env:
|
|
WORKSPACE: /builds/worker/checkouts/gecko/
|
|
DECISION_TASK_ID: {task-reference: <decision>}
|
|
artifacts:
|
|
- type: file
|
|
name: public/perfdocs.diff
|
|
path: /builds/worker/diff.txt
|
|
when:
|
|
files-changed:
|
|
- 'taskcluster/**'
|
|
- '**/perftest.ini'
|
|
- 'python/mozperftest/**'
|
|
- 'testing/**/*.ini'
|
|
- 'testing/**/*.yml'
|
|
- 'testing/**/*.rst'
|
|
- 'tools/lint/perfdocs.yml'
|
|
|
|
|
|
fluent-lint:
|
|
description: Check for problems with Fluent files.
|
|
platform: lint/opt
|
|
treeherder:
|
|
symbol: l10n(fluent)
|
|
run:
|
|
mach: lint --linter fluent-lint -f treeherder -f json:/builds/worker/mozlint.json *
|
|
when:
|
|
files-changed:
|
|
- '**/*.ftl'
|
|
- 'tools/lint/fluent-lint.yml'
|
|
- 'tools/lint/fluent-lint/exclusions.yml'
|
|
|
|
trojan-source:
|
|
description: Trojan Source attack - CVE-2021-42572
|
|
platform: lint/opt
|
|
treeherder:
|
|
symbol: misc(trojan-source)
|
|
run:
|
|
mach: lint -v -l trojan-source --include-third-party -f treeherder -f json:/builds/worker/mozlint.json *
|
|
when:
|
|
files-changed:
|
|
- '**/*.c'
|
|
- '**/*.cc'
|
|
- '**/*.cpp'
|
|
- '**/*.h'
|
|
- '**/*.py'
|
|
- '**/*.rs'
|
|
- 'tools/lint/trojan-source.yml'
|