diff --git a/.gitignore b/.gitignore index d6fb7c3b373..297db61485a 100644 --- a/.gitignore +++ b/.gitignore @@ -267,4 +267,5 @@ bazelisk buildifier .bazelrc.local .bazel_info_for_ninja.txt -.ninja_last_command_line_targets.txt \ No newline at end of file +.ninja_last_command_line_targets.txt +scons_cache.log.json diff --git a/SConstruct b/SConstruct index 1c58ae0e234..5158aac40cb 100644 --- a/SConstruct +++ b/SConstruct @@ -164,6 +164,12 @@ add_option( nargs=0, ) +add_option( + 'extra_dist_files', + help= + 'If defined, it should be a comma-delimited list of repository-relative paths to include in the dist target as installed files', +) + add_option( 'build-tools', choices=['stable', 'next'], @@ -6316,6 +6322,20 @@ clang_tidy_config = env.Substfile( ], SUBST_DICT=replacements, ) + +if has_option('extra_dist_files'): + distsrc = env.Dir('#distsrc') + env.AutoInstall( + target='$PREFIX', + source=[ + distsrc.File("#/" + extra_dist_file) + for extra_dist_file in get_option('extra_dist_files').split(',') + ], + AIB_COMPONENT='common', + AIB_COMPONENTS_EXTRA=['dist'], + AIB_ROLE='base', + ) + env.Alias("generated-sources", clang_tidy_config) if get_option('ninja') == 'disabled': diff --git a/buildscripts/obtain_sbom_from_silk.py b/buildscripts/obtain_sbom_from_silk.py new file mode 100644 index 00000000000..3770c3c44cb --- /dev/null +++ b/buildscripts/obtain_sbom_from_silk.py @@ -0,0 +1,20 @@ +import argparse +import sys + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument("--path", type=str, + help="Path to the output file that should be generated.", default="") + args = parser.parse_args() + if args.path == "": + print("Error: No path provided.") + return 1 + # TODO(SERVER-90466): Implement the logic to obtain the SBOM from Silk. + with open(args.path, 'w') as fp: + _ = fp + return 0 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/etc/evergreen_yml_components/definitions.yml b/etc/evergreen_yml_components/definitions.yml index ed71bd17061..e4d28df809f 100644 --- a/etc/evergreen_yml_components/definitions.yml +++ b/etc/evergreen_yml_components/definitions.yml @@ -7118,6 +7118,13 @@ tasks: - name: compile_dist_test commands: - *f_expansions_write + - command: subprocess.exec + params: + binary: bash + args: + - "src/evergreen/run_python_script.sh" + - "buildscripts/obtain_sbom_from_silk.py" + - "--path=sbom_from_silk.json" - func: "scons compile" vars: targets: >- @@ -7128,6 +7135,7 @@ tasks: ${additional_package_targets|} task_compile_flags: >- --legacy-tarball + --extra_dist_files=sbom_from_silk.json - command: subprocess.exec params: binary: bash