-
Notifications
You must be signed in to change notification settings - Fork 822
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: use bazel with yarn to manage build instead of multiple lerna c…
- Loading branch information
Showing
328 changed files
with
4,023 additions
and
1,611 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
node_modules |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,87 @@ | ||
# Common Bazel settings for JavaScript/NodeJS workspaces | ||
# This rc file is automatically discovered when Bazel is run in this workspace, | ||
# see https://docs.bazel.build/versions/master/guide.html#bazelrc | ||
# | ||
# The full list of Bazel options: https://docs.bazel.build/versions/master/command-line-reference.html | ||
|
||
# Cache action outputs on disk so they persist across output_base and bazel shutdown (eg. changing branches) | ||
build --disk_cache=.cache/bazel-disk-cache | ||
|
||
# Bazel will create symlinks from the workspace directory to output artifacts. | ||
# Build results will be placed in a directory called "dist/bin" | ||
# Other directories will be created like "dist/testlogs" | ||
# Be aware that this will still create a bazel-out symlink in | ||
# your project directory, which you must exclude from version control and your | ||
# editor's search path. | ||
build --symlink_prefix=dist/ | ||
# To disable the symlinks altogether (including bazel-out) you can use | ||
# build --symlink_prefix=/ | ||
# however this makes it harder to find outputs. | ||
|
||
# Specifies desired output mode for running tests. | ||
# Valid values are | ||
# 'summary' to output only test status summary | ||
# 'errors' to also print test logs for failed tests | ||
# 'all' to print logs for all tests | ||
# 'streamed' to output logs for all tests in real time | ||
# (this will force tests to be executed locally one at a time regardless of --test_strategy value). | ||
test --test_output=errors | ||
|
||
# Support for debugging NodeJS tests | ||
# Add the Bazel option `--config=debug` to enable this | ||
# --test_output=streamed | ||
# Stream stdout/stderr output from each test in real-time. | ||
# See https://docs.bazel.build/versions/master/user-manual.html#flag--test_output for more details. | ||
# --test_strategy=exclusive | ||
# Run one test at a time. | ||
# --test_timeout=9999 | ||
# Prevent long running tests from timing out | ||
# See https://docs.bazel.build/versions/master/user-manual.html#flag--test_timeout for more details. | ||
# --nocache_test_results | ||
# Always run tests | ||
# --node_options=--inspect-brk | ||
# Pass the --inspect-brk option to all tests which enables the node inspector agent. | ||
# See https://nodejs.org/de/docs/guides/debugging-getting-started/#command-line-options for more details. | ||
# --define=VERBOSE_LOGS=1 | ||
# Rules will output verbose logs if the VERBOSE_LOGS environment variable is set. `VERBOSE_LOGS` will be passed to | ||
# `nodejs_binary` and `nodejs_test` via the default value of the `default_env_vars` attribute of those rules. | ||
# --compilation_mode=dbg | ||
# Rules may change their build outputs if the compilation mode is set to dbg. For example, | ||
# mininfiers such as terser may make their output more human readable when this is set. `COMPILATION_MODE` will be passed to | ||
# `nodejs_binary` and `nodejs_test` via the default value of the `default_env_vars` attribute of those rules. | ||
# See https://docs.bazel.build/versions/master/user-manual.html#flag--compilation_mode for more details. | ||
test:debug --test_output=streamed --test_strategy=exclusive --test_timeout=9999 --nocache_test_results --define=VERBOSE_LOGS=1 | ||
# Use bazel run with `--config=debug` to turn on the NodeJS inspector agent. | ||
# The node process will break before user code starts and wait for the debugger to connect. | ||
run:debug --define=VERBOSE_LOGS=1 -- --node_options=--inspect-brk | ||
# The following option will change the build output of certain rules such as terser and may not be desirable in all cases | ||
build:debug --compilation_mode=dbg | ||
|
||
# Turn off legacy external runfiles | ||
# This prevents accidentally depending on this feature, which Bazel will remove. | ||
build --nolegacy_external_runfiles | ||
|
||
# Turn on the "Managed Directories" feature. | ||
# This allows Bazel to share the same node_modules directory with other tools | ||
# NB: this option was introduced in Bazel 0.26 | ||
# See https://docs.bazel.build/versions/master/command-line-reference.html#flag--experimental_allow_incremental_repository_updates | ||
common --experimental_allow_incremental_repository_updates | ||
|
||
# Turn on --incompatible_strict_action_env which was on by default | ||
# in Bazel 0.21.0 but turned off again in 0.22.0. Follow | ||
# https://github.com/bazelbuild/bazel/issues/7026 for more details. | ||
# This flag is needed to so that the bazel cache is not invalidated | ||
# when running bazel via `yarn bazel`. | ||
# See https://github.com/angular/angular/issues/27514. | ||
build --incompatible_strict_action_env | ||
run --incompatible_strict_action_env | ||
|
||
# Load any settings specific to the current user. | ||
# .bazelrc.user should appear in .gitignore so that settings are not shared with team members | ||
# This needs to be last statement in this | ||
# config, as the user configuration should be able to overwrite flags from this file. | ||
# See https://docs.bazel.build/versions/master/best-practices.html#bazelrc | ||
# (Note that we use .bazelrc.user so the file appears next to .bazelrc in directory listing, | ||
# rather than user.bazelrc as suggested in the Bazel docs) | ||
try-import %workspace%/.bazelrc.user | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,99 @@ | ||
load("@npm//eslint:index.bzl", "eslint", "eslint_test") | ||
load("@npm//license-check-and-add:index.bzl", "license_check_and_add_test") | ||
load("@npm//http-server:index.bzl", "http_server") | ||
load("@build_bazel_rules_nodejs//:index.bzl", "nodejs_binary", "nodejs_test") | ||
|
||
exports_files( | ||
[ | ||
"tsconfig.json", | ||
"LICENSE", | ||
"package.json", | ||
"babel.config.json", | ||
"rollup.config.js", | ||
], | ||
visibility = ["//:__subpackages__"], | ||
) | ||
|
||
http_server( | ||
name = "serve", | ||
args = [ | ||
], | ||
data = [ | ||
"//:index.html", | ||
"//samples:outputs", | ||
], | ||
) | ||
|
||
CMD = ''' | ||
set -e | ||
context="{\\"packages\\": {\n" | ||
packages=$$($(location @npm//lerna/bin:lerna) list) | ||
i=0 | ||
for p in $$packages; do | ||
if ((i > 0)); then | ||
context="$${context},\\n" | ||
fi | ||
context="$${context}\\"$$($(location @npm//json/bin:json) -f samples/$$p/data.json title)\\": \\"$$p\\"" | ||
i=$$((i + 1)) | ||
done | ||
context="$${context}}}" | ||
echo -e $${context} > $@ | ||
''' | ||
|
||
# Used to generate data.json | ||
# | ||
# genrule( | ||
# name = "data", | ||
# outs = ["data.json"], | ||
# cmd = CMD, | ||
# local = 1, | ||
# tools = [ | ||
# "@npm//json/bin:json", | ||
# "@npm//lerna/bin:lerna", | ||
# ], | ||
# ) | ||
|
||
genrule( | ||
name = "index", | ||
srcs = [ | ||
":data.json", | ||
":index.njk", | ||
"//shared:templates", | ||
], | ||
outs = ["index.html"], | ||
cmd = "$(location @npm//nunjucks-cli/bin:nunjucks) $(location index.njk) $(location data.json) -p . && cat index.html > $@", | ||
tools = ["@npm//nunjucks-cli/bin:nunjucks"], | ||
) | ||
|
||
|
||
eslint_test( | ||
name = "eslint", | ||
args = ["samples/**/*.js"], | ||
data = [ | ||
# config files | ||
":.eslintrc.json", | ||
"//samples:.eslintrc.json", | ||
# files to test | ||
"//samples:inputs", | ||
# plugins | ||
"@npm//eslint-config-prettier", | ||
"@npm//eslint-plugin-jest", | ||
"@npm//eslint-plugin-prettier", | ||
], | ||
) | ||
|
||
license_check_and_add_test( | ||
name = "license_check", | ||
args = [ | ||
"check", | ||
"**/*.js", | ||
"-f", | ||
".license-check.json", | ||
], | ||
data = [ | ||
":.license-check.json", | ||
":LICENSE", | ||
"//samples:inputs", | ||
], | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
# Bazel workspace created by @bazel/create 0.41.0 | ||
|
||
# Declares that this directory is the root of a Bazel workspace. | ||
# See https://docs.bazel.build/versions/master/build-ref.html#workspace | ||
workspace( | ||
# How this workspace would be referenced with absolute labels from another workspace | ||
name = "googlemaps_js_samples", | ||
# Map the @npm bazel workspace to the node_modules directory. | ||
# This lets Bazel use the same node_modules as other local tooling. | ||
managed_directories = {"@npm": ["node_modules"]}, | ||
) | ||
|
||
# Install the nodejs "bootstrap" package | ||
# This provides the basic tools for running and packaging nodejs programs in Bazel | ||
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") | ||
|
||
http_archive( | ||
name = "build_bazel_rules_nodejs", | ||
sha256 = "8dc1466f8563f3aa4ac7ab7aa3c96651eb7764108219f40b2d1c918e1a81c601", | ||
urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/0.41.0/rules_nodejs-0.41.0.tar.gz"], | ||
) | ||
|
||
load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install") | ||
|
||
yarn_install( | ||
name = "npm", | ||
package_json = "//:package.json", | ||
yarn_lock = "//:yarn.lock", | ||
) | ||
|
||
# Install any Bazel rules which were extracted earlier by the npm_install rule. | ||
load("@npm//:install_bazel_dependencies.bzl", "install_bazel_dependencies") | ||
|
||
install_bazel_dependencies() | ||
|
||
# Setup TypeScript toolchain | ||
load("@npm_bazel_typescript//:index.bzl", "ts_setup_workspace") | ||
|
||
ts_setup_workspace() | ||
|
||
http_archive( | ||
name = "io_bazel_rules_sass", | ||
sha256 = "617e444f47a1f3e25eb1b6f8e88a2451d54a2afdc7c50518861d9f706fc8baaa", | ||
strip_prefix = "rules_sass-1.23.7", | ||
# Make sure to check for the latest version when you install | ||
url = "https://github.com/bazelbuild/rules_sass/archive/1.23.7.zip", | ||
) | ||
|
||
# Fetch required transitive dependencies. This is an optional step because you | ||
# can always fetch the required NodeJS transitive dependency on your own. | ||
load("@io_bazel_rules_sass//:package.bzl", "rules_sass_dependencies") | ||
|
||
rules_sass_dependencies() | ||
|
||
# Setup repositories which are needed for the Sass rules. | ||
load("@io_bazel_rules_sass//:defs.bzl", "sass_repositories") | ||
|
||
sass_repositories() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8,5 +8,6 @@ | |
} | ||
} | ||
] | ||
] | ||
], | ||
"sourceType": "script" | ||
} |
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.