SERVER-97704 Wrapped resmoke in bazel (#29688)

GitOrigin-RevId: 08adfc2fdf9fc89103d9a963991a850b2a3856d0
This commit is contained in:
Alexander Neben 2024-12-02 21:28:08 -08:00 committed by MongoDB Bot
parent 8efb572d19
commit 0faff5d1e0
21 changed files with 496 additions and 11 deletions

View File

@ -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(
@ -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",
],
)

View File

@ -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"])

View File

@ -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",
),
],
)

View File

@ -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 = [
],
)

View File

@ -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",
),
],
)

View File

@ -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",
)],
)

View File

@ -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",
),
],
)

View File

@ -0,0 +1,8 @@
py_library(
name = "generate_fcv_constants",
srcs = [
"__init__.py",
],
visibility = ["//visibility:public"],
deps = [],
)

View File

@ -0,0 +1,8 @@
py_library(
name = "generate_fuzz_config",
srcs = [
"__init__.py",
],
visibility = ["//visibility:public"],
deps = [],
)

View File

@ -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",
),
],
)

View File

@ -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 = [],
)

View File

@ -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",
),
],
)

View File

@ -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",
),
],
)

View File

@ -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",
),
],
)

View File

@ -0,0 +1,35 @@
load("@poetry//:dependencies.bzl", "dependency")
py_library(
name = "setup_multiversion",
srcs = [
"__init__.py",
"config.py",
"download.py",
"github_conn.py",
"setup_multiversion.py",
],
visibility = ["//visibility:public"],
deps = [
dependency(
"pyyaml",
group = "core",
),
dependency(
"structlog",
group = "evergreen",
),
dependency(
"pygithub",
group = "testing",
),
dependency(
"distro",
group = "testing",
),
dependency(
"requests",
group = "core",
),
],
)

View File

@ -0,0 +1,8 @@
py_library(
name = "symbolizer",
srcs = [
"__init__.py",
],
visibility = ["//visibility:public"],
deps = ["//buildscripts:mongosymb"],
)

View File

@ -0,0 +1,6 @@
py_library(
name = "testing",
srcs = glob(["**/*.py"]), # TODO: narrow this down
visibility = ["//visibility:public"],
deps = [],
)

View File

@ -0,0 +1,16 @@
load("@poetry//:dependencies.bzl", "dependency")
py_library(
name = "undodb",
srcs = [
"__init__.py",
"fetch.py",
],
visibility = ["//visibility:public"],
deps = [
dependency(
"evergreen-py",
group = "testing",
),
],
)

View File

@ -0,0 +1,29 @@
load("@poetry//:dependencies.bzl", "dependency")
py_library(
name = "utils",
srcs = [
"__init__.py",
"archival.py",
"autoloader.py",
"batched_baggage_span_processor.py",
"check_has_tag.py",
"dictionary.py",
"evergreen_conn.py",
"external_suite.py",
"file_span_exporter.py",
"filesystem.py",
"globstar.py",
"history.py",
"jscomment.py",
"otel_thread_pool_executor.py",
"otel_utils.py",
"queue.py",
"registry.py",
],
visibility = ["//visibility:public"],
deps = [dependency(
"evergreen-py",
group = "testing",
)],
)

View File

@ -0,0 +1,39 @@
load("@poetry//:dependencies.bzl", "dependency")
py_library(
name = "util",
srcs = [
"buildozer_utils.py",
"cedar_report.py",
"cmdutils.py",
"codeowners_utils.py",
"fileops.py",
"generate_co_jira_map.py",
"oauth.py",
"read_config.py",
"runcommand.py",
"taskname.py",
"testname.py",
"teststats.py",
"time.py",
],
visibility = ["//visibility:public"],
deps = [
dependency(
"oauthlib",
group = "testing",
),
dependency(
"structlog",
group = "evergreen",
),
dependency(
"pkce",
group = "testing",
),
dependency(
"requests-oauthlib",
group = "testing",
),
],
)

View File

@ -621,7 +621,7 @@ tasks:
jepsen_storage_engine: --storage-engine wiredTiger
jepsen_test_name: set
# TODO: rename if display_name appears on the evergreen UI
# TODO(SERVER-97804): rename if display_name appears on the evergreen UI
- name: bazel_run_//:format
tags:
[
@ -654,7 +654,7 @@ tasks:
target: >-
//:format -- --check
# TODO: rename if display_name appears on the evergreen UI
# TODO(SERVER-97804): rename if display_name appears on the evergreen UI
- name: bazel_run_//:codeowners
tags:
[
@ -687,6 +687,39 @@ tasks:
target: >-
//:codeowners -- --check
# TODO(SERVER-97804): rename if display_name appears on the evergreen UI
- name: bazel_run_//buildscripts:resmoke
tags:
[
"assigned_to_jira_team_devprod_build",
"development_critical_single_variant",
"lint",
"bazel_check",
]
depends_on:
- name: version_expansions_gen
variant: generate-tasks-for-version
commands:
- command: timeout.update
params:
# 10 minutes
exec_timeout_secs: 600
- func: "f_expansions_write"
- command: manifest.load
- func: "git get project and add git tag"
- func: "f_expansions_write"
- func: "kill processes"
- func: "cleanup environment"
- func: "set up venv"
- func: "upload pip requirements"
- func: "get engflow creds"
# TODO SERVER-81038: Remove "fetch bazel" once bazelisk is self-hosted.
- func: "fetch bazel"
- func: "bazel run"
vars:
target: >-
//buildscripts:resmoke -- --help
- name: lint_clang_format
tags:
[