Kasper Nilsson bdb5302dba Use downloaded bower components in polylint_test.sh
Previously, polylint_test.sh used the local copies of bower components
that the PolyGerrit project has in its repo to do local development for
testing. This was causing an issue, as these were not found on the CI
system.

This makes the test take longer, but makes it standalone enough to
function on CI.

Change-Id: I21f3ed67ade1af352b2ccf21db6644b2bd1d2fee
2017-05-25 18:27:14 -07:00

200 lines
4.7 KiB
Python

package(
default_visibility = ["//visibility:public"],
)
load("//tools/bzl:genrule2.bzl", "genrule2")
load("@io_bazel_rules_closure//closure:defs.bzl", "closure_js_library", "closure_js_binary")
load(
"//tools/bzl:js.bzl",
"bower_component_bundle",
"vulcanize",
"bower_component",
"js_component",
)
vulcanize(
name = "gr-app",
srcs = glob(
[
"**/*.html",
"**/*.js",
],
exclude = [
"bower_components/**",
"index.html",
"test/**",
"**/*_test.html",
],
),
app = "elements/gr-app.html",
deps = ["//polygerrit-ui:polygerrit_components.bower_components"],
)
closure_js_library(
name = "closure_lib",
srcs = ["gr-app.js"],
convention = "GOOGLE",
# TODO(davido): Clean up these issues: http://paste.openstack.org/show/608548
# and remove this supression
suppress = ["JSC_UNUSED_LOCAL_ASSIGNMENT"],
deps = [
"//lib/polymer_externs:polymer_closure",
"@io_bazel_rules_closure//closure/library",
],
)
closure_js_binary(
name = "closure_bin",
# Known issue: Closure compilation not compatible with Polymer behaviors.
# See: https://github.com/google/closure-compiler/issues/2042
compilation_level = "WHITESPACE_ONLY",
defs = [
"--polymer_pass",
"--jscomp_off=duplicate",
"--force_inject_library=es6_runtime",
],
language = "ECMASCRIPT5",
deps = [":closure_lib"],
)
filegroup(
name = "top_sources",
srcs = [
"favicon.ico",
"index.html",
],
)
filegroup(
name = "css_sources",
srcs = glob(["styles/**/*.css"]),
)
filegroup(
name = "app_sources",
srcs = [
"closure_bin.js",
"gr-app.html",
],
)
genrule2(
name = "polygerrit_ui",
srcs = [
"//lib/fonts:sourcecodepro",
"//lib/js:highlightjs_files",
":top_sources",
":css_sources",
":app_sources",
# we extract from the zip, but depend on the component for license checking.
"@webcomponentsjs//:zipfile",
"//lib/js:webcomponentsjs",
],
outs = ["polygerrit_ui.zip"],
cmd = " && ".join([
"mkdir -p $$TMP/polygerrit_ui/{styles,fonts,bower_components/{highlightjs,webcomponentsjs},elements}",
"for f in $(locations :app_sources); do ext=$${f##*.}; cp -p $$f $$TMP/polygerrit_ui/elements/gr-app.$$ext; done",
"cp $(locations //lib/fonts:sourcecodepro) $$TMP/polygerrit_ui/fonts/",
"for f in $(locations :top_sources); do cp $$f $$TMP/polygerrit_ui/; done",
"for f in $(locations :css_sources); do cp $$f $$TMP/polygerrit_ui/styles; done",
"for f in $(locations //lib/js:highlightjs_files); do cp $$f $$TMP/polygerrit_ui/bower_components/highlightjs/ ; done",
"unzip -qd $$TMP/polygerrit_ui/bower_components $(location @webcomponentsjs//:zipfile) webcomponentsjs/webcomponents-lite.js",
"cd $$TMP",
"find . -exec touch -t 198001010000 '{}' ';'",
"zip -qr $$ROOT/$@ *",
]),
)
bower_component_bundle(
name = "test_components",
testonly = 1,
deps = [
"//lib/js:iron-test-helpers",
"//lib/js:test-fixture",
"//lib/js:web-component-tester",
"//polygerrit-ui:polygerrit_components.bower_components",
],
)
filegroup(
name = "pg_code",
srcs = glob(
[
"**/*.html",
"**/*.js",
],
exclude = [
"bower_components/**",
],
),
)
filegroup(
name = "bower_components",
srcs = glob(
[
"bower_components/**/*.html",
"bower_components/**/*.js",
]
),
)
genrule2(
name = "pg_code_zip",
srcs = [":pg_code"],
outs = ["pg_code.zip"],
cmd = " && ".join([
("tar -hcf- $(locations :pg_code) |" +
" tar --strip-components=2 -C $$TMP/ -xf-"),
"cd $$TMP",
"find . -exec touch -t 198001010000 '{}' ';'",
"zip -rq $$ROOT/$@ *",
]),
)
sh_test(
name = "wct_test",
size = "large",
srcs = ["wct_test.sh"],
data = [
"test/index.html",
":pg_code.zip",
":test_components.zip",
],
# Should not run sandboxed.
tags = [
"local",
"manual",
],
)
sh_test(
name = "lint_test",
size = "large",
srcs = ["lint_test.sh"],
data = [
":pg_code",
".eslintrc.json",
],
# Should not run sandboxed.
tags = [
"local",
"manual",
],
)
sh_test(
name = "polylint_test",
size = "large",
srcs = ["polylint_test.sh"],
data = [
":pg_code",
"//polygerrit-ui:polygerrit_components.bower_components.zip",
],
# Should not run sandboxed.
tags = [
"local",
"manual",
],
)