Skip to content

Commit

Permalink
SERVER-97704 Wrapped resmoke in bazel (#29688)
Browse files Browse the repository at this point in the history
GitOrigin-RevId: 08adfc2fdf9fc89103d9a963991a850b2a3856d0
  • Loading branch information
IamXander authored and MongoDB Bot committed Dec 3, 2024
1 parent 8efb572 commit 0faff5d
Show file tree
Hide file tree
Showing 21 changed files with 496 additions and 11 deletions.
16 changes: 7 additions & 9 deletions WORKSPACE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -81,8 +81,6 @@ load("@rules_coverity//coverity:repositories.bzl", "rules_coverity_toolchains")

rules_coverity_toolchains()

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

# Hedron's Compile Commands Extractor for Bazel
# https://github.com/hedronvision/bazel-compile-commands-extractor
http_archive(
Expand Down Expand Up @@ -150,16 +148,16 @@ http_archive(
# Poetry rules for managing Python dependencies
http_archive(
name = "rules_poetry",
sha256 = "5db24c0eacb42ef8b25019bd000a9d2905fba71682d1dac51603bfbc0e6fa5c9",
strip_prefix = "rules_poetry-29b93f4f2e227834ac8d5b48cb0baef8dbeeecc7",
sha256 = "dbabea2a3829aa5885ba46d612b269956d0227b503147a5e1a2cfd635165fcb5",
strip_prefix = "rules_poetry-441f4365f7cafce345083a6325bc6712a2ce5c93",
urls = [
# Implements retry by relisting each url multiple times to be used as a failover.
# TODO(SERVER-86719): Re-implement http_archive to allow sleeping between retries
"https://github.com/mongodb-forks/rules_poetry/archive/29b93f4f2e227834ac8d5b48cb0baef8dbeeecc7.tar.gz",
"https://github.com/mongodb-forks/rules_poetry/archive/29b93f4f2e227834ac8d5b48cb0baef8dbeeecc7.tar.gz",
"https://github.com/mongodb-forks/rules_poetry/archive/29b93f4f2e227834ac8d5b48cb0baef8dbeeecc7.tar.gz",
"https://github.com/mongodb-forks/rules_poetry/archive/29b93f4f2e227834ac8d5b48cb0baef8dbeeecc7.tar.gz",
"https://github.com/mongodb-forks/rules_poetry/archive/29b93f4f2e227834ac8d5b48cb0baef8dbeeecc7.tar.gz",
"https://github.com/mongodb-forks/rules_poetry/archive/441f4365f7cafce345083a6325bc6712a2ce5c93.tar.gz",
"https://github.com/mongodb-forks/rules_poetry/archive/441f4365f7cafce345083a6325bc6712a2ce5c93.tar.gz",
"https://github.com/mongodb-forks/rules_poetry/archive/441f4365f7cafce345083a6325bc6712a2ce5c93.tar.gz",
"https://github.com/mongodb-forks/rules_poetry/archive/441f4365f7cafce345083a6325bc6712a2ce5c93.tar.gz",
"https://github.com/mongodb-forks/rules_poetry/archive/441f4365f7cafce345083a6325bc6712a2ce5c93.tar.gz",
],
)

Expand Down
44 changes: 44 additions & 0 deletions buildscripts/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,48 @@ py_binary(
],
)

py_binary(
name = "simple_report",
srcs = ["simple_report.py"],
main = "simple_report.py",
visibility = ["//visibility:public"],
deps = [
dependency(
"click",
group = "evergreen",
),
],
)

py_binary(
name = "mongosymb",
srcs = [
"build_system_options.py",
"mongosymb.py",
],
main = "mongosymb.py",
visibility = ["//visibility:public"],
deps = [
"//buildscripts/util",
dependency(
"requests",
group = "core",
),
dependency(
"tenacity",
group = "core",
),
],
)

py_binary(
name = "resmoke",
srcs = ["resmoke.py"],
main = "resmoke.py",
visibility = ["//visibility:public"],
deps = [
"//buildscripts/resmokelib",
],
)

exports_files(["cheetah_source_generator.py"])
19 changes: 19 additions & 0 deletions buildscripts/ciconfig/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
load("@poetry//:dependencies.bzl", "dependency")

py_library(
name = "ciconfig",
srcs = [
"evergreen.py",
],
visibility = ["//visibility:public"],
deps = [
dependency(
"structlog",
group = "evergreen",
),
dependency(
"pyyaml",
group = "core",
),
],
)
12 changes: 12 additions & 0 deletions buildscripts/idl/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,15 @@ filegroup(
] + glob(["**/idl/*.py"]),
visibility = ["//visibility:public"],
)

py_library(
name = "idl",
srcs = [
"gen_all_feature_flag_list.py",
"idlc.py",
"lib.py",
] + glob(["idl/**/*.py"]),
visibility = ["//visibility:public"],
deps = [
],
)
65 changes: 65 additions & 0 deletions buildscripts/resmokelib/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
load("@poetry//:dependencies.bzl", "dependency")

py_library(
name = "resmokelib",
srcs = [
"__init__.py",
"cli.py",
"config.py",
"config_fuzzer_limits.py",
"config_fuzzer_wt_limits.py",
"configure_resmoke.py",
"errors.py",
"flags.py",
"mongo_fuzzer_configs.py",
"multiversionconstants.py",
"multiversionsetupconstants.py",
"parser.py",
"plugin.py",
"reportfile.py",
"selector.py",
"sighandler.py",
"suite_hierarchy.py",
"suitesconfig.py",
],
visibility = ["//visibility:public"],
deps = [
"//buildscripts/idl",
"//buildscripts/resmokelib/core",
"//buildscripts/resmokelib/discovery",
"//buildscripts/resmokelib/generate_fcv_constants",
"//buildscripts/resmokelib/generate_fuzz_config",
"//buildscripts/resmokelib/hang_analyzer",
"//buildscripts/resmokelib/logging",
"//buildscripts/resmokelib/powercycle",
"//buildscripts/resmokelib/setup_multiversion",
"//buildscripts/resmokelib/testing",
"//buildscripts/resmokelib/undodb",
"//buildscripts/resmokelib/utils",
"//buildscripts/util",
dependency(
"psutil",
group = "build-metrics",
),
dependency(
"mongo-tooling-metrics",
group = "tooling-metrics",
),
dependency(
"pyyaml",
group = "core",
),
dependency(
"opentelemetry-api",
group = "testing",
),
dependency(
"opentelemetry-sdk",
group = "testing",
),
dependency(
"opentelemetry-exporter-otlp-proto-common",
group = "testing",
),
],
)
18 changes: 18 additions & 0 deletions buildscripts/resmokelib/core/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
load("@poetry//:dependencies.bzl", "dependency")

py_library(
name = "core",
srcs = [
"__init__.py",
"network.py",
"pipe.py",
"process.py",
"programs.py",
"redirect.py",
],
visibility = ["//visibility:public"],
deps = [dependency(
"packaging",
group = "testing",
)],
)
20 changes: 20 additions & 0 deletions buildscripts/resmokelib/discovery/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
load("@poetry//:dependencies.bzl", "dependency")

py_library(
name = "discovery",
srcs = [
"__init__.py",
],
visibility = ["//visibility:public"],
deps = [
"//buildscripts/resmokelib/multiversion",
dependency(
"pyyaml",
group = "core",
),
dependency(
"pydantic",
group = "evergreen",
),
],
)
8 changes: 8 additions & 0 deletions buildscripts/resmokelib/generate_fcv_constants/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
py_library(
name = "generate_fcv_constants",
srcs = [
"__init__.py",
],
visibility = ["//visibility:public"],
deps = [],
)
8 changes: 8 additions & 0 deletions buildscripts/resmokelib/generate_fuzz_config/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
py_library(
name = "generate_fuzz_config",
srcs = [
"__init__.py",
],
visibility = ["//visibility:public"],
deps = [],
)
38 changes: 38 additions & 0 deletions buildscripts/resmokelib/hang_analyzer/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
load("@poetry//:dependencies.bzl", "dependency")

py_library(
name = "hang_analyzer",
srcs = [
"__init__.py",
"attach_core_analyzer_task.py",
"core_analyzer.py",
"dumper.py",
"extractor.py",
"gen_hang_analyzer_tasks.py",
"hang_analyzer.py",
"process.py",
"process_list.py",
],
visibility = ["//visibility:public"],
deps = [
"//buildscripts:simple_report",
"//buildscripts/resmokelib/run",
"//buildscripts/resmokelib/symbolizer",
dependency(
"retry",
group = "testing",
),
dependency(
"opentelemetry-api",
group = "testing",
),
dependency(
"opentelemetry-sdk",
group = "testing",
),
dependency(
"opentelemetry-exporter-otlp-proto-common",
group = "testing",
),
],
)
13 changes: 13 additions & 0 deletions buildscripts/resmokelib/logging/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
py_library(
name = "logging",
srcs = [
"__init__.py",
"buildlogger.py",
"flush.py",
"formatters.py",
"handlers.py",
"loggers.py",
],
visibility = ["//visibility:public"],
deps = [],
)
28 changes: 28 additions & 0 deletions buildscripts/resmokelib/multiversion/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
load("@poetry//:dependencies.bzl", "dependency")

py_library(
name = "multiversion",
srcs = [
"__init__.py",
"multiversion_service.py",
],
visibility = ["//visibility:public"],
deps = [
dependency(
"pyyaml",
group = "core",
),
dependency(
"structlog",
group = "evergreen",
),
dependency(
"packaging",
group = "testing",
),
dependency(
"pydantic",
group = "evergreen",
),
],
)
25 changes: 25 additions & 0 deletions buildscripts/resmokelib/powercycle/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
load("@poetry//:dependencies.bzl", "dependency")

py_library(
name = "powercycle",
srcs = glob(["**/*.py"]), # TODO: tighten this down
visibility = ["//visibility:public"],
deps = [
dependency(
"psutil",
group = "build-metrics",
),
dependency(
"pymongo",
group = "core",
),
dependency(
"pyyaml",
group = "core",
),
dependency(
"requests",
group = "core",
),
],
)
23 changes: 23 additions & 0 deletions buildscripts/resmokelib/run/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
load("@poetry//:dependencies.bzl", "dependency")

py_library(
name = "run",
srcs = [
"__init__.py",
"generate_multiversion_exclude_tags.py",
"list_tags.py",
"runtime_recorder.py",
],
visibility = ["//visibility:public"],
deps = [
"//buildscripts/ciconfig",
dependency(
"requests",
group = "core",
),
dependency(
"pygithub",
group = "testing",
),
],
)
Loading

0 comments on commit 0faff5d

Please sign in to comment.