6e624c30f9
The current setup is configuring the "affected projects" as well as their dependencies, and run `ninja all` followed by `ninja check-all`. This is quite a pessimization for leaf project which don't need to build and run the tests for their dependencies. For example a patch affecting only MLIR shouldn't need to build and run LLVM and clang tests. This patch changes this by running checks only for the affected project. For example a patch touching `mlir` is affecting `mlir` and `flang`. However `flang` depends on `clang`. So the list of projects to configure is `mlir;flang;clang;llvm;`, but we want to test only mlir and flang ; we'll run only `ninja check-mlir check-flang`. In practice in this example running `ninja all` builds 5658 targets and `ninja check-all` after that adds 716 more targets. On the other hands `ninja check-flang check-mlir` results in 3997 targets total. Concretely the contract with premerge_checks.py is changed so that the expected argument for the --projects flag is only the list of affected project, dependencies are automatically added. |
||
---|---|---|
.. | ||
metrics | ||
phab2github | ||
phabtalk | ||
windows | ||
.gitignore | ||
__init__.py | ||
add_phabricator_artifact.py | ||
apply_patch.sh | ||
benchmark.py | ||
buildkite_utils.py | ||
choose_projects.py | ||
clang-format.ignore | ||
clang-tidy-comments.ignore | ||
clang-tidy.ignore | ||
clang_format_report.py | ||
clang_tidy_report.py | ||
cleanup_branches.py | ||
common.ps1 | ||
exec_utils.py | ||
ignore_diff.py | ||
llvm-dependencies.yaml | ||
patch_diff.py | ||
pipeline_create_branch.py | ||
pipeline_main.py | ||
pipeline_premerge.py | ||
premerge_checks.py | ||
requirements.txt | ||
run_cmake.py | ||
run_cmake_config.yaml | ||
run_ninja.py | ||
set_build_status.py | ||
steps.py | ||
summary.py | ||
sync_fork.py | ||
test_results_report.py | ||
windows_agent_bootstrap.ps1 | ||
windows_agent_start_buildkite.ps1 |