Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 18 additions & 22 deletions .evergreen/config_generator/components/abi_stability.py
Original file line number Diff line number Diff line change
@@ -1,17 +1,15 @@
from config_generator.components.funcs.install_c_driver import InstallCDriver
from config_generator.components.funcs.install_uv import InstallUV

from config_generator.etc.distros import find_large_distro
from config_generator.etc.function import Function, merge_defns
from config_generator.etc.utils import bash_exec
from itertools import product

from shrub.v3.evg_build_variant import BuildVariant
from shrub.v3.evg_command import EvgCommandType, git_get_project, s3_put
from shrub.v3.evg_task import EvgTask, EvgTaskRef
from shrub.v3.evg_task_group import EvgTaskGroup

from itertools import product

from config_generator.components.funcs.install_c_driver import InstallCDriver
from config_generator.components.funcs.install_uv import InstallUV
from config_generator.etc.distros import find_large_distro
from config_generator.etc.function import Function, merge_defns
from config_generator.etc.utils import bash_exec

TAG = 'abi-stability'

Expand All @@ -34,11 +32,10 @@ class AbiComplianceCheck(Function):
commands = [
bash_exec(
command_type=EvgCommandType.SETUP,
script='mongo-cxx-driver/.evergreen/scripts/abi-compliance-check-setup.sh'
script='mongo-cxx-driver/.evergreen/scripts/abi-compliance-check-setup.sh',
),
bash_exec(
command_type=EvgCommandType.TEST,
script='mongo-cxx-driver/.evergreen/scripts/abi-compliance-check-test.sh'
command_type=EvgCommandType.TEST, script='mongo-cxx-driver/.evergreen/scripts/abi-compliance-check-test.sh'
),
s3_put(
command_type=EvgCommandType.SYSTEM,
Expand Down Expand Up @@ -92,11 +89,11 @@ class Abidiff(Function):
commands = [
bash_exec(
command_type=EvgCommandType.SETUP,
script='mongo-cxx-driver/.evergreen/scripts/abidiff-setup.sh'
script='mongo-cxx-driver/.evergreen/scripts/abidiff-setup.sh',
),
bash_exec(
command_type=EvgCommandType.TEST,
script='mongo-cxx-driver/.evergreen/scripts/abidiff-test.sh'
script='mongo-cxx-driver/.evergreen/scripts/abidiff-test.sh',
),
s3_put(
command_type=EvgCommandType.SYSTEM,
Expand Down Expand Up @@ -127,7 +124,7 @@ class AbiProhibitedSymbols(Function):
name = 'abi-prohibited-symbols'
commands = bash_exec(
command_type=EvgCommandType.TEST,
script='mongo-cxx-driver/.evergreen/scripts/abi-prohibited-symbols-test.sh'
script='mongo-cxx-driver/.evergreen/scripts/abi-prohibited-symbols-test.sh',
)


Expand Down Expand Up @@ -198,7 +195,7 @@ def task_groups():
'distro_id',
'UV_INSTALL_DIR',
],
script='mongo-cxx-driver/.evergreen/scripts/abi-stability-setup.sh'
script='mongo-cxx-driver/.evergreen/scripts/abi-stability-setup.sh',
),
s3_put(
command_type=EvgCommandType.SETUP,
Expand All @@ -214,7 +211,9 @@ def task_groups():
],
tasks=[task.name for task in TASKS if polyfill in task.name and f'cxx{cxx_standard}' in task.name],
teardown_task_can_fail_task=True,
teardown_task=[bash_exec(script='rm -rf *'),],
teardown_task=[
bash_exec(script='rm -rf *'),
],
)
for polyfill, cxx_standard in MATRIX
]
Expand All @@ -223,11 +222,8 @@ def task_groups():
def variants():
return [
BuildVariant(
name=f'abi-stability',
display_name=f'ABI Stability Checks',
tasks=[
EvgTaskRef(name=f'tg-{TAG}-{polyfill}-cxx{cxx_standard}')
for polyfill, cxx_standard in MATRIX
],
name='abi-stability',
display_name='ABI Stability Checks',
tasks=[EvgTaskRef(name=f'tg-{TAG}-{polyfill}-cxx{cxx_standard}') for polyfill, cxx_standard in MATRIX],
)
]
20 changes: 9 additions & 11 deletions .evergreen/config_generator/components/atlas_search_indexes.py
Original file line number Diff line number Diff line change
@@ -1,19 +1,17 @@
from shrub.v3.evg_build_variant import BuildVariant
from shrub.v3.evg_command import EvgCommandType, expansions_update
from shrub.v3.evg_task import EvgTask, EvgTaskRef
from shrub.v3.evg_task_group import EvgTaskGroup

