diff options
author | Tausif Rahman <tausif.rahman@mongodb.com> | 2022-11-14 15:16:54 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2022-11-14 16:14:16 +0000 |
commit | 93612bf95f8003a1e1d6af27fb1b67c57c6f3e39 (patch) | |
tree | 8a1ce23b1224d6069b15bc1ce4a5ec568279e157 /SConstruct | |
parent | 31f5c4c0dc92f1bc3dd7b4a9f2613cfabf070e35 (diff) | |
download | mongo-93612bf95f8003a1e1d6af27fb1b67c57c6f3e39.tar.gz |
SERVER-69636 Collect SCons Metrics
Diffstat (limited to 'SConstruct')
-rw-r--r-- | SConstruct | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/SConstruct b/SConstruct index 23392f3c577..83d42997c8e 100644 --- a/SConstruct +++ b/SConstruct @@ -15,6 +15,7 @@ import subprocess import sys import textwrap import uuid +from datetime import datetime from glob import glob from pkg_resources import parse_version @@ -38,6 +39,8 @@ from mongo.build_profiles import BUILD_PROFILES EnsurePythonVersion(3, 6) EnsureSConsVersion(3, 1, 1) +utc_starttime = datetime.utcnow() + # Monkey patch SCons.FS.File.release_target_info to be a no-op. # See https://github.com/SCons/scons/issues/3454 @@ -49,6 +52,7 @@ SCons.Node.FS.File.release_target_info = release_target_info_noop from buildscripts import utils from buildscripts import moduleconfig +from buildscripts.metrics.scons_tooling_metrics import setup_scons_metrics_collection_atexit import psutil @@ -1030,7 +1034,7 @@ env_vars.Add( def validate_dwarf_version(key, val, env): - if val == '4' or val == '5': + if val == '4' or val == '5' or val == '': return print(f"Invalid DWARF_VERSION '{val}'. Only valid versions are 4 or 5.") @@ -1041,7 +1045,8 @@ env_vars.Add( 'DWARF_VERSION', help='Sets the DWARF version (non-Windows). Incompatible with SPLIT_DWARF=1.', validator=validate_dwarf_version, - converter=int, + converter=lambda val: int(val) if val != '' else '', + default='', ) env_vars.Add( @@ -1546,6 +1551,11 @@ env = Environment(variables=env_vars, **envDict) del envDict env.AddMethod(lambda env, name, **kwargs: add_option(name, **kwargs), 'AddOption') +# Setup atexit method to store tooling metrics +# The placement of this is intentional. We should only register this function atexit after +# env, env_vars and the parser have been properly initialized. +setup_scons_metrics_collection_atexit(utc_starttime, env_vars, env, _parser, sys.argv) + if get_option('build-metrics'): env['BUILD_METRICS_ARTIFACTS_DIR'] = '$BUILD_ROOT/$VARIANT_DIR' env.Tool('build_metrics') |