blob: 5d4f06ddd9996b330c4422b43144cab1d8239acc [file] [log] [blame]
include_defs('//lib/js.defs')
WCT_TEST_PATTERNS = [
'test/*.js',
'test/*.html',
'**/*_test.html',
]
PY_TEST_PATTERNS = ['polygerrit_wct_tests.py']
APP_SRCS = glob(
['**'],
excludes = [
'BUCK',
'BUILD',
'index.html',
'test/**',
] + WCT_TEST_PATTERNS + PY_TEST_PATTERNS)
# List libraries to be copied statically into the build. (i.e. Libraries not
# expected to be Vulcanized.)
WEB_JS_LIBS = [
('bower_components/webcomponentsjs', 'webcomponents-lite.js'),
('bower_components/highlightjs', 'highlight.min.js'),
]
# Map the static libraries to commands for the polygerrit_ui rule.
JS_LIBS_MKDIR_CMDS = []
JS_LIBS_UNZIP_CMDS = []
for lib in WEB_JS_LIBS:
JS_LIBS_MKDIR_CMDS.append('mkdir -p ' + lib[0])
path = lib[0] + '/' + lib[1]
cmd = 'unzip -p $(location //polygerrit-ui:polygerrit_components) %s>%s' % (path, path)
JS_LIBS_UNZIP_CMDS.append(cmd)
# TODO(dborowitz): Putting these rules in this package avoids having to handle
# the app/ prefix like we would have to if this were in the parent directory.
# The only reason for the app subdirectory in the first place was convenience
# when witing server.go; when that goes away, we can just move all the files and
# these rules up one directory.
genrule(
name = 'polygerrit_ui',
cmd = ' && '.join([
'mkdir $TMP/polygerrit_ui',
'cd $TMP/polygerrit_ui',
'mkdir -p {fonts,elements}',
' && '.join(JS_LIBS_MKDIR_CMDS),
'unzip -qd . $(location //polygerrit-ui:fonts)',
'unzip -qd elements $(location :gr-app)',
'cp -rp $SRCDIR/* .',
' && '.join(JS_LIBS_UNZIP_CMDS),
'cd $TMP',
'zip -9qr $OUT .',
]),
srcs = glob([
'favicon.ico',
'index.html',
'styles/**/*.css'
]),
out = 'polygerrit_ui.zip',
visibility = ['PUBLIC'],
)
vulcanize(
name = 'gr-app',
app = 'elements/gr-app.html',
srcs = APP_SRCS,
components = '//polygerrit-ui:polygerrit_components',
)
bower_components(
name = 'test_components',
deps = [
'//polygerrit-ui:polygerrit_components',
'//lib/js:iron-test-helpers',
'//lib/js:test-fixture',
'//lib/js:web-component-tester',
],
)
genrule(
name = 'test_resources',
cmd = ' && '.join([
'cd $TMP',
'unzip -q $(location :test_components)',
'cp -r $SRCDIR/* .',
'zip -r $OUT .',
]),
srcs = APP_SRCS + glob(WCT_TEST_PATTERNS),
out = 'test_resources.zip',
)
python_test(
name = 'polygerrit_tests',
srcs = glob(PY_TEST_PATTERNS),
resources = [':test_resources'],
labels = [
'manual',
'web',
],
)