from config_generator.components.funcs.compile import Compile
from config_generator.components.funcs.fetch_det import FetchDET
from config_generator.components.funcs.install_c_driver import InstallCDriver
from config_generator.components.funcs.install_uv import InstallUV
from config_generator.components.funcs.setup import Setup

from config_generator.etc.distros import find_large_distro
from config_generator.etc.function import Function
from config_generator.etc.utils import bash_exec

from shrub.v3.evg_build_variant import BuildVariant
from shrub.v3.evg_command import EvgCommandType, expansions_update
from shrub.v3.evg_task import EvgTask, EvgTaskRef
from shrub.v3.evg_task_group import EvgTaskGroup


TAG = 'atlas-search-indexes'


Expand All @@ -32,12 +30,12 @@ class TestSearchIndexHelpers(Function):
commands = bash_exec(
command_type=EvgCommandType.TEST,
working_dir='mongo-cxx-driver',
script='''\
script="""\
export MONGODB_URI=${MONGODB_URI}
export LD_LIBRARY_PATH=$(pwd)/../mongoc/lib

./build/src/mongocxx/test/test_driver "atlas search indexes prose tests"
'''
""",
)


Expand Down Expand Up @@ -87,9 +85,9 @@ def task_groups():
bash_exec(
working_dir='mongo-cxx-driver',
add_expansions_to_env=True,
script='${DRIVERS_TOOLS}/.evergreen/atlas/teardown-atlas-cluster.sh'
script='${DRIVERS_TOOLS}/.evergreen/atlas/teardown-atlas-cluster.sh',
)
]
],
)
for mongodb_version in MATRIX
]
Expand Down
34 changes: 19 additions & 15 deletions .evergreen/config_generator/components/benchmarks.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,13 @@
from config_generator.components.funcs.setup import Setup
from shrub.v3.evg_build_variant import BuildVariant
from shrub.v3.evg_command import EvgCommandType
from shrub.v3.evg_task import EvgTask, EvgTaskRef

from config_generator.components.funcs.fetch_c_driver_source import FetchCDriverSource
from config_generator.components.funcs.setup import Setup
from config_generator.components.funcs.start_mongod import StartMongod

from config_generator.etc.function import Function, merge_defns
from config_generator.etc.utils import bash_exec

from shrub.v3.evg_build_variant import BuildVariant
from shrub.v3.evg_command import BuiltInCommand, EvgCommandType
from shrub.v3.evg_task import EvgTask, EvgTaskRef


TAG = 'benchmarks'


Expand All @@ -30,7 +28,17 @@ class RunBenchmarks(Function):
command_type=EvgCommandType.SYSTEM,
working_dir='mongo-cxx-driver',
script='.evergreen/scripts/send-perf-data.sh',
include_expansions_in_env=['project_id', 'version_id', 'build_variant', 'parsed_order_id', 'task_name', 'task_id', 'execution', 'requester', 'revision_order_id'],
include_expansions_in_env=[
'project_id',
'version_id',
'build_variant',
'parsed_order_id',
'task_name',
'task_id',
'execution',
'requester',
'revision_order_id',
],
),
]

Expand All @@ -40,12 +48,12 @@ class CompileBenchmarks(Function):
commands = bash_exec(
command_type=EvgCommandType.SETUP,
working_dir='mongo-cxx-driver',
script='''\
script="""\
set -o errexit
set -o pipefail
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$(pwd)/../mongoc" -DCMAKE_CXX_STANDARD=20
cmake --build build --target microbenchmarks --parallel 64
'''
""",
)


Expand Down Expand Up @@ -77,9 +85,5 @@ def tasks():

def variants():
return [
BuildVariant(
name=TAG,
display_name=TAG,
tasks=[EvgTaskRef(name=f'.{TAG}')]
),
BuildVariant(name=TAG, display_name=TAG, tasks=[EvgTaskRef(name=f'.{TAG}')]),
]
14 changes: 6 additions & 8 deletions .evergreen/config_generator/components/clang_tidy.py
Original file line number Diff line number Diff line change
@@ -1,18 +1,16 @@
from typing import Mapping

from shrub.v3.evg_build_variant import BuildVariant
from shrub.v3.evg_command import EvgCommandType
from shrub.v3.evg_task import EvgTask, EvgTaskRef

from config_generator.components.funcs.install_c_driver import InstallCDriver
from config_generator.components.funcs.install_uv import InstallUV
from config_generator.components.funcs.setup import Setup

from config_generator.etc.distros import compiler_to_vars, find_small_distro
from config_generator.etc.function import Function
from config_generator.etc.utils import bash_exec

from shrub.v3.evg_build_variant import BuildVariant
from shrub.v3.evg_command import EvgCommandType
from shrub.v3.evg_task import EvgTask, EvgTaskRef

from typing import Mapping


TAG = 'clang-tidy'


Expand Down
9 changes: 4 additions & 5 deletions .evergreen/config_generator/components/cmake_compat.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,15 @@
from shrub.v3.evg_build_variant import BuildVariant
from shrub.v3.evg_command import EvgCommandType
from shrub.v3.evg_task import EvgTask, EvgTaskRef

from config_generator.components.funcs.fetch_c_driver_source import FetchCDriverSource
from config_generator.components.funcs.install_c_driver import InstallCDriver
from config_generator.components.funcs.install_uv import InstallUV
from config_generator.components.funcs.setup import Setup

from config_generator.etc.distros import find_small_distro
from config_generator.etc.function import Function
from config_generator.etc.utils import bash_exec

from shrub.v3.evg_build_variant import BuildVariant
from shrub.v3.evg_command import EvgCommandType
from shrub.v3.evg_task import EvgTask, EvgTaskRef

TAG = 'cmake-compat'

# pylint: disable=line-too-long
Expand Down
20 changes: 8 additions & 12 deletions .evergreen/config_generator/components/compile_only.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
from config_generator.components.funcs.compile import Compile
from config_generator.components.funcs.install_uv import InstallUV
from config_generator.components.funcs.install_c_driver import InstallCDriver
from config_generator.components.funcs.setup import Setup

from config_generator.etc.distros import compiler_to_vars, find_large_distro, make_distro_str

from shrub.v3.evg_build_variant import BuildVariant
from shrub.v3.evg_command import KeyValueParam, expansions_update
from shrub.v3.evg_task import EvgTask, EvgTaskRef

from config_generator.components.funcs.compile import Compile
from config_generator.components.funcs.install_c_driver import InstallCDriver
from config_generator.components.funcs.install_uv import InstallUV
from config_generator.components.funcs.setup import Setup
from config_generator.etc.distros import compiler_to_vars, find_large_distro, make_distro_str

TAG = 'compile-only'

Expand Down Expand Up @@ -100,7 +98,7 @@ def tasks():
build_type=build_type,
compiler=compiler,
vars=compile_vars,
)
),
]

yield EvgTask(
Expand All @@ -109,7 +107,7 @@ def tasks():
run_on=distro.name,
patchable=patchable,
commands=commands,
disable=(True if distro_name == 'rhel7.9' else None), # DEVPROD-18187
disable=(True if distro_name == 'rhel7.9' else None), # DEVPROD-18187
)


Expand All @@ -126,9 +124,7 @@ def variants():

distros = sorted(list({entry[0] for entry in MATRIX}))
batched = [distro for distro in distros if distro in limited_distros]
tasks = [
EvgTaskRef(name=f'.{TAG} .{distro}', batchtime=one_day) for distro in batched
] + [
tasks = [EvgTaskRef(name=f'.{TAG} .{distro}', batchtime=one_day) for distro in batched] + [
EvgTaskRef(name=f'.{TAG}' + ''.join(f' !.{distro}' for distro in batched))
]

Expand Down
25 changes: 11 additions & 14 deletions .evergreen/config_generator/components/docker_build.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
from config_generator.components.funcs.setup import Setup
from shrub.v3.evg_build_variant import BuildVariant
from shrub.v3.evg_command import EvgCommandType, KeyValueParam, ec2_assume_role, expansions_update
from shrub.v3.evg_task import EvgTask, EvgTaskRef

from config_generator.components.funcs.setup import Setup
from config_generator.etc.distros import find_large_distro
from config_generator.etc.function import Function
from config_generator.etc.utils import bash_exec

from shrub.v3.evg_build_variant import BuildVariant
from shrub.v3.evg_command import EvgCommandType
from shrub.v3.evg_task import EvgTask, EvgTaskRef
from shrub.v3.evg_command import KeyValueParam, ec2_assume_role, expansions_update


TAG = 'docker-build'


Expand All @@ -32,10 +29,10 @@ class DockerImageBuild(Function):
bash_exec(
command_type=EvgCommandType.SETUP,
include_expansions_in_env=[
"AWS_ACCESS_KEY_ID",
"AWS_SECRET_ACCESS_KEY",
"AWS_SESSION_TOKEN",
"DOCKER_CONFIG",
'AWS_ACCESS_KEY_ID',
'AWS_SECRET_ACCESS_KEY',
'AWS_SESSION_TOKEN',
'DOCKER_CONFIG',
],
script='aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 901841024863.dkr.ecr.us-east-1.amazonaws.com',
),
Expand All @@ -44,10 +41,10 @@ class DockerImageBuild(Function):
working_dir='mongo-cxx-driver',
env={
# Use Amazon ECR as pull-through cache for DockerHub to avoid rate limits.
"DEFAULT_SEARCH_REGISTRY": "901841024863.dkr.ecr.us-east-1.amazonaws.com/dockerhub",
'DEFAULT_SEARCH_REGISTRY': '901841024863.dkr.ecr.us-east-1.amazonaws.com/dockerhub',
},
include_expansions_in_env=['DOCKER_CONFIG'],
script='''\
script="""\
set -o errexit
set -o pipefail
set -x
Expand All @@ -59,7 +56,7 @@ class DockerImageBuild(Function):
make -C extras/docker/redhat-ubi-9.4 nocachebuild test
echo "Building Ubuntu Docker image"
make -C extras/docker/noble nocachebuild test
''',
""",
),
]

Expand Down
6 changes: 3 additions & 3 deletions .evergreen/config_generator/components/funcs/compile.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
from typing import Mapping

from shrub.v3.evg_command import EvgCommandType

from config_generator.etc.distros import compiler_to_vars
from config_generator.etc.function import Function
from config_generator.etc.utils import bash_exec

from typing import Mapping


class Compile(Function):
name = 'compile'
Expand Down Expand Up @@ -42,7 +42,7 @@ def call(
build_type: str | None = None,
compiler: str | None = None,
polyfill: str | None = None,
vars: Mapping[str, str] = {}
vars: Mapping[str, str] = {},
):
vars = vars if vars else {}

Expand Down
Loading