-
Type: Improvement
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: Build, Testing Infrastructure
-
None
-
Fully Compatible
-
TIG 2018-04-09, TIG 2018-04-23, TIG 2018-05-07
-
61
We made changes in SERVER-25691 and SERVER-27483 to avoid having compiling, linking, and running all of the C++ unit tests from having a signficant impact on the makespan of a full patch build by reducing the amount of time the compile task takes. Switching to represent these units of work as part of an Evergreen task group should save EC2 machine time (not necessarily wall-clock time) because we'll be able to reuse the build artifacts from the machine's local SCons cache (which should be even faster than the shared SCons cache) and avoid duplicate work.
Per an in-person discussion with cristopher.stauffer and acm, we'll likely want to have the following Evergreen tasks execute as part of a task group with max_hosts=1:
- compile: runs SCons with the core, tools, dbtest, integration_tests, dist, dist-debugsymbols, distsrc-${ext|tgz}, and ${msi_target|} targets
- compile_unittests: runs SCons with the unittests target
- unittests: runs the C++ unit tests via resmoke.py (depends on compile_unittests)
- compile_benchmarks: runs SCons wtih the benchmarks target
- benchmarks_orphaned: runs the C++ microbenchmarks via resmoke.py (depends on compile_benchmarks)
- compile_all: runs SCons with the all target
Note: There were some ideas to also have compile_dist and compile_dagger tasks, but adding those should be done as follow-up work either on this ticket or another one.
- is related to
-
SERVER-25941 remove library dependency graph generation from compile tasks
- Closed
-
SERVER-31765 Dagger tool has dramatically slowed the dynamic builder
- Closed
-
SERVER-27483 Avoid stripping debug symbols from C++ unit tests in Evergreen
- Closed
-
SERVER-28644 Add Dagger Project to Evergreen
- Closed
-
SERVER-25691 Break out unit test compilation and run in its own task
- Closed
- related to
-
SERVER-34709 The compile_all task runs longer than expected when run on the same host as compile_unittests
- Closed
-
SERVER-40034 Set setup_group_can_fail_task to true for compile-related task groups
- Closed
-
SERVER-41262 Decouple compile_all from compile_all_run_unittests_TG to reduce makespan
- Closed