You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+37-28
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# Mongo Task Generator
2
2
3
-
Dynamically split evergreen tasks into subtasks for testing the mongodb/mongo project.
3
+
Dynamically split evergreen tasks into subtasks for testing the 10gen/mongo project.
4
4
5
5
## Table of contents
6
6
@@ -27,11 +27,11 @@ Dynamically split evergreen tasks into subtasks for testing the mongodb/mongo pr
27
27
28
28
## Description
29
29
30
-
A tool to dynamically generate and split resmoke tests for the mongodb/mongo project into sub-tasks
30
+
A tool to dynamically generate and split resmoke tests for the 10gen/mongo project into sub-tasks
31
31
that can be run in parallel. For example, a task that runs in 2 hours could be split into 4 sub-tasks
32
32
that can be run in parallel to reduce the wall-clock time of to closer to 30 minutes.
33
33
34
-
The tool will use [Evergreen Test Stats](https://github.com/evergreen-ci/evergreen/wiki/REST-V2-Usage#teststats)
34
+
The tool will use [Evergreen Test Stats](https://docs.devprod.prod.corp.mongodb.com/evergreen/Project-Configuration/Evergreen-Data-for-Analytics#evergreen-test-statistics)
35
35
to determine how to divide the tests between sub-tasks. If test stats are not available for any
36
36
reason, it will fallback to splitting tests so that each sub-tasks contains an equal number of tests.
37
37
@@ -46,12 +46,12 @@ For example, if `n_files=3` and `n_tasks=5`, a total of 15 files will be run in
46
46
47
47
### What's the right channel to ask my question?
48
48
49
-
If you have a question about _Mongo Task Generator_, please reach out on slack in the #server-testing
50
-
channel, or email us at dev-prod-dag@mongodb.com.
49
+
If you have a question about _Mongo Task Generator_, please reach out on slack in #ask-devprod-correctness or #server-testing
50
+
channel, or email us at devprod-correctness-team@mongodb.com.
51
51
52
52
### How can I request a change/report a bug in _Mongo Task Generator_?
53
53
54
-
Create a [DAG ticket](https://jira.mongodb.org/browse/DAG) in Jira.
54
+
Create a [DEVPROD ticket](https://jira.mongodb.org/browse/DEVPROD) in Jira.
55
55
56
56
### What should I include in my ticket or question?
57
57
@@ -67,13 +67,13 @@ Please include the following:
67
67
68
68
This project is built to run on linux. It is tested on Ubuntu 18.04.
69
69
70
-
The [evergreen CLI](https://github.com/evergreen-ci/evergreen/wiki/Using-the-Command-Line-Tool) is
70
+
The [evergreen CLI](https://docs.devprod.prod.corp.mongodb.com/evergreen/CLI) is
71
71
required.
72
72
73
73
## Installation
74
74
75
75
The tool can be downloaded from the [github releases](https://github.com/mongodb/mongo-task-generator/releases)
76
-
page. It is currently built on Ubuntu 18.04 and should work on recent x86 linux distributions.
76
+
page. It is currently built on Ubuntu 20.04 and should work on recent x86 linux distributions.
77
77
78
78
The install can be automated using a tool like `wget` or `curl`:
-[Evergreen test stats documentation](https://docs.devprod.prod.corp.mongodb.com/evergreen/Project-Configuration/Evergreen-Data-for-Analytics#evergreen-test-statistics)
and use those stats to divide up the tests into sub-suite with roughly even runtimes.
78
+
It will then generate "sub-tasks" for each of the "sub-suites" to actually run the tests.
79
79
80
-
We also generate a sub-suite with the suffix "_misc". Since the generated sub-suites are based
81
-
on the runtime history of tests, there is a chance that a test exists that has no history -- for
82
-
example, a newly added tests. The "_misc" sub-task will try to run all the tests, but exclude any
83
-
tests that were included in the generated sub-tasks. This is used to catch any tasks without test
84
-
runtime history.
80
+
Since the generated sub-suites are based on the runtime history of tests, there is a chance that
81
+
a test exists that has no history -- for example, a newly added tests. Such tests will be
82
+
distributed with a roughly equal number of tests among all sub-tasks.
85
83
86
84
If for any reason the runtime history cannot be obtained (e.g. errors in querying, a task having no
87
85
runtime history, etc), task splitting will fallback to splitting the tests into sub-tasks that
@@ -180,6 +178,7 @@ the `"no_multiversion_generate_tasks"` tag should also be included. This is typi
180
178
run_no_feature_flag_tests: "true
181
179
```
182
180
The `"initialize multiversion tasks"` function has all of the related suites to run as sub-tasks of this task as variable names and the "old" version to run against as the values. The absence of the `"no_multiversion_generate_tasks"` tag indicates to the task generator to generate sub-tasks for this task according to the `"initialize multiversion tasks"` function variables. Because the `suite` name is embedded in the `"initialize multiversion tasks"` variables, a `suite` variable passed to `"generate resmoke tasks"` will have no effect. Additionally, the variable/suite names in `"initialize multiversion tasks"` must be globally unique because these are ultimately going to become the sub-task name and evergreen requires task names to be unique.
181
+
183
182
### Burn in tests, burn in tags and burn in tasks
184
183
185
184
Newly added or modified tests might become flaky. In order to avoid that, those tests can be run
@@ -266,7 +265,7 @@ Burn-in related tasks are generated when `--burn-in` is passed.
266
265
## Working with generated tasks
267
266
268
267
A generated tasks is typically composed of a number of related sub-tasks. Because evergreen does
269
-
not actually support the concept of sub-tasks, [display tasks](https://github.com/evergreen-ci/evergreen/wiki/Project-Configuration-Files#display-tasks)
268
+
not actually support the concept of sub-tasks, [display tasks](https://docs.devprod.prod.corp.mongodb.com/evergreen/Project-Configuration/Project-Configuration-Files#display-tasks)
270
269
are used to instead.
271
270
272
271
In evergreen, a display task is a container for a number of "execution tasks". The "execution tasks"
@@ -287,7 +286,7 @@ directory. The generate.tasks configuration will be the "evergreen_config.json"
287
286
### expansions-file
288
287
289
288
In order to execute the command, you must provide an "expansion" file. When running in
290
-
evergreen, the [expansions.write](https://github.com/evergreen-ci/evergreen/wiki/Project-Commands#expansions-write)
289
+
evergreen, the [expansions.write](https://docs.devprod.prod.corp.mongodb.com/evergreen/Project-Configuration/Project-Commands#expansionswrite)
291
290
command will generate this file for you.
292
291
293
292
This file should be yaml and must contain the following entries:
@@ -312,56 +311,35 @@ You must provide the expansion file when running the `mongo-task-generator` comm
There are several other details the command needs to run correctly, you may specify them
318
-
if the default value does not apply.
319
-
320
-
* **evg-auth-file**: A yaml file containing information for how to authenticate with the evergreen
321
-
API. This should follow the same format used by the [Evergreen CLI tool](https://github.com/evergreen-ci/evergreen/wiki/Using-the-Command-Line-Tool#downloading-the-command-line-tool).
322
-
This defaults to `~/.evergreen.yml`.
323
-
* **evg-project-file**: The yaml file containing the evergreen project configuration for the
324
-
project being run against. This defaults to `etc/evergreen.yml`.
325
-
* **resmoke-command**: How to invoke the resmoke command. The resmoke command is used to determine
326
-
configuration about the tests being run. It defaults to `python buildscripts/resmoke.py`. If you
327
-
store your resmokeconfig is a different directory, you can adjust this value:
0 commit comments