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', '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 fonts $(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', ], )