[CI] Exclude docs directories from triggering rebuilds
Currently when someone touches a docs directory in a subproject, it is treated as if the source code of that project got touched, so the project is built, it is tested, and the same for all of its enumerated dependents. This is wasteful, particularly for patches just touching docs in places like LLVM where we might spend an hour of node time to do nothing useful given changes in the docs shouldn't cause test failures and there is already another workflow that tests the documentation build completes successfully. Reviewers: Keenuts, tstellar, lnihlen Reviewed By: tstellar Pull Request: https://github.com/llvm/llvm-project/pull/133185
This commit is contained in:
parent
34d858635f
commit
21eeca3db0
@ -194,6 +194,12 @@ def _compute_runtime_check_targets(runtimes_to_test: Set[str]) -> Set[str]:
|
||||
def _get_modified_projects(modified_files: list[str]) -> Set[str]:
|
||||
modified_projects = set()
|
||||
for modified_file in modified_files:
|
||||
path_parts = pathlib.Path(modified_file).parts
|
||||
# Exclude files in the docs directory. They do not impact an test
|
||||
# targets and there is a separate workflow used for ensuring the
|
||||
# documentation builds.
|
||||
if len(path_parts) > 2 and path_parts[1] == "docs":
|
||||
continue
|
||||
modified_projects.add(pathlib.Path(modified_file).parts[0])
|
||||
return modified_projects
|
||||
|
||||
|
@ -170,6 +170,15 @@ class TestComputeProjects(unittest.TestCase):
|
||||
self.assertEqual(env_variables["runtimes_to_build"], "")
|
||||
self.assertEqual(env_variables["runtimes_check_targets"], "")
|
||||
|
||||
def test_exclude_docs(self):
|
||||
env_variables = compute_projects.get_env_variables(
|
||||
["llvm/docs/CIBestPractices.rst"], "Linux"
|
||||
)
|
||||
self.assertEqual(env_variables["projects_to_build"], "")
|
||||
self.assertEqual(env_variables["project_check_targets"], "")
|
||||
self.assertEqual(env_variables["runtimes_to_build"], "")
|
||||
self.assertEqual(env_variables["runtimes_check_targets"], "")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
Loading…
x
Reference in New Issue
Block a user