Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-33963

Use an Evergreen task group for compile-related tasks

    • 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.

            jonathan.abrahams Jonathan Abrahams
            max.hirschhorn@mongodb.com Max Hirschhorn
            0 Vote for this issue
            5 Start watching this issue