diff --git a/.bazelignore b/.bazelignore index 5225186..e69de29 100644 --- a/.bazelignore +++ b/.bazelignore @@ -1,2 +0,0 @@ -javascript/examples -kotlin/example \ No newline at end of file diff --git a/.bazelrc b/.bazelrc index 7d40210..41a5dbb 100644 --- a/.bazelrc +++ b/.bazelrc @@ -28,4 +28,9 @@ coverage --remote_download_toplevel coverage --remote_timeout=3600 coverage --build_metadata=REPO_URL=https://github.com/player-ui/rules_player.git +# To update these lines, execute +# `bazel run @rules_bazel_integration_test//tools:update_deleted_packages` +build --deleted_packages=examples/kotlin,examples/ts-monorepo,examples/ts-monorepo/packages/module-a,examples/ts-monorepo/packages/module-b +query --deleted_packages=examples/kotlin,examples/ts-monorepo,examples/ts-monorepo/packages/module-a,examples/ts-monorepo/packages/module-b + try-import %workspace%/.bazelrc.local diff --git a/.circleci/config.yml b/.circleci/config.yml index 1e64615..cbd0e9e 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -69,7 +69,7 @@ jobs: command: bazel test //... - run: name: Test Examples - command: ./scripts/test.sh + command: bazel test //examples:all_integration_tests release: executor: base diff --git a/BUILD b/BUILD index e69de29..03d492f 100644 --- a/BUILD +++ b/BUILD @@ -0,0 +1,18 @@ +filegroup( + name = "all_files", + srcs = glob(["*"]), + visibility = ["//:__subpackages__"], +) + +filegroup( + name = "local_repository_files", + # Include every package that is required by the child workspaces. + srcs = [ + ":all_files", + "//javascript:all_files", + "//javascript/private:all_files", + "//kotlin:all_files", + "//kotlin/private:all_files", + ], + visibility = ["//:__subpackages__"], +) diff --git a/MODULE.bazel b/MODULE.bazel index 8d25f84..5a35402 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -34,17 +34,24 @@ maven.install( "org.junit.jupiter:junit-jupiter-engine:5.7.2", "org.junit.platform:junit-platform-suite-api:1.7.2", "org.junit.platform:junit-platform-console:1.7.2", - "org.junit.platform:junit-platform-launcher:1.7.2" + "org.junit.platform:junit-platform-launcher:1.7.2", ], fetch_sources = True, repositories = [ "https://repo1.maven.org/maven2", "https://maven.google.com/", "https://plugins.gradle.org/m2/", - ] + ], ) use_repo(maven, "rules_player_maven") + ## Rule Dependencies bazel_dep(name = "rules_swift", version = "1.18.0", repo_name = "build_bazel_rules_swift") bazel_dep(name = "rules_apple", version = "3.5.1", repo_name = "build_bazel_rules_apple") bazel_dep(name = "rules_ios", version = "4.3.1", repo_name = "build_bazel_rules_ios") + +bazel_dep(name = "rules_bazel_integration_test", version = "0.24.1", dev_dependency = True) +bazel_binaries = use_extension("@rules_bazel_integration_test//:extensions.bzl", "bazel_binaries", dev_dependency = True) +bazel_binaries.download(version_file = ".bazelversion") + +use_repo(bazel_binaries, "bazel_binaries") diff --git a/examples/BUILD b/examples/BUILD new file mode 100644 index 0000000..ca7ee30 --- /dev/null +++ b/examples/BUILD @@ -0,0 +1,35 @@ +load("@bazel_binaries//:defs.bzl", "bazel_binaries") +load("@rules_bazel_integration_test//bazel_integration_test:defs.bzl", "bazel_integration_test", "default_test_runner", "integration_test_utils") + +default_test_runner(name = "simple_test_runner") + +bazel_integration_test( + name = "ts-monorepo-test", + bazel_binaries = bazel_binaries, + bazel_version = bazel_binaries.versions.current, + test_runner = ":simple_test_runner", + workspace_files = integration_test_utils.glob_workspace_files("ts-monorepo") + [ + "//:local_repository_files", + ], + workspace_path = "ts-monorepo", +) + +bazel_integration_test( + name = "kotlin-test", + bazel_binaries = bazel_binaries, + bazel_version = bazel_binaries.versions.current, + test_runner = ":simple_test_runner", + workspace_files = integration_test_utils.glob_workspace_files("kotlin") + [ + "//:local_repository_files", + ], + workspace_path = "kotlin", +) + +test_suite( + name = "all_integration_tests", + tags = integration_test_utils.DEFAULT_INTEGRATION_TEST_TAGS, + tests = [ + ":kotlin-test", + ":ts-monorepo-test", + ], +) diff --git a/kotlin/example/.bazelrc b/examples/kotlin/.bazelrc similarity index 100% rename from kotlin/example/.bazelrc rename to examples/kotlin/.bazelrc diff --git a/javascript/examples/ts-monorepo/.bazelversion b/examples/kotlin/.bazelversion similarity index 100% rename from javascript/examples/ts-monorepo/.bazelversion rename to examples/kotlin/.bazelversion diff --git a/kotlin/example/BUILD b/examples/kotlin/BUILD similarity index 100% rename from kotlin/example/BUILD rename to examples/kotlin/BUILD diff --git a/kotlin/example/MODULE.bazel b/examples/kotlin/MODULE.bazel similarity index 100% rename from kotlin/example/MODULE.bazel rename to examples/kotlin/MODULE.bazel diff --git a/kotlin/example/WORKSPACE b/examples/kotlin/WORKSPACE similarity index 100% rename from kotlin/example/WORKSPACE rename to examples/kotlin/WORKSPACE diff --git a/kotlin/example/lib.kt b/examples/kotlin/lib.kt similarity index 100% rename from kotlin/example/lib.kt rename to examples/kotlin/lib.kt diff --git a/kotlin/example/libtest.kt b/examples/kotlin/libtest.kt similarity index 100% rename from kotlin/example/libtest.kt rename to examples/kotlin/libtest.kt diff --git a/javascript/examples/ts-monorepo/.bazelignore b/examples/ts-monorepo/.bazelignore similarity index 100% rename from javascript/examples/ts-monorepo/.bazelignore rename to examples/ts-monorepo/.bazelignore diff --git a/javascript/examples/ts-monorepo/.bazelrc b/examples/ts-monorepo/.bazelrc similarity index 100% rename from javascript/examples/ts-monorepo/.bazelrc rename to examples/ts-monorepo/.bazelrc diff --git a/kotlin/example/.bazelversion b/examples/ts-monorepo/.bazelversion similarity index 100% rename from kotlin/example/.bazelversion rename to examples/ts-monorepo/.bazelversion diff --git a/javascript/examples/ts-monorepo/.eslintrc.js b/examples/ts-monorepo/.eslintrc.js similarity index 100% rename from javascript/examples/ts-monorepo/.eslintrc.js rename to examples/ts-monorepo/.eslintrc.js diff --git a/javascript/examples/ts-monorepo/BUILD b/examples/ts-monorepo/BUILD similarity index 100% rename from javascript/examples/ts-monorepo/BUILD rename to examples/ts-monorepo/BUILD diff --git a/javascript/examples/ts-monorepo/MODULE.bazel b/examples/ts-monorepo/MODULE.bazel similarity index 92% rename from javascript/examples/ts-monorepo/MODULE.bazel rename to examples/ts-monorepo/MODULE.bazel index 41bc5a4..846cc30 100644 --- a/javascript/examples/ts-monorepo/MODULE.bazel +++ b/examples/ts-monorepo/MODULE.bazel @@ -1,7 +1,7 @@ module(name = "ts-monorepo-example") bazel_dep(name = "rules_player") -local_path_override(module_name = "rules_player", path = "../../..") +local_path_override(module_name = "rules_player", path = "../..") bazel_dep(name = "bazel_skylib", version = "1.4.1") bazel_dep(name = "aspect_rules_js", version = "1.33.1") diff --git a/javascript/examples/ts-monorepo/VERSION b/examples/ts-monorepo/VERSION similarity index 100% rename from javascript/examples/ts-monorepo/VERSION rename to examples/ts-monorepo/VERSION diff --git a/javascript/examples/ts-monorepo/WORKSPACE b/examples/ts-monorepo/WORKSPACE similarity index 100% rename from javascript/examples/ts-monorepo/WORKSPACE rename to examples/ts-monorepo/WORKSPACE diff --git a/javascript/examples/ts-monorepo/package.json b/examples/ts-monorepo/package.json similarity index 100% rename from javascript/examples/ts-monorepo/package.json rename to examples/ts-monorepo/package.json diff --git a/javascript/examples/ts-monorepo/packages/module-a/BUILD b/examples/ts-monorepo/packages/module-a/BUILD similarity index 100% rename from javascript/examples/ts-monorepo/packages/module-a/BUILD rename to examples/ts-monorepo/packages/module-a/BUILD diff --git a/javascript/examples/ts-monorepo/packages/module-a/README.md b/examples/ts-monorepo/packages/module-a/README.md similarity index 100% rename from javascript/examples/ts-monorepo/packages/module-a/README.md rename to examples/ts-monorepo/packages/module-a/README.md diff --git a/javascript/examples/ts-monorepo/packages/module-a/package.json b/examples/ts-monorepo/packages/module-a/package.json similarity index 100% rename from javascript/examples/ts-monorepo/packages/module-a/package.json rename to examples/ts-monorepo/packages/module-a/package.json diff --git a/javascript/examples/ts-monorepo/packages/module-a/src/index.test.ts b/examples/ts-monorepo/packages/module-a/src/index.test.ts similarity index 100% rename from javascript/examples/ts-monorepo/packages/module-a/src/index.test.ts rename to examples/ts-monorepo/packages/module-a/src/index.test.ts diff --git a/javascript/examples/ts-monorepo/packages/module-a/src/index.ts b/examples/ts-monorepo/packages/module-a/src/index.ts similarity index 100% rename from javascript/examples/ts-monorepo/packages/module-a/src/index.ts rename to examples/ts-monorepo/packages/module-a/src/index.ts diff --git a/javascript/examples/ts-monorepo/packages/module-a/tsup.config.ts b/examples/ts-monorepo/packages/module-a/tsup.config.ts similarity index 100% rename from javascript/examples/ts-monorepo/packages/module-a/tsup.config.ts rename to examples/ts-monorepo/packages/module-a/tsup.config.ts diff --git a/javascript/examples/ts-monorepo/packages/module-a/vitest.config.ts b/examples/ts-monorepo/packages/module-a/vitest.config.ts similarity index 100% rename from javascript/examples/ts-monorepo/packages/module-a/vitest.config.ts rename to examples/ts-monorepo/packages/module-a/vitest.config.ts diff --git a/javascript/examples/ts-monorepo/packages/module-b/BUILD b/examples/ts-monorepo/packages/module-b/BUILD similarity index 100% rename from javascript/examples/ts-monorepo/packages/module-b/BUILD rename to examples/ts-monorepo/packages/module-b/BUILD diff --git a/javascript/examples/ts-monorepo/packages/module-b/package.json b/examples/ts-monorepo/packages/module-b/package.json similarity index 100% rename from javascript/examples/ts-monorepo/packages/module-b/package.json rename to examples/ts-monorepo/packages/module-b/package.json diff --git a/javascript/examples/ts-monorepo/packages/module-b/package.test.json b/examples/ts-monorepo/packages/module-b/package.test.json similarity index 100% rename from javascript/examples/ts-monorepo/packages/module-b/package.test.json rename to examples/ts-monorepo/packages/module-b/package.test.json diff --git a/javascript/examples/ts-monorepo/packages/module-b/src/__tests__/entry.test.ts b/examples/ts-monorepo/packages/module-b/src/__tests__/entry.test.ts similarity index 100% rename from javascript/examples/ts-monorepo/packages/module-b/src/__tests__/entry.test.ts rename to examples/ts-monorepo/packages/module-b/src/__tests__/entry.test.ts diff --git a/javascript/examples/ts-monorepo/packages/module-b/src/cli.ts b/examples/ts-monorepo/packages/module-b/src/cli.ts similarity index 100% rename from javascript/examples/ts-monorepo/packages/module-b/src/cli.ts rename to examples/ts-monorepo/packages/module-b/src/cli.ts diff --git a/javascript/examples/ts-monorepo/packages/module-b/src/entry.ts b/examples/ts-monorepo/packages/module-b/src/entry.ts similarity index 100% rename from javascript/examples/ts-monorepo/packages/module-b/src/entry.ts rename to examples/ts-monorepo/packages/module-b/src/entry.ts diff --git a/javascript/examples/ts-monorepo/packages/module-b/src/index.ts b/examples/ts-monorepo/packages/module-b/src/index.ts similarity index 100% rename from javascript/examples/ts-monorepo/packages/module-b/src/index.ts rename to examples/ts-monorepo/packages/module-b/src/index.ts diff --git a/javascript/examples/ts-monorepo/packages/module-b/tsup.config.ts b/examples/ts-monorepo/packages/module-b/tsup.config.ts similarity index 100% rename from javascript/examples/ts-monorepo/packages/module-b/tsup.config.ts rename to examples/ts-monorepo/packages/module-b/tsup.config.ts diff --git a/javascript/examples/ts-monorepo/packages/module-b/vitest.config.ts b/examples/ts-monorepo/packages/module-b/vitest.config.ts similarity index 100% rename from javascript/examples/ts-monorepo/packages/module-b/vitest.config.ts rename to examples/ts-monorepo/packages/module-b/vitest.config.ts diff --git a/javascript/examples/ts-monorepo/pnpm-lock.yaml b/examples/ts-monorepo/pnpm-lock.yaml similarity index 100% rename from javascript/examples/ts-monorepo/pnpm-lock.yaml rename to examples/ts-monorepo/pnpm-lock.yaml diff --git a/javascript/examples/ts-monorepo/pnpm-workspace.yaml b/examples/ts-monorepo/pnpm-workspace.yaml similarity index 100% rename from javascript/examples/ts-monorepo/pnpm-workspace.yaml rename to examples/ts-monorepo/pnpm-workspace.yaml diff --git a/javascript/examples/ts-monorepo/tsconfig.json b/examples/ts-monorepo/tsconfig.json similarity index 100% rename from javascript/examples/ts-monorepo/tsconfig.json rename to examples/ts-monorepo/tsconfig.json diff --git a/javascript/examples/ts-monorepo/tsup.config.ts b/examples/ts-monorepo/tsup.config.ts similarity index 100% rename from javascript/examples/ts-monorepo/tsup.config.ts rename to examples/ts-monorepo/tsup.config.ts diff --git a/javascript/examples/ts-monorepo/vitest.config.ts b/examples/ts-monorepo/vitest.config.ts similarity index 100% rename from javascript/examples/ts-monorepo/vitest.config.ts rename to examples/ts-monorepo/vitest.config.ts diff --git a/javascript/examples/ts-monorepo/workspace_status.sh b/examples/ts-monorepo/workspace_status.sh similarity index 100% rename from javascript/examples/ts-monorepo/workspace_status.sh rename to examples/ts-monorepo/workspace_status.sh diff --git a/javascript/BUILD b/javascript/BUILD index 5416b01..b2857e1 100644 --- a/javascript/BUILD +++ b/javascript/BUILD @@ -2,6 +2,12 @@ load("@bazel_skylib//:bzl_library.bzl", "bzl_library") exports_files(["defs.bzl"]) +filegroup( + name = "all_files", + srcs = glob(["*"]), + visibility = ["//:__subpackages__"], +) + bzl_library( name = "defs", srcs = ["defs.bzl"], diff --git a/javascript/private/BUILD b/javascript/private/BUILD index 58e4b54..bdd7d14 100644 --- a/javascript/private/BUILD +++ b/javascript/private/BUILD @@ -1,5 +1,11 @@ -load("@bazel_skylib//:bzl_library.bzl", "bzl_library") load("@aspect_rules_js//js:defs.bzl", "js_binary") +load("@bazel_skylib//:bzl_library.bzl", "bzl_library") + +filegroup( + name = "all_files", + srcs = glob(["*"]), + visibility = ["//:__subpackages__"], +) exports_files( glob(["*.bzl"]), diff --git a/kotlin/BUILD b/kotlin/BUILD index ede7d99..a816de7 100644 --- a/kotlin/BUILD +++ b/kotlin/BUILD @@ -2,13 +2,19 @@ load("@bazel_skylib//:bzl_library.bzl", "bzl_library") exports_files(["defs.bzl"]) +filegroup( + name = "all_files", + srcs = glob(["*"]), + visibility = ["//:__subpackages__"], +) + bzl_library( name = "defs", srcs = ["defs.bzl"], visibility = ["//visibility:public"], deps = [ - "//kotlin/private:lint", "//kotlin/private:distribution", - "//kotlin/private:kt_jvm" + "//kotlin/private:kt_jvm", + "//kotlin/private:lint", ], -) \ No newline at end of file +) diff --git a/kotlin/private/BUILD b/kotlin/private/BUILD index cfee630..4387eea 100644 --- a/kotlin/private/BUILD +++ b/kotlin/private/BUILD @@ -1,5 +1,11 @@ load("@bazel_skylib//:bzl_library.bzl", "bzl_library") +filegroup( + name = "all_files", + srcs = glob(["*"]), + visibility = ["//:__subpackages__"], +) + bzl_library( name = "lint", srcs = ["lint.bzl"], @@ -7,13 +13,16 @@ bzl_library( "//kotlin:__subpackages__", ], deps = [ - ":scope_name" - ] + ":scope_name", + ], ) bzl_library( name = "junit", - srcs = ["junit_test.bzl", "junit5.bzl"], + srcs = [ + "junit5.bzl", + "junit_test.bzl", + ], visibility = [ "//kotlin:__subpackages__", ], @@ -28,24 +37,24 @@ bzl_library( deps = [ ":scope_name", "@rules_jvm_external//:defs.bzl", - ] + ], ) bzl_library( name = "kt_jvm", - srcs = ["kt_jvm.bzl",], + srcs = ["kt_jvm.bzl"], visibility = [ "//kotlin:__subpackages__", ], deps = [ - ":lint", ":distribution", - ":kt_jvm_library_and_test.bzl", ":junit", - "@rules_kotlin//kotlin", - "@rules_jvm_external//:implementation", + ":kt_jvm_library_and_test.bzl", + ":lint", "@rules_java//java:rules", - ] + "@rules_jvm_external//:implementation", + "@rules_kotlin//kotlin", + ], ) bzl_library( @@ -55,4 +64,4 @@ bzl_library( "//kotlin:__subpackages__", ], deps = [], -) \ No newline at end of file +) diff --git a/scripts/test.sh b/scripts/test.sh deleted file mode 100755 index 5e0b354..0000000 --- a/scripts/test.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/env bash - -set -u -e -o pipefail - -function runtest(){ - ROOT=$(pwd) - testDir=$1 - cd $testDir - cp $ROOT/.bazelversion . - bazel clean --async - bazel test //... - bazel clean - rm .bazelversion - cd $ROOT -} - -#Workaround for now. Since tests can be nested at two different levels we need to use two regexes - -workspace_dirs=$(find ./*/** -type f -name 'WORKSPACE' | sed -r 's|/[^/]+$||' |sort |uniq) - -for dir in $workspace_dirs -do - echo "Running tests in $dir" - runtest $dir - echo "Done with $dir" -done \ No newline at end of file