0
0
mirror of https://github.com/mongodb/mongo.git synced 2024-11-30 17:10:48 +01:00
mongodb/etc/evergreen_lint.yml
Gregory Wlodarek 97ed8da2ce SERVER-94145 Add queryable backup/restore testing (#27551)
GitOrigin-RevId: 0dfa75db7dca55d0bb9e43c327a6e12aee66ac96
2024-09-30 11:28:12 +00:00

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