blob: 7bca96de6980cb6792cd89311e0abdfd2867f32e [file] [log] [blame]
load("@io_bazel_rules_go//go:def.bzl", "go_binary")
load("//tools/bzl:genrule2.bzl", "genrule2")
package(default_visibility = ["//visibility:public"])
genrule2(
name = "fonts",
srcs = [
"//lib/fonts:robotofonts",
],
outs = ["fonts.zip"],
cmd = " && ".join([
"mkdir -p $$TMP/fonts",
"cp $(SRCS) $$TMP/fonts/",
"cd $$TMP",
"find fonts/ -exec touch -t 198001010000 '{}' ';'",
"zip -qr $$ROOT/$@ fonts",
]),
output_to_bindir = 1,
)
go_binary(
name = "devserver",
srcs = ["server.go"],
data = [
":fonts.zip",
"@ui_dev_npm//:node_modules",
"@ui_npm//:node_modules",
],
deps = [
"@org_golang_x_tools//godoc/vfs/httpfs:go_default_library",
"@org_golang_x_tools//godoc/vfs/zipfs:go_default_library",
],
)
# Define a karma+plugins binary to run karma-mocha tests.
# Can be reused multiple time, if there are multiple karma test rules
sh_binary(
name = "karma_bin",
srcs = ["@ui_dev_npm//:node_modules/karma/bin/karma"],
data = [
"@ui_dev_npm//@open-wc/karma-esm",
"@ui_dev_npm//chai",
"@ui_dev_npm//karma-chrome-launcher",
"@ui_dev_npm//karma-mocha",
"@ui_dev_npm//karma-mocha-reporter",
"@ui_dev_npm//karma/bin:karma",
"@ui_dev_npm//mocha",
],
)
# Run all tests in one.
# TODO(dmfilippov): allow parallel tests for karma - either on the bazel level
# or on the karma level. For now single sh_test is enough.
sh_test(
name = "karma_test",
size = "enormous",
srcs = ["karma_test.sh"],
args = [
"$(location :karma_bin)",
"$(location karma.conf.js)",
],
data = [
"karma.conf.js",
":karma_bin",
"//polygerrit-ui/app:test-srcs-fg",
],
# Should not run sandboxed.
tags = [
"karma",
"local",
"manual",
],
)