Files
gerrit/polygerrit-ui/app/BUILD
Dmitrii Filippov 3d7ad5534b Add eslint rules for modules and fix imports
1. Create bazel rules\macro for eslint, use it everywhere instead of
   direct run eslint from npm. Cleanup all duplicated\unused eslint
   pieces.
   The macro can be reused to define rules for other folders and\or
   typescript.
2. Convert eslint configuration to .js. It improves flexibility and
   allows comments in config files.
3. Add eslint-plugin-import and configuration for it.

Change-Id: Ic599a4cd088842f195ecf22ca67e1835fcd9b559
2020-04-01 12:30:53 +02:00

172 lines
3.5 KiB
Python

load(":rules.bzl", "polygerrit_bundle")
load("//tools/js:eslint.bzl", "eslint")
package(default_visibility = ["//visibility:public"])
polygerrit_bundle(
name = "polygerrit_ui",
srcs = glob(
[
"**/*.js",
],
exclude = [
"node_modules/**",
"node_modules_licenses/**",
"test/**",
"**/*_test.html",
"**/*_test.js",
],
),
outs = ["polygerrit_ui.zip"],
entry_point = "elements/gr-app.html",
)
filegroup(
name = "pg_code",
srcs = glob(
[
"**/*.html",
"**/*.js",
],
exclude = [
"node_modules/**",
"node_modules_licenses/**",
],
),
)
filegroup(
name = "pg_code_without_test",
srcs = glob(
[
"**/*.html",
"**/*.js",
],
exclude = [
"node_modules/**",
"node_modules_licenses/**",
"**/*_test.html",
"test/**",
"samples/**",
"**/*_test.js",
],
),
)
# Workaround for https://github.com/bazelbuild/bazel/issues/1305
filegroup(
name = "test-srcs-fg",
srcs = [
"test/common-test-setup.js",
"test/index.html",
":pg_code",
"@ui_dev_npm//:node_modules",
"@ui_npm//:node_modules",
],
)
sh_test(
name = "wct_test",
size = "enormous",
srcs = ["wct_test.sh"],
args = [
"$(location @ui_dev_npm//web-component-tester/bin:wct)",
],
data = [
":test-srcs-fg",
"@ui_dev_npm//web-component-tester/bin:wct",
],
# Should not run sandboxed.
tags = [
"local",
"manual",
],
)
# Define the eslinter for polygerrit-ui app
# The eslint macro creates 2 rules: lint_test and lint_bin
eslint(
name = "lint",
srcs = [":test-srcs-fg"],
config = ".eslintrc-bazel.js",
# The .eslintrc-bazel.js extends the .eslintrc.js config, pass it as a dependency
data = [".eslintrc.js"],
extensions = [
".html",
".js",
],
ignore = ".eslintignore",
plugins = [
"@npm//eslint-config-google",
"@npm//eslint-plugin-html",
"@npm//eslint-plugin-import",
"@npm//eslint-plugin-jsdoc",
],
)
# Workaround for https://github.com/bazelbuild/bazel/issues/1305
filegroup(
name = "polylint-fg",
srcs = [
":pg_code_without_test",
"@ui_npm//:node_modules",
],
)
sh_test(
name = "polylint_test",
size = "large",
srcs = ["polylint_test.sh"],
args = [
"$(location @tools_npm//polymer-cli/bin:polymer)",
"$(location polymer.json)",
],
data = [
"polymer.json",
":polylint-fg",
"@tools_npm//polymer-cli/bin:polymer",
],
# Should not run sandboxed.
tags = [
"local",
"manual",
],
)
DIRECTORIES = [
"admin",
"change",
"change-list",
"core",
"diff",
"edit",
"plugins",
"settings",
"shared",
"gr-app",
]
[sh_test(
name = "template_test_" + directory,
size = "enormous",
srcs = ["template_test.sh"],
args = [directory],
data = [
":pg_code",
":template_test_srcs",
],
tags = [
# Should not run sandboxed.
"local",
"template",
],
) for directory in DIRECTORIES]
filegroup(
name = "template_test_srcs",
srcs = [
"template_test_srcs/convert_for_template_tests.py",
"template_test_srcs/template_test.js",
],
)