mirror of
https://github.com/mongodb/mongo.git
synced 2024-11-24 00:17:37 +01:00
97ed8da2ce
GitOrigin-RevId: 0dfa75db7dca55d0bb9e43c327a6e12aee66ac96
166 lines
7.3 KiB
YAML
166 lines
7.3 KiB
YAML
# These paths are relative to the directory containing this configuration file
|
|
files:
|
|
- evaluated_evergreen.yml
|
|
- evaluated_evergreen_nightly.yml
|
|
help_url: https://wiki.corp.mongodb.com/pages/viewpage.action?pageId=133273894
|
|
|
|
rules:
|
|
# keyval.inc is a deprecated command. This rule is to prevent the
|
|
# proliferation of it.
|
|
- rule: "limit-keyval-inc"
|
|
# the maximum number of keyval.inc commands to allow in your YAML
|
|
limit: 5
|
|
|
|
# # With the extraction of shell scripts from the Evergreen YAML, we expect
|
|
# # users to source a script called `prelude.sh`. This script requires that
|
|
# # the user be in ${workdir}, so we forbid users from `cd`ing with
|
|
# # `working_dir` parameter.
|
|
- rule: "no-working-dir-on-shell"
|
|
|
|
# # Embedding shell.exec scripts in the Evergreen yaml has been a historical
|
|
# # source of pain:
|
|
# # * No ability to lint/shellcheck
|
|
# # * Distraction from the build matrix
|
|
# # * Tons of scrolling to get anywhere.
|
|
# # We completed a project to completely eject all shell scripts from the
|
|
# # YAML, and now require this of all shell scripts. Add your scripts to the
|
|
# # evergreen/ directory, and make use of subprocess.exec.
|
|
- rule: "no-shell-exec"
|
|
|
|
# Historically, expansions.update has been used to inject shell scripts
|
|
# into expansions, which were then used to inject commonly used snippets
|
|
# as required. With the extraction of the shell scripts, the correct
|
|
# paradigm is to source a script in the evergreen/ directory, or to add a
|
|
# function to `evergreen/prelude.sh`.
|
|
- rule: "no-multiline-expansions-update"
|
|
|
|
# To prevent the proliferation of undocumented build-parameters, we require
|
|
# params to have a non-empty description, and a name matching [a-z][a-z0-9_]*.
|
|
- rule: "invalid-build-parameter"
|
|
|
|
# # To ensure that the expansions file loaded by prelude.sh is not stale, we
|
|
# # require the user to add sometimes superfluous expansions.write calls to
|
|
# # ere on side of correctness.
|
|
- rule: "required-expansions-write"
|
|
regex: .*\/evergreen\/.*\.sh
|
|
|
|
# Generated tests must depend on build_variant_gen (which generates the
|
|
# tasks that contain them) and archive_dist_test (which contains
|
|
# built assets).
|
|
- rule: "dependency-for-func"
|
|
dependencies:
|
|
generate resmoke tasks: ["version_gen", "archive_dist_test"]
|
|
|
|
- rule: "enforce-tags-for-tasks"
|
|
tag_groups:
|
|
# Every task should have team assignment tag
|
|
- group_name: "team_assignment_tags"
|
|
tag_regex: assigned_to_jira_team_.+
|
|
# Before changing anything in this list, please read
|
|
# https://github.com/10gen/mongo/blob/master/docs/evergreen-testing/yaml_configuration/task_ownership_tags.md
|
|
tag_list:
|
|
# https://github.com/10gen/mothra/blob/main/mothra/teams/database.yaml
|
|
- assigned_to_jira_team_server_catalog_and_routing
|
|
- assigned_to_jira_team_server_cluster_scalability
|
|
- assigned_to_jira_team_server_query_execution
|
|
- assigned_to_jira_team_server_query_optimization
|
|
- assigned_to_jira_team_server_query_integration
|
|
- assigned_to_jira_team_server_repl
|
|
- assigned_to_jira_team_server_security
|
|
- assigned_to_jira_team_server_servicearch
|
|
- assigned_to_jira_team_server_execution
|
|
- assigned_to_jira_team_server_storage_engines
|
|
- assigned_to_jira_team_server_programmability
|
|
- assigned_to_jira_team_server_workload_scheduling
|
|
- assigned_to_jira_team_server_networking_and_observability
|
|
- assigned_to_jira_team_server_rss_sydney
|
|
|
|
# https://github.com/10gen/mothra/blob/main/mothra/teams/rnd_dev_prod.yaml
|
|
- assigned_to_jira_team_devprod_build
|
|
- assigned_to_jira_team_devprod_correctness
|
|
- assigned_to_jira_team_devprod_infrastructure
|
|
- assigned_to_jira_team_devprod_evergreen_app
|
|
- assigned_to_jira_team_devprod_evergreen_ui
|
|
- assigned_to_jira_team_devprod_performance_infrastructure
|
|
- assigned_to_jira_team_devprod_performance_analysis
|
|
- assigned_to_jira_team_devprod_release_infrastructure
|
|
- assigned_to_jira_team_devprod_runtime_environments
|
|
- assigned_to_jira_team_devprod_services_integrations
|
|
|
|
# https://github.com/10gen/mothra/blob/main/mothra/teams/et.yaml
|
|
- assigned_to_jira_team_streams
|
|
min_num_of_tags: 1
|
|
max_num_of_tags: 1
|
|
# Every task should have required selection tag
|
|
- group_name: "required_selection_tags"
|
|
tag_regex: (development_critical|development_critical_single_variant|release_critical|default|non_deterministic|experimental|auxiliary)
|
|
# Before changing anything in this list, please read
|
|
# https://github.com/10gen/mongo/blob/master/docs/evergreen-testing/yaml_configuration/task_selection_tags.md
|
|
tag_list:
|
|
- development_critical
|
|
- development_critical_single_variant
|
|
- release_critical
|
|
- default
|
|
- non_deterministic
|
|
- experimental
|
|
- auxiliary
|
|
min_num_of_tags: 1
|
|
max_num_of_tags: 1
|
|
- group_name: "optional_selection_tags"
|
|
tag_regex: (incompatible_.+|requires_.+)
|
|
# Before changing anything in this list, please read
|
|
# https://github.com/10gen/mongo/blob/master/docs/evergreen-testing/yaml_configuration/task_selection_tags.md
|
|
tag_list:
|
|
- incompatible_community
|
|
- incompatible_windows
|
|
- incompatible_mac
|
|
- incompatible_debian
|
|
- incompatible_oscrypto
|
|
- incompatible_ppc
|
|
- incompatible_s390x
|
|
- incompatible_aubsan
|
|
- incompatible_tsan
|
|
- incompatible_debug_mode
|
|
- incompatible_system_allocator
|
|
- incompatible_inmemory
|
|
- incompatible_all_feature_flags
|
|
- incompatible_development_variant
|
|
- requires_compile_variant
|
|
- requires_large_host
|
|
- requires_large_host_tsan
|
|
- requires_large_host_debug_mode
|
|
- requires_large_host_commit_queue
|
|
- requires_all_feature_flags
|
|
- requires_execution_on_windows_patch_build
|
|
|
|
- rule: "enforce-tags-for-variants"
|
|
tags:
|
|
# Required variants should have "required" tag
|
|
- tag_name: "required"
|
|
variant_config:
|
|
display_name_regex: "^!.+$"
|
|
# Suggested variants should have "suggested" tag
|
|
- tag_name: "suggested"
|
|
variant_config:
|
|
display_name_regex: "^\\*.+$"
|
|
|
|
# Forbid tasks with specific tags from being used in buildvariants with certain tags
|
|
# Allows for specific tasks to be included even if violate the linters
|
|
- rule: "forbid-tasks-with-tag-on-variants"
|
|
tags:
|
|
- variant_tag_name: "forbid_tasks_tagged_with_experimental"
|
|
forbidden_task_tag: "experimental"
|
|
ignored_tasks: [
|
|
# TODO: remove this exception when SERVER-94576 is resolved
|
|
"search_end_to_end_sharded_cluster",
|
|
"search_end_to_end_single_node",
|
|
# TODO: remove this exception when SERVER-94572 is resolved
|
|
"streams_kafka",
|
|
"streams_kafka_gwproxy",
|
|
# TODO: remove these exceptions when SERVER-94573 is resolved
|
|
"selinux_rhel9_enterprise",
|
|
"selinux_rhel8_org",
|
|
"selinux_rhel9_org",
|
|
"selinux_rhel8_enterprise",
|
|
]
|