254 lines
5.7 KiB
Python
254 lines
5.7 KiB
Python
load("@rules_shell//shell:sh_test.bzl", "sh_test")
|
|
load("//bun:defs.bzl", "bun_build", "bun_bundle", "bun_compile")
|
|
|
|
bun_bundle(
|
|
name = "simple_bundle",
|
|
entry_points = ["main.ts"],
|
|
)
|
|
|
|
bun_bundle(
|
|
name = "minified_bundle",
|
|
entry_points = ["main.ts"],
|
|
minify = True,
|
|
)
|
|
|
|
bun_bundle(
|
|
name = "external_bundle",
|
|
entry_points = ["main.ts"],
|
|
external = ["left-pad"],
|
|
)
|
|
|
|
bun_bundle(
|
|
name = "collision_bundle",
|
|
entry_points = [
|
|
"collision_case/a/main.ts",
|
|
"collision_case/b/main.ts",
|
|
],
|
|
)
|
|
|
|
bun_build(
|
|
name = "site_build",
|
|
data = [
|
|
"site/main.ts",
|
|
"site/styles.css",
|
|
],
|
|
entry_points = ["site/index.html"],
|
|
splitting = True,
|
|
)
|
|
|
|
bun_build(
|
|
name = "site_build_with_meta",
|
|
data = [
|
|
"site/main.ts",
|
|
"site/styles.css",
|
|
],
|
|
entry_points = ["site/index.html"],
|
|
metafile = True,
|
|
metafile_md = True,
|
|
)
|
|
|
|
bun_build(
|
|
name = "advanced_site_build",
|
|
asset_naming = "assets/[name]-[hash].[ext]",
|
|
banner = "/* bundle banner */",
|
|
build_flags = [
|
|
"--app",
|
|
"--server-components",
|
|
],
|
|
chunk_naming = "chunks/[name]-[hash].[ext]",
|
|
conditions = [
|
|
"browser",
|
|
"custom",
|
|
],
|
|
css_chunking = True,
|
|
data = [
|
|
"site/main.ts",
|
|
"site/styles.css",
|
|
],
|
|
define = [
|
|
"process.env.NODE_ENV:\"production\"",
|
|
"__DEV__:false",
|
|
],
|
|
drop = [
|
|
"console",
|
|
"debugger",
|
|
],
|
|
emit_dce_annotations = True,
|
|
entry_naming = "entries/[name]-[hash].[ext]",
|
|
entry_points = ["site/index.html"],
|
|
env = "PUBLIC_*",
|
|
external = [
|
|
"left-pad",
|
|
"react",
|
|
],
|
|
feature = [
|
|
"react_fast_refresh",
|
|
"server_components",
|
|
],
|
|
footer = "// bundle footer",
|
|
format = "cjs",
|
|
jsx_factory = "h",
|
|
jsx_fragment = "Fragment",
|
|
jsx_import_source = "preact",
|
|
jsx_runtime = "automatic",
|
|
jsx_side_effects = True,
|
|
keep_names = True,
|
|
loader = [
|
|
".svg:file",
|
|
".txt:text",
|
|
],
|
|
minify = True,
|
|
minify_identifiers = True,
|
|
minify_syntax = True,
|
|
minify_whitespace = True,
|
|
no_bundle = True,
|
|
packages = "external",
|
|
production = True,
|
|
public_path = "/static/",
|
|
react_fast_refresh = True,
|
|
root = "tests/bundle_test/site",
|
|
sourcemap = "linked",
|
|
splitting = True,
|
|
tags = ["manual"],
|
|
target = "node",
|
|
)
|
|
|
|
bun_compile(
|
|
name = "compiled_cli",
|
|
entry_point = "cli.ts",
|
|
)
|
|
|
|
bun_compile(
|
|
name = "compiled_cli_with_flags",
|
|
bytecode = True,
|
|
compile_autoload_bunfig = False,
|
|
compile_autoload_dotenv = False,
|
|
compile_autoload_package_json = True,
|
|
compile_autoload_tsconfig = True,
|
|
compile_exec_argv = [
|
|
"--smol",
|
|
"--inspect-wait",
|
|
],
|
|
compile_executable = "fake_cross_bun.bin",
|
|
entry_point = "cli.ts",
|
|
tags = ["manual"],
|
|
windows_copyright = "(c) rules_bun",
|
|
windows_description = "compile flag coverage",
|
|
windows_hide_console = True,
|
|
windows_icon = "branding/icon.ico",
|
|
windows_publisher = "rules_bun",
|
|
windows_title = "Rules Bun Test App",
|
|
windows_version = "1.2.3.4",
|
|
)
|
|
|
|
sh_test(
|
|
name = "bundle_output_test",
|
|
size = "small",
|
|
srcs = ["verify_bundle.sh"],
|
|
args = ["$(location :simple_bundle)"],
|
|
data = [":simple_bundle"],
|
|
)
|
|
|
|
sh_test(
|
|
name = "bundle_minify_test",
|
|
size = "small",
|
|
srcs = ["verify_minify.sh"],
|
|
args = [
|
|
"$(location :simple_bundle)",
|
|
"$(location :minified_bundle)",
|
|
],
|
|
data = [
|
|
":minified_bundle",
|
|
":simple_bundle",
|
|
],
|
|
)
|
|
|
|
sh_test(
|
|
name = "bundle_hermetic_digest_test",
|
|
size = "small",
|
|
srcs = ["verify_hermetic_shape.sh"],
|
|
args = ["$(location //internal:bun_bundle.bzl)"],
|
|
data = ["//internal:bun_bundle.bzl"],
|
|
)
|
|
|
|
sh_test(
|
|
name = "bundle_external_exclusion_test",
|
|
size = "small",
|
|
srcs = ["verify_external_shape.sh"],
|
|
args = [
|
|
"$(location //internal:bun_bundle.bzl)",
|
|
"$(location //tests/bundle_test:BUILD.bazel)",
|
|
],
|
|
data = [
|
|
"//internal:bun_bundle.bzl",
|
|
"//tests/bundle_test:BUILD.bazel",
|
|
],
|
|
)
|
|
|
|
sh_test(
|
|
name = "bundle_collision_output_test",
|
|
size = "small",
|
|
srcs = ["verify_collision_outputs.sh"],
|
|
args = ["$(locations :collision_bundle)"],
|
|
data = [":collision_bundle"],
|
|
)
|
|
|
|
sh_test(
|
|
name = "bundle_sourcemap_shape_test",
|
|
size = "small",
|
|
srcs = ["verify_sourcemap_shape.sh"],
|
|
data = [
|
|
"BUILD.bazel",
|
|
"//:repo_runtime_files",
|
|
"//bun:repo_runtime_files",
|
|
"//internal:repo_runtime_files",
|
|
"//tests:nested_bazel_test.sh",
|
|
"//tests/bundle_test/sourcemap_case:BUILD.bazel",
|
|
"//tests/bundle_test/sourcemap_case:entry.ts",
|
|
],
|
|
env_inherit = ["PATH"],
|
|
)
|
|
|
|
sh_test(
|
|
name = "bun_build_site_output_test",
|
|
size = "small",
|
|
srcs = ["verify_site_build.sh"],
|
|
args = ["$(location :site_build)"],
|
|
data = [":site_build"],
|
|
)
|
|
|
|
sh_test(
|
|
name = "bun_build_site_meta_test",
|
|
size = "small",
|
|
srcs = ["verify_site_build_meta.sh"],
|
|
args = ["$(locations :site_build_with_meta)"],
|
|
data = [":site_build_with_meta"],
|
|
)
|
|
|
|
sh_test(
|
|
name = "bun_compile_output_test",
|
|
size = "small",
|
|
srcs = ["run_compiled_binary.sh"],
|
|
args = ["$(location :compiled_cli)"],
|
|
data = [":compiled_cli"],
|
|
)
|
|
|
|
sh_test(
|
|
name = "bun_build_compile_flag_shape_test",
|
|
size = "small",
|
|
srcs = ["verify_flag_aquery.sh"],
|
|
data = [
|
|
"BUILD.bazel",
|
|
"cli.ts",
|
|
"fake_cross_bun.bin",
|
|
"site/index.html",
|
|
"site/main.ts",
|
|
"site/styles.css",
|
|
"//:repo_runtime_files",
|
|
"//bun:repo_runtime_files",
|
|
"//internal:repo_runtime_files",
|
|
"//tests:nested_bazel_test.sh",
|
|
],
|
|
env_inherit = ["PATH"],
|
|
)
|