Skip to content

Commit 47e8999

Browse files
DAG-2284 Support burn_in equivalent for tasks generation (#55)
1 parent 2f23b6f commit 47e8999

15 files changed

+947
-246
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
# Changelog
22

3+
## 0.7.0 - 2022-12-16
4+
* Add support for burn_in_tasks generation.
5+
36
## 0.6.7 - 2022-11-18
47
* Switch to using evergreen test stats from S3.
58

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
name = "mongo-task-generator"
33
description = "Dynamically split evergreen tasks into subtasks for testing the mongodb/mongo project."
44
license = "Apache-2.0"
5-
version = "0.6.7"
5+
version = "0.7.0"
66
repository = "https://github.com/mongodb/mongo-task-generator"
77
authors = ["Decision Automation Group <[email protected]>"]
88
edition = "2018"

docs/generating_tasks.md

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,12 +157,14 @@ of the task definition. When this tag is present, both the extra setup steps and
157157
of multiversion sub-tasks will be preformed. In order to only perform the extra setup steps
158158
the `"no_version_combinations"` tag should also be included.
159159

160-
### Burn in tests and burn in tags
160+
### Burn in tests, burn in tags and burn in tasks
161161

162162
Newly added or modified tests might become flaky. In order to avoid that, those tests can be run
163163
continuously multiple times in a row to see if the results are consistent. This process is called
164164
burn-in.
165165

166+
#### Burn in tests
167+
166168
`burn_in_tests_gen` task is used to generate burn-in tasks on the same buildvariant the task is
167169
added to. The [example](https://github.com/mongodb/mongo/blob/81c41bdfdc56f05973fae70e80e80919f18f50c9/etc/evergreen_yml_components/definitions.yml#L3252-L3256)
168170
of task configuration:
@@ -175,6 +177,8 @@ of task configuration:
175177
- func: "generate resmoke tasks"
176178
```
177179

180+
#### Burn in tags
181+
178182
`burn_in_tags_gen` task is used to generate separate burn-in buildvariants. This way we can burn-in
179183
on the requested buildvariant as well as the other, additional buildvariants to ensure there is no
180184
difference between them.
@@ -200,6 +204,29 @@ burn_in_tag_compile_distro: rhel80-large
200204
burn_in_tag_compile_task_group_name: compile_and_archive_dist_test_TG
201205
```
202206

207+
#### Burn in tasks
208+
209+
`burn_in_tasks_gen` task is used to generate several copies of the task. The example of task
210+
configuration:
211+
212+
```yaml
213+
- <<: *gen_burn_in_task_template
214+
name: burn_in_tasks_gen
215+
tags: []
216+
commands:
217+
- func: "generate resmoke tasks"
218+
```
219+
220+
`burn_in_task_name` buildvariant expansion is used to configure which task to burn-in. The
221+
example of `burn_in_task_name` buildvariant expansion:
222+
223+
```yaml
224+
burn_in_task_name: replica_sets_jscore_passthrough
225+
```
226+
227+
WARNING! Task splitting is not supported for burn-in tasks. Large unsplitted `_gen` tasks may
228+
run too long and hit execution timeouts.
229+
203230
Burn-in related tasks are generated when `--burn-in` is passed.
204231

205232
## Working with generated tasks

src/evergreen_names.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ pub const GENERATOR_TASKS: &str = "generator_tasks";
3939
pub const BURN_IN_TESTS: &str = "burn_in_tests_gen";
4040
/// Name of burn_in_tags task.
4141
pub const BURN_IN_TAGS: &str = "burn_in_tags_gen";
42+
/// Name of burn_in_tasks task.
43+
pub const BURN_IN_TASKS: &str = "burn_in_tasks_gen";
4244

4345
// Vars
4446
/// Variable that indicates a task is a fuzzer.
@@ -94,6 +96,8 @@ pub const BURN_IN_TAG_BUILD_VARIANTS: &str = "burn_in_tag_buildvariants";
9496
pub const BURN_IN_TAG_COMPILE_TASK_GROUP_NAME: &str = "burn_in_tag_compile_task_group_name";
9597
/// Name of build variant to determine the timeouts for.
9698
pub const BURN_IN_BYPASS: &str = "burn_in_bypass";
99+
/// List of tasks to burn in.
100+
pub const BURN_IN_TASK_NAME: &str = "burn_in_task_name";
97101

98102
// Task Tags
99103
/// Tag to include multiversion setup is required.

0 commit comments

Comments
 (0)