|  | 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", | 
|  | ], | 
|  | ) |