docs/evergreen-testing/yaml_configuration/buildvariants.md
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.
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.
mongodb-mongo-master and mongodb-mongo-master-nightlymongodb-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" 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.
"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 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.
In each of platform or build variant group directory there can be these files:
test_dev.yml
etc/evergreen.yml which is used for mongodb-mongo-master project on master branchetc/evergreen_nightly.yml which is used for a new branch mongodb-mongo-vX.Y projecttest_dev_master_and_lts_branches_only.yml
etc/evergreen.yml which is used for mongodb-mongo-master project on master branchetc/evergreen_nightly.yml which is used for a new branch mongodb-mongo-vX.Y projecttest_dev_master_branch_only.yml
etc/evergreen.yml which is used for mongodb-mongo-master project on master branchmongodb-mongo-vX.Y projecttest_release.yml
etc/evergreen_nightly.yml which is used for mongodb-mongo-master-nightly project on master branchetc/evergreen_nightly.yml which is used for a new branch mongodb-mongo-vX.Y projecttest_release_master_and_lts_branches_only.yml
etc/evergreen_nightly.yml which is used for mongodb-mongo-master-nightly project on master branchetc/evergreen_nightly.yml which is used for a new branch mongodb-mongo-vX.Y projecttest_release_master_branch_only.yml
etc/evergreen_nightly.yml which is used for mongodb-mongo-master-nightly project on master branchmongodb-mongo-vX.Y project