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