-
-
Notifications
You must be signed in to change notification settings - Fork 15
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
46 changed files
with
1,557 additions
and
255 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,15 @@ | ||
"Aspect bazelrc presets; see https://docs.aspect.build/guides/bazelrc" | ||
|
||
load("@aspect_bazel_lib//lib:bazelrc_presets.bzl", "write_aspect_bazelrc_presets") | ||
|
||
write_aspect_bazelrc_presets( | ||
name = "update_aspect_bazelrc_presets", | ||
presets = [ | ||
"bazel7", | ||
"convenience", | ||
"correctness", | ||
"debug", | ||
"javascript", | ||
"performance", | ||
], | ||
) |
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,15 @@ | ||
# Speed up all builds by not checking if external repository files have been modified. | ||
# Docs: https://github.com/bazelbuild/bazel/blob/1af61b21df99edc2fc66939cdf14449c2661f873/src/main/java/com/google/devtools/build/lib/bazel/repository/RepositoryOptions.java#L244 | ||
common --noexperimental_check_external_repository_files | ||
|
||
# Don't report when the root module's lower bound for a dependency happens to be less than the resolved version. | ||
# This is expected and should NOT prompt an engineer to update our lower bound to match. | ||
# WARNING: For repository 'aspect_bazel_lib', the root module requires module version [email protected], | ||
# but got [email protected] in the resolved dependency graph. | ||
common --check_direct_dependencies=off | ||
|
||
# Directories used by sandboxed non-worker execution may be reused to avoid unnecessary setup costs. | ||
# Save time on Sandbox creation and deletion when many of the same kind of action run during the | ||
# build. | ||
# Docs: https://bazel.build/reference/command-line-reference#flag--reuse_sandbox_directories | ||
build --reuse_sandbox_directories |
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,28 @@ | ||
# Attempt to build & test every target whose prerequisites were successfully built. | ||
# Docs: https://bazel.build/docs/user-manual#keep-going | ||
build --keep_going | ||
|
||
# Output test errors to stderr so users don't have to `cat` or open test failure log files when test | ||
# fail. This makes the log noisier in exchange for reducing the time-to-feedback on test failures for | ||
# users. | ||
# Docs: https://bazel.build/docs/user-manual#test-output | ||
test --test_output=errors | ||
|
||
# Show the output files created by builds that requested more than one target. This helps users | ||
# locate the build outputs in more cases | ||
# Docs: https://bazel.build/docs/user-manual#show-result | ||
build --show_result=20 | ||
|
||
# Bazel picks up host-OS-specific config lines from bazelrc files. For example, if the host OS is | ||
# Linux and you run bazel build, Bazel picks up lines starting with build:linux. Supported OS | ||
# identifiers are `linux`, `macos`, `windows`, `freebsd`, and `openbsd`. Enabling this flag is | ||
# equivalent to using `--config=linux` on Linux, `--config=windows` on Windows, etc. | ||
# Docs: https://bazel.build/reference/command-line-reference#flag--enable_platform_specific_config | ||
common --enable_platform_specific_config | ||
|
||
# Output a heap dump if an OOM is thrown during a Bazel invocation | ||
# (including OOMs due to `--experimental_oom_more_eagerly_threshold`). | ||
# The dump will be written to `<output_base>/<invocation_id>.heapdump.hprof`. | ||
# You may need to configure CI to capture this artifact and upload for later use. | ||
# Docs: https://bazel.build/reference/command-line-reference#flag--heap_dump_on_oom | ||
common --heap_dump_on_oom |
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,75 @@ | ||
# Do not upload locally executed action results to the remote cache. | ||
# This should be the default for local builds so local builds cannot poison the remote cache. | ||
# It should be flipped to `--remote_upload_local_results` on CI | ||
# by using `--bazelrc=.aspect/bazelrc/ci.bazelrc`. | ||
# Docs: https://bazel.build/reference/command-line-reference#flag--remote_upload_local_results | ||
build --noremote_upload_local_results | ||
|
||
# Don't allow network access for build actions in the sandbox. | ||
# Ensures that you don't accidentally make non-hermetic actions/tests which depend on remote | ||
# services. | ||
# Developers should tag targets with `tags=["requires-network"]` to opt-out of the enforcement. | ||
# Docs: https://bazel.build/reference/command-line-reference#flag--sandbox_default_allow_network | ||
build --sandbox_default_allow_network=false | ||
|
||
# Warn if a test's timeout is significantly longer than the test's actual execution time. | ||
# Bazel's default for test_timeout is medium (5 min), but most tests should instead be short (1 min). | ||
# While a test's timeout should be set such that it is not flaky, a test that has a highly | ||
# over-generous timeout can hide real problems that crop up unexpectedly. | ||
# For instance, a test that normally executes in a minute or two should not have a timeout of | ||
# ETERNAL or LONG as these are much, much too generous. | ||
# Docs: https://bazel.build/docs/user-manual#test-verbose-timeout-warnings | ||
test --test_verbose_timeout_warnings | ||
|
||
# Allow the Bazel server to check directory sources for changes. Ensures that the Bazel server | ||
# notices when a directory changes, if you have a directory listed in the srcs of some target. | ||
# Recommended when using | ||
# [copy_directory](https://github.com/bazel-contrib/bazel-lib/blob/main/docs/copy_directory.md) and | ||
# [rules_js](https://github.com/aspect-build/rules_js) since npm package are source directories | ||
# inputs to copy_directory actions. | ||
# Docs: https://bazel.build/reference/command-line-reference#flag--host_jvm_args | ||
startup --host_jvm_args=-DBAZEL_TRACK_SOURCE_DIRECTORIES=1 | ||
|
||
# Allow exclusive tests to run in the sandbox. Fixes a bug where Bazel doesn't enable sandboxing for | ||
# tests with `tags=["exclusive"]`. | ||
# Docs: https://bazel.build/reference/command-line-reference#flag--incompatible_exclusive_test_sandboxed | ||
test --incompatible_exclusive_test_sandboxed | ||
|
||
# Use a static value for `PATH` and does not inherit `LD_LIBRARY_PATH`. Doesn't let environment | ||
# variables like `PATH` sneak into the build, which can cause massive cache misses when they change. | ||
# Use `--action_env=ENV_VARIABLE` if you want to inherit specific environment variables from the | ||
# client, but note that doing so can prevent cross-user caching if a shared cache is used. | ||
# Docs: https://bazel.build/reference/command-line-reference#flag--incompatible_strict_action_env | ||
build --incompatible_strict_action_env | ||
|
||
# Propagate tags from a target declaration to the actions' execution requirements. | ||
# Ensures that tags applied in your BUILD file, like `tags=["no-remote"]` | ||
# get propagated to actions created by the rule. | ||
# Without this option, you rely on rules authors to manually check the tags you passed | ||
# and apply relevant ones to the actions they create. | ||
# See https://github.com/bazelbuild/bazel/issues/8830 for details. | ||
# Docs: https://bazel.build/reference/command-line-reference#flag--experimental_allow_tags_propagation | ||
build --experimental_allow_tags_propagation | ||
fetch --experimental_allow_tags_propagation | ||
query --experimental_allow_tags_propagation | ||
|
||
# Do not automatically create `__init__.py` files in the runfiles of Python targets. Fixes the wrong | ||
# default that comes from Google's internal monorepo by using `__init__.py` to delimit a Python | ||
# package. Precisely, when a `py_binary` or `py_test` target has `legacy_create_init` set to `auto (the | ||
# default), it is treated as false if and only if this flag is set. See | ||
# https://github.com/bazelbuild/bazel/issues/10076. | ||
# Docs: https://bazel.build/reference/command-line-reference#flag--incompatible_default_to_explicit_init_py | ||
build --incompatible_default_to_explicit_init_py | ||
|
||
# Set default value of `allow_empty` to `False` in `glob()`. This prevents a common mistake when | ||
# attempting to use `glob()` to match files in a subdirectory that is opaque to the current package | ||
# because it contains a BUILD file. See https://github.com/bazelbuild/bazel/issues/8195. | ||
# Docs: https://bazel.build/reference/command-line-reference#flag--incompatible_disallow_empty_glob | ||
common --incompatible_disallow_empty_glob | ||
|
||
# Always download coverage files for tests from the remote cache. By default, coverage files are not | ||
# downloaded on test result cache hits when --remote_download_minimal is enabled, making it impossible | ||
# to generate a full coverage report. | ||
# Docs: https://bazel.build/reference/command-line-reference#flag--experimental_fetch_all_coverage_outputs | ||
# detching remote cache results | ||
test --experimental_fetch_all_coverage_outputs |
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,19 @@ | ||
############################################################ | ||
# Use `bazel test --config=debug` to enable these settings # | ||
############################################################ | ||
|
||
# Stream stdout/stderr output from each test in real-time. | ||
# Docs: https://bazel.build/docs/user-manual#test-output | ||
test:debug --test_output=streamed | ||
|
||
# Run one test at a time. | ||
# Docs: https://bazel.build/reference/command-line-reference#flag--test_strategy | ||
test:debug --test_strategy=exclusive | ||
|
||
# Prevent long running tests from timing out. | ||
# Docs: https://bazel.build/docs/user-manual#test-timeout | ||
test:debug --test_timeout=9999 | ||
|
||
# Always run tests even if they have cached results. | ||
# Docs: https://bazel.build/docs/user-manual#cache-test-results | ||
test:debug --nocache_test_results |
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,11 @@ | ||
# Aspect recommended Bazel flags when using Aspect's JavaScript rules: https://github.com/aspect-build/rules_js | ||
# Docs for Node.js flags: https://nodejs.org/en/docs/guides/debugging-getting-started/#command-line-options | ||
|
||
# Support for debugging Node.js tests. 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. 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. | ||
# Docs: https://nodejs.org/en/docs/guides/debugging-getting-started/#command-line-options | ||
run:debug -- --node_options=--inspect-brk | ||
test:debug --test_env=NODE_OPTIONS=--inspect-brk |
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,27 @@ | ||
# Directories used by sandboxed non-worker execution may be reused to avoid unnecessary setup costs. | ||
# Save time on Sandbox creation and deletion when many of the same kind of action run during the | ||
# build. | ||
# No longer experimental in Bazel 6: https://github.com/bazelbuild/bazel/commit/c1a95501a5611878e5cc43a3cc531f2b9e47835b | ||
# Docs: https://bazel.build/reference/command-line-reference#flag--reuse_sandbox_directories | ||
build --experimental_reuse_sandbox_directories | ||
|
||
# Do not build runfiles symlink forests for external repositories under | ||
# `.runfiles/wsname/external/repo` (in addition to `.runfiles/repo`). This reduces runfiles & | ||
# sandbox creation times & prevents accidentally depending on this feature which may flip to off by | ||
# default in the future. Note, some rules may fail under this flag, please file issues with the rule | ||
# author. | ||
# Docs: https://bazel.build/reference/command-line-reference#flag--legacy_external_runfiles | ||
build --nolegacy_external_runfiles | ||
|
||
# Avoid creating a runfiles tree for binaries or tests until it is needed. | ||
# Docs: https://bazel.build/reference/command-line-reference#flag--build_runfile_links | ||
# See https://github.com/bazelbuild/bazel/issues/6627 | ||
# | ||
# This may break local workflows that `build` a binary target, then run the resulting program | ||
# outside of `bazel run`. In those cases, the script will need to call | ||
# `bazel build --build_runfile_links //my/binary:target` and then execute the resulting program. | ||
build --nobuild_runfile_links | ||
|
||
# Needed prior to Bazel 8; see | ||
# https://github.com/bazelbuild/bazel/issues/20577 | ||
coverage --build_runfile_links |
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,3 @@ | ||
configure: | ||
languages: | ||
javascript: true |
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,2 @@ | ||
node_modules | ||
dist |
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,2 @@ | ||
BAZELISK_BASE_URL=https://static.aspect.build/aspect | ||
USE_BAZEL_VERSION=aspect/2024.51.11 |
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,13 @@ | ||
# Import Aspect bazelrc presets | ||
import %workspace%/.aspect/bazelrc/bazel7.bazelrc | ||
import %workspace%/.aspect/bazelrc/convenience.bazelrc | ||
import %workspace%/.aspect/bazelrc/correctness.bazelrc | ||
import %workspace%/.aspect/bazelrc/debug.bazelrc | ||
import %workspace%/.aspect/bazelrc/javascript.bazelrc | ||
import %workspace%/.aspect/bazelrc/performance.bazelrc | ||
|
||
# honor the setting of `skipLibCheck` in the tsconfig.json file | ||
common --@aspect_rules_ts//ts:skipLibCheck=honor_tsconfig | ||
|
||
# Use "tsc" as the transpiler when ts_project has no `transpiler` set. | ||
common --@aspect_rules_ts//ts:default_to_tsc_transpiler |
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 @@ | ||
8.0.0 |
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,15 @@ | ||
# This file contains Bazel settings to apply on CI only. | ||
# It is referenced with a --bazelrc option in the call to bazel in ci.yaml | ||
|
||
# Debug where options came from | ||
build --announce_rc | ||
# This directory is configured in GitHub actions to be persisted between runs. | ||
# We do not enable the repository cache to cache downloaded external artifacts | ||
# as these are generally faster to download again than to fetch them from the | ||
# GitHub actions cache. | ||
build --disk_cache=~/.cache/bazel | ||
# Don't rely on test logs being easily accessible from the test runner, | ||
# though it makes the log noisier. | ||
test --test_output=errors | ||
# Allows tests to run bazelisk-in-bazel, since this is the cache folder used | ||
test --test_env=XDG_CACHE_HOME |
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 |
---|---|---|
|
@@ -9,6 +9,12 @@ on: | |
# Allows you to run this workflow manually from the Actions tab | ||
workflow_dispatch: | ||
|
||
concurrency: | ||
# Cancel previous actions from the same PR or branch except 'main' branch. | ||
# See https://docs.github.com/en/actions/using-jobs/using-concurrency and https://docs.github.com/en/actions/learn-github-actions/contexts for more info. | ||
group: concurrency-group::${{ github.workflow }}::${{ github.event.pull_request.number > 0 && format('pr-{0}', github.event.pull_request.number) || github.ref_name }}${{ github.ref_name == 'main' && format('::{0}', github.run_id) || ''}} | ||
cancel-in-progress: ${{ github.ref_name != 'main' }} | ||
|
||
jobs: | ||
test: | ||
runs-on: ubuntu-latest | ||
|
@@ -40,3 +46,36 @@ jobs: | |
cache: pnpm | ||
- run: pnpm install --frozen-lockfile | ||
- run: pnpm run e2e | ||
|
||
bazel: | ||
uses: bazel-contrib/.github/.github/workflows/bazel.yaml@v6 | ||
with: | ||
folders: | | ||
[ | ||
".", | ||
] | ||
pre-commit: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: pre-commit/[email protected] | ||
# For branch protection settings, this job provides a "stable" name that can be used to gate PR merges | ||
# on "all matrix jobs were successful". | ||
conclusion: | ||
needs: [test, pre-commit] | ||
runs-on: ubuntu-latest | ||
if: always() | ||
steps: | ||
- uses: technote-space/workflow-conclusion-action@45ce8e0eb155657ab8ccf346ade734257fd196a5 # v3.0.3 | ||
|
||
# Note: possible conclusion values: | ||
# https://github.com/technote-space/workflow-conclusion-action/blob/main/src/constant.ts | ||
- name: report success | ||
if: ${{ env.WORKFLOW_CONCLUSION == 'success' }} | ||
working-directory: /tmp | ||
run: echo ${{ env.WORKFLOW_CONCLUSION }} && exit 0 | ||
|
||
- name: report failure | ||
if: ${{ env.WORKFLOW_CONCLUSION == 'failure' }} | ||
working-directory: /tmp | ||
run: echo ${{ env.WORKFLOW_CONCLUSION }} && exit 1 |
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,53 @@ | ||
load("@aspect_rules_js//js:defs.bzl", "js_library") | ||
load("@npm//:defs.bzl", "npm_link_all_packages") | ||
load("//bazel/ts:defs.bzl", "ts_config", "ts_project") | ||
|
||
exports_files( | ||
[ | ||
"babel.config.json", | ||
"pnpm-lock.yaml", | ||
], | ||
visibility = ["//:__subpackages__"], | ||
) | ||
|
||
npm_link_all_packages(name = "node_modules") | ||
|
||
ts_project( | ||
name = "root", | ||
srcs = [ | ||
"jest.setup.ts", | ||
], | ||
visibility = ["//src:__subpackages__"], | ||
deps = [ | ||
":node_modules/@jest/globals", | ||
":node_modules/jest-extended", | ||
"//:node_modules/@types/jest", # keep | ||
], | ||
) | ||
|
||
ts_config( | ||
name = "tsconfig", | ||
src = "tsconfig.json", | ||
visibility = [ | ||
"//e2e:__subpackages__", | ||
"//src:__subpackages__", | ||
], | ||
) | ||
|
||
js_library( | ||
name = "package_json", | ||
srcs = ["package.json"], | ||
visibility = ["//:__subpackages__"], | ||
) | ||
|
||
js_library( | ||
name = "jest_config", | ||
srcs = [ | ||
"jest.config.js", | ||
], | ||
visibility = ["//:__subpackages__"], | ||
deps = [ | ||
"//:node_modules/babel-jest", | ||
"//:root", | ||
], | ||
) |
Oops, something went wrong.