mongo/docs/evergreen-testing/yaml_configuration/buildvariants.md
Sean Lyons 14bcef04af SERVER-126753: Use the same Evergreen configuration for all release branches (#53778)
GitOrigin-RevId: bd316ca715d8501bf1d07578925473f577478ba4
2026-05-15 14:35:08 +00:00

3.3 KiB

Build Variants

This document describes build variants (a.k.a. variants, or builds, or buildvariants) that are used in mongodb-mongo-* projects. To know more about build variants, please refer to the Build Variants section of the Evergreen wiki.

YAML files structure

Build variant configuration files are in etc/evergreen_yml_components/variants directory. They are merged into etc/evergreen.yml and etc/evergreen_nightly.yml with Evergreen's include feature.

Inside etc/evergreen_yml_components/variants directory there are more directories, which are in most cases platform names (e.g. amazon, rhel etc.) or build variant group names (e.g. sanitizer etc.).

Be aware that some of these files could be also used or re-used to be merged into etc/system_perf.yml which is used for sys-perf project.

Build Variants in mongodb-mongo-master and mongodb-mongo-master-nightly

mongodb-mongo-master evergreen project uses etc/evergreen.yml and contains all build variants for development, including all feature-specific, patch build required, and suggested variants.

mongodb-mongo-master-nightly evergreen project uses etc/evergreen_nightly.yml and contains build variants for public nightly builds.

Required and Suggested Build Variants

"Required" build variants are defined as any build variant with a ! at the front of its display name in Evergreen. These build variants also have required tag.

Required Patch Builds Policy

"Suggested" build variants are defined as any build variant with a * at the front of its display name in Evergreen. These build variants also have suggested tag.

Build Variants with forbid_tasks_tagged_with_experimental

Build variants with the forbid_tasks_tagged_with_experimental tag indicate that they do not allow tasks tagged as experimental to run. This tag is used in conjunction with the forbid-tasks-with-tag-on-variants evergreen lint rule to enforce this restriction.

Build Variants after branching

In each of platform or build variant group directory there can be these files:

YAML file Runs on Master project and Evergreen YML Release project and Evergreen YML
test_dev.yml master + releases mongodb-mongo-master evergreen.yml mongodb-mongo-vX.Y evergreen_nightly.yml
test_dev_master_branch_only.yml master only mongodb-mongo-master evergreen.yml not used
test_release.yml master + releases mongodb-mongo-master-nightly evergreen_nightly.yml mongodb-mongo-vX.Y evergreen_nightly.yml
test_release_master_branch_only.yml master only mongodb-mongo-master-nightly evergreen_nightly.yml commented out