Revert "[CI] Migrate to runtimes build" (#143612)
Reverts llvm/llvm-project#142696 See https://github.com/llvm/llvm-project/issues/143610 for details; I believe this PR causes CI builders to build LLVM in a way that's been broken for a while. To keep CI green, if this is the correct culprit, those tests should be fixed or skipped
This commit is contained in:
parent
b9329fe88e
commit
6f62979a5a
@ -49,7 +49,8 @@ DEPENDENTS_TO_TEST = {
|
|||||||
},
|
},
|
||||||
"lld": {"bolt", "cross-project-tests"},
|
"lld": {"bolt", "cross-project-tests"},
|
||||||
# TODO(issues/132795): LLDB should be enabled on clang changes.
|
# TODO(issues/132795): LLDB should be enabled on clang changes.
|
||||||
"clang": {"clang-tools-extra", "cross-project-tests"},
|
"clang": {"clang-tools-extra", "compiler-rt", "cross-project-tests"},
|
||||||
|
"clang-tools-extra": {"libc"},
|
||||||
"mlir": {"flang"},
|
"mlir": {"flang"},
|
||||||
# Test everything if ci scripts are changed.
|
# Test everything if ci scripts are changed.
|
||||||
# FIXME: Figure out what is missing and add here.
|
# FIXME: Figure out what is missing and add here.
|
||||||
@ -63,15 +64,7 @@ DEPENDENT_RUNTIMES_TO_BUILD = {"lldb": {"libcxx", "libcxxabi", "libunwind"}}
|
|||||||
|
|
||||||
# This mapping describes runtimes that should be tested when the key project is
|
# This mapping describes runtimes that should be tested when the key project is
|
||||||
# touched.
|
# touched.
|
||||||
DEPENDENT_RUNTIMES_TO_TEST = {
|
DEPENDENT_RUNTIMES_TO_TEST = {"clang": {"libcxx", "libcxxabi", "libunwind"}}
|
||||||
"clang": {"compiler-rt"},
|
|
||||||
"clang-tools-extra": {"libc"},
|
|
||||||
}
|
|
||||||
DEPENDENT_RUNTIMES_TO_TEST_NEEDS_RECONFIG = {
|
|
||||||
"llvm": {"libcxx", "libcxxabi", "libunwind"},
|
|
||||||
"clang": {"libcxx", "libcxxabi", "libunwind"},
|
|
||||||
".ci": {"libcxx", "libcxxabi", "libunwind"},
|
|
||||||
}
|
|
||||||
|
|
||||||
EXCLUDE_LINUX = {
|
EXCLUDE_LINUX = {
|
||||||
"cross-project-tests", # TODO(issues/132796): Tests are failing.
|
"cross-project-tests", # TODO(issues/132796): Tests are failing.
|
||||||
@ -100,6 +93,9 @@ EXCLUDE_MAC = {
|
|||||||
"cross-project-tests",
|
"cross-project-tests",
|
||||||
"flang",
|
"flang",
|
||||||
"libc",
|
"libc",
|
||||||
|
"libcxx",
|
||||||
|
"libcxxabi",
|
||||||
|
"libunwind",
|
||||||
"lldb",
|
"lldb",
|
||||||
"openmp",
|
"openmp",
|
||||||
"polly",
|
"polly",
|
||||||
@ -126,10 +122,10 @@ PROJECT_CHECK_TARGETS = {
|
|||||||
"polly": "check-polly",
|
"polly": "check-polly",
|
||||||
}
|
}
|
||||||
|
|
||||||
RUNTIMES = {"libcxx", "libcxxabi", "libunwind", "compiler-rt", "libc"}
|
RUNTIMES = {"libcxx", "libcxxabi", "libunwind"}
|
||||||
|
|
||||||
|
|
||||||
def _add_dependencies(projects: Set[str], runtimes: Set[str]) -> Set[str]:
|
def _add_dependencies(projects: Set[str]) -> Set[str]:
|
||||||
projects_with_dependents = set(projects)
|
projects_with_dependents = set(projects)
|
||||||
current_projects_count = 0
|
current_projects_count = 0
|
||||||
while current_projects_count != len(projects_with_dependents):
|
while current_projects_count != len(projects_with_dependents):
|
||||||
@ -138,25 +134,9 @@ def _add_dependencies(projects: Set[str], runtimes: Set[str]) -> Set[str]:
|
|||||||
if project not in PROJECT_DEPENDENCIES:
|
if project not in PROJECT_DEPENDENCIES:
|
||||||
continue
|
continue
|
||||||
projects_with_dependents.update(PROJECT_DEPENDENCIES[project])
|
projects_with_dependents.update(PROJECT_DEPENDENCIES[project])
|
||||||
for runtime in runtimes:
|
|
||||||
if runtime not in PROJECT_DEPENDENCIES:
|
|
||||||
continue
|
|
||||||
projects_with_dependents.update(PROJECT_DEPENDENCIES[runtime])
|
|
||||||
return projects_with_dependents
|
return projects_with_dependents
|
||||||
|
|
||||||
|
|
||||||
def _exclude_projects(current_projects: Set[str], platform: str) -> Set[str]:
|
|
||||||
if platform == "Linux":
|
|
||||||
to_exclude = EXCLUDE_LINUX
|
|
||||||
elif platform == "Windows":
|
|
||||||
to_exclude = EXCLUDE_WINDOWS
|
|
||||||
elif platform == "Darwin":
|
|
||||||
to_exclude = EXCLUDE_MAC
|
|
||||||
else:
|
|
||||||
raise ValueError(f"Unexpected platform: {platform}")
|
|
||||||
return current_projects.difference(to_exclude)
|
|
||||||
|
|
||||||
|
|
||||||
def _compute_projects_to_test(modified_projects: Set[str], platform: str) -> Set[str]:
|
def _compute_projects_to_test(modified_projects: Set[str], platform: str) -> Set[str]:
|
||||||
projects_to_test = set()
|
projects_to_test = set()
|
||||||
for modified_project in modified_projects:
|
for modified_project in modified_projects:
|
||||||
@ -174,14 +154,25 @@ def _compute_projects_to_test(modified_projects: Set[str], platform: str) -> Set
|
|||||||
):
|
):
|
||||||
continue
|
continue
|
||||||
projects_to_test.add(dependent_project)
|
projects_to_test.add(dependent_project)
|
||||||
projects_to_test = _exclude_projects(projects_to_test, platform)
|
if platform == "Linux":
|
||||||
|
for to_exclude in EXCLUDE_LINUX:
|
||||||
|
if to_exclude in projects_to_test:
|
||||||
|
projects_to_test.remove(to_exclude)
|
||||||
|
elif platform == "Windows":
|
||||||
|
for to_exclude in EXCLUDE_WINDOWS:
|
||||||
|
if to_exclude in projects_to_test:
|
||||||
|
projects_to_test.remove(to_exclude)
|
||||||
|
elif platform == "Darwin":
|
||||||
|
for to_exclude in EXCLUDE_MAC:
|
||||||
|
if to_exclude in projects_to_test:
|
||||||
|
projects_to_test.remove(to_exclude)
|
||||||
|
else:
|
||||||
|
raise ValueError("Unexpected platform.")
|
||||||
return projects_to_test
|
return projects_to_test
|
||||||
|
|
||||||
|
|
||||||
def _compute_projects_to_build(
|
def _compute_projects_to_build(projects_to_test: Set[str]) -> Set[str]:
|
||||||
projects_to_test: Set[str], runtimes: Set[str]
|
return _add_dependencies(projects_to_test)
|
||||||
) -> Set[str]:
|
|
||||||
return _add_dependencies(projects_to_test, runtimes)
|
|
||||||
|
|
||||||
|
|
||||||
def _compute_project_check_targets(projects_to_test: Set[str]) -> Set[str]:
|
def _compute_project_check_targets(projects_to_test: Set[str]) -> Set[str]:
|
||||||
@ -193,36 +184,24 @@ def _compute_project_check_targets(projects_to_test: Set[str]) -> Set[str]:
|
|||||||
return check_targets
|
return check_targets
|
||||||
|
|
||||||
|
|
||||||
def _compute_runtimes_to_test(modified_projects: Set[str], platform: str) -> Set[str]:
|
def _compute_runtimes_to_test(projects_to_test: Set[str]) -> Set[str]:
|
||||||
runtimes_to_test = set()
|
runtimes_to_test = set()
|
||||||
for modified_project in modified_projects:
|
for project_to_test in projects_to_test:
|
||||||
if modified_project not in DEPENDENT_RUNTIMES_TO_TEST:
|
if project_to_test in DEPENDENT_RUNTIMES_TO_TEST:
|
||||||
|
runtimes_to_test.update(DEPENDENT_RUNTIMES_TO_TEST[project_to_test])
|
||||||
|
if project_to_test in DEPENDENT_RUNTIMES_TO_BUILD:
|
||||||
|
runtimes_to_test.update(DEPENDENT_RUNTIMES_TO_BUILD[project_to_test])
|
||||||
|
return runtimes_to_test
|
||||||
|
|
||||||
|
|
||||||
|
def _compute_runtime_check_targets(projects_to_test: Set[str]) -> Set[str]:
|
||||||
|
check_targets = set()
|
||||||
|
for project_to_test in projects_to_test:
|
||||||
|
if project_to_test not in DEPENDENT_RUNTIMES_TO_TEST:
|
||||||
continue
|
continue
|
||||||
runtimes_to_test.update(DEPENDENT_RUNTIMES_TO_TEST[modified_project])
|
for runtime_to_test in DEPENDENT_RUNTIMES_TO_TEST[project_to_test]:
|
||||||
return _exclude_projects(runtimes_to_test, platform)
|
check_targets.add(PROJECT_CHECK_TARGETS[runtime_to_test])
|
||||||
|
return check_targets
|
||||||
|
|
||||||
def _compute_runtimes_to_test_needs_reconfig(
|
|
||||||
modified_projects: Set[str], platform: str
|
|
||||||
) -> Set[str]:
|
|
||||||
runtimes_to_test = set()
|
|
||||||
for modified_project in modified_projects:
|
|
||||||
if modified_project not in DEPENDENT_RUNTIMES_TO_TEST_NEEDS_RECONFIG:
|
|
||||||
continue
|
|
||||||
runtimes_to_test.update(
|
|
||||||
DEPENDENT_RUNTIMES_TO_TEST_NEEDS_RECONFIG[modified_project]
|
|
||||||
)
|
|
||||||
return _exclude_projects(runtimes_to_test, platform)
|
|
||||||
|
|
||||||
|
|
||||||
def _compute_runtimes_to_build(
|
|
||||||
runtimes_to_test: Set[str], modified_projects: Set[str], platform: str
|
|
||||||
) -> Set[str]:
|
|
||||||
runtimes_to_build = set(runtimes_to_test)
|
|
||||||
for modified_project in modified_projects:
|
|
||||||
if modified_project in DEPENDENT_RUNTIMES_TO_BUILD:
|
|
||||||
runtimes_to_build.update(DEPENDENT_RUNTIMES_TO_BUILD[modified_project])
|
|
||||||
return _exclude_projects(runtimes_to_build, platform)
|
|
||||||
|
|
||||||
|
|
||||||
def _get_modified_projects(modified_files: list[str]) -> Set[str]:
|
def _get_modified_projects(modified_files: list[str]) -> Set[str]:
|
||||||
@ -246,19 +225,10 @@ def _get_modified_projects(modified_files: list[str]) -> Set[str]:
|
|||||||
def get_env_variables(modified_files: list[str], platform: str) -> Set[str]:
|
def get_env_variables(modified_files: list[str], platform: str) -> Set[str]:
|
||||||
modified_projects = _get_modified_projects(modified_files)
|
modified_projects = _get_modified_projects(modified_files)
|
||||||
projects_to_test = _compute_projects_to_test(modified_projects, platform)
|
projects_to_test = _compute_projects_to_test(modified_projects, platform)
|
||||||
runtimes_to_test = _compute_runtimes_to_test(modified_projects, platform)
|
projects_to_build = _compute_projects_to_build(projects_to_test)
|
||||||
runtimes_to_test_needs_reconfig = _compute_runtimes_to_test_needs_reconfig(
|
|
||||||
modified_projects, platform
|
|
||||||
)
|
|
||||||
runtimes_to_build = _compute_runtimes_to_build(
|
|
||||||
runtimes_to_test | runtimes_to_test_needs_reconfig, modified_projects, platform
|
|
||||||
)
|
|
||||||
projects_to_build = _compute_projects_to_build(projects_to_test, runtimes_to_build)
|
|
||||||
projects_check_targets = _compute_project_check_targets(projects_to_test)
|
projects_check_targets = _compute_project_check_targets(projects_to_test)
|
||||||
runtimes_check_targets = _compute_project_check_targets(runtimes_to_test)
|
runtimes_to_build = _compute_runtimes_to_test(projects_to_test)
|
||||||
runtimes_check_targets_needs_reconfig = _compute_project_check_targets(
|
runtimes_check_targets = _compute_runtime_check_targets(projects_to_test)
|
||||||
runtimes_to_test_needs_reconfig
|
|
||||||
)
|
|
||||||
# We use a semicolon to separate the projects/runtimes as they get passed
|
# We use a semicolon to separate the projects/runtimes as they get passed
|
||||||
# to the CMake invocation and thus we need to use the CMake list separator
|
# to the CMake invocation and thus we need to use the CMake list separator
|
||||||
# (;). We use spaces to separate the check targets as they end up getting
|
# (;). We use spaces to separate the check targets as they end up getting
|
||||||
@ -268,9 +238,6 @@ def get_env_variables(modified_files: list[str], platform: str) -> Set[str]:
|
|||||||
"project_check_targets": " ".join(sorted(projects_check_targets)),
|
"project_check_targets": " ".join(sorted(projects_check_targets)),
|
||||||
"runtimes_to_build": ";".join(sorted(runtimes_to_build)),
|
"runtimes_to_build": ";".join(sorted(runtimes_to_build)),
|
||||||
"runtimes_check_targets": " ".join(sorted(runtimes_check_targets)),
|
"runtimes_check_targets": " ".join(sorted(runtimes_check_targets)),
|
||||||
"runtimes_check_targets_needs_reconfig": " ".join(
|
|
||||||
sorted(runtimes_check_targets_needs_reconfig)
|
|
||||||
),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -26,10 +26,6 @@ class TestComputeProjects(unittest.TestCase):
|
|||||||
)
|
)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
env_variables["runtimes_check_targets"],
|
env_variables["runtimes_check_targets"],
|
||||||
"",
|
|
||||||
)
|
|
||||||
self.assertEqual(
|
|
||||||
env_variables["runtimes_check_targets_needs_reconfig"],
|
|
||||||
"check-cxx check-cxxabi check-unwind",
|
"check-cxx check-cxxabi check-unwind",
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -50,10 +46,6 @@ class TestComputeProjects(unittest.TestCase):
|
|||||||
)
|
)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
env_variables["runtimes_check_targets"],
|
env_variables["runtimes_check_targets"],
|
||||||
"",
|
|
||||||
)
|
|
||||||
self.assertEqual(
|
|
||||||
env_variables["runtimes_check_targets_needs_reconfig"],
|
|
||||||
"check-cxx check-cxxabi check-unwind",
|
"check-cxx check-cxxabi check-unwind",
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -74,10 +66,6 @@ class TestComputeProjects(unittest.TestCase):
|
|||||||
)
|
)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
env_variables["runtimes_check_targets"],
|
env_variables["runtimes_check_targets"],
|
||||||
"",
|
|
||||||
)
|
|
||||||
self.assertEqual(
|
|
||||||
env_variables["runtimes_check_targets_needs_reconfig"],
|
|
||||||
"check-cxx check-cxxabi check-unwind",
|
"check-cxx check-cxxabi check-unwind",
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -87,21 +75,17 @@ class TestComputeProjects(unittest.TestCase):
|
|||||||
)
|
)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
env_variables["projects_to_build"],
|
env_variables["projects_to_build"],
|
||||||
"clang;clang-tools-extra;lld;llvm",
|
"clang;clang-tools-extra;compiler-rt;lld;llvm",
|
||||||
)
|
)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
env_variables["project_check_targets"],
|
env_variables["project_check_targets"],
|
||||||
"check-clang check-clang-tools",
|
"check-clang check-clang-tools check-compiler-rt",
|
||||||
)
|
)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
env_variables["runtimes_to_build"], "compiler-rt;libcxx;libcxxabi;libunwind"
|
env_variables["runtimes_to_build"], "libcxx;libcxxabi;libunwind"
|
||||||
)
|
)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
env_variables["runtimes_check_targets"],
|
env_variables["runtimes_check_targets"],
|
||||||
"check-compiler-rt",
|
|
||||||
)
|
|
||||||
self.assertEqual(
|
|
||||||
env_variables["runtimes_check_targets_needs_reconfig"],
|
|
||||||
"check-cxx check-cxxabi check-unwind",
|
"check-cxx check-cxxabi check-unwind",
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -120,10 +104,6 @@ class TestComputeProjects(unittest.TestCase):
|
|||||||
)
|
)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
env_variables["runtimes_check_targets"],
|
env_variables["runtimes_check_targets"],
|
||||||
"",
|
|
||||||
)
|
|
||||||
self.assertEqual(
|
|
||||||
env_variables["runtimes_check_targets_needs_reconfig"],
|
|
||||||
"check-cxx check-cxxabi check-unwind",
|
"check-cxx check-cxxabi check-unwind",
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -135,7 +115,6 @@ class TestComputeProjects(unittest.TestCase):
|
|||||||
self.assertEqual(env_variables["project_check_targets"], "check-bolt")
|
self.assertEqual(env_variables["project_check_targets"], "check-bolt")
|
||||||
self.assertEqual(env_variables["runtimes_to_build"], "")
|
self.assertEqual(env_variables["runtimes_to_build"], "")
|
||||||
self.assertEqual(env_variables["runtimes_check_targets"], "")
|
self.assertEqual(env_variables["runtimes_check_targets"], "")
|
||||||
self.assertEqual(env_variables["runtimes_check_targets_needs_reconfig"], "")
|
|
||||||
|
|
||||||
def test_lldb(self):
|
def test_lldb(self):
|
||||||
env_variables = compute_projects.get_env_variables(
|
env_variables = compute_projects.get_env_variables(
|
||||||
@ -145,7 +124,6 @@ class TestComputeProjects(unittest.TestCase):
|
|||||||
self.assertEqual(env_variables["project_check_targets"], "check-lldb")
|
self.assertEqual(env_variables["project_check_targets"], "check-lldb")
|
||||||
self.assertEqual(env_variables["runtimes_to_build"], "")
|
self.assertEqual(env_variables["runtimes_to_build"], "")
|
||||||
self.assertEqual(env_variables["runtimes_check_targets"], "")
|
self.assertEqual(env_variables["runtimes_check_targets"], "")
|
||||||
self.assertEqual(env_variables["runtimes_check_targets_needs_reconfig"], "")
|
|
||||||
|
|
||||||
def test_mlir(self):
|
def test_mlir(self):
|
||||||
env_variables = compute_projects.get_env_variables(
|
env_variables = compute_projects.get_env_variables(
|
||||||
@ -157,7 +135,6 @@ class TestComputeProjects(unittest.TestCase):
|
|||||||
)
|
)
|
||||||
self.assertEqual(env_variables["runtimes_to_build"], "")
|
self.assertEqual(env_variables["runtimes_to_build"], "")
|
||||||
self.assertEqual(env_variables["runtimes_check_targets"], "")
|
self.assertEqual(env_variables["runtimes_check_targets"], "")
|
||||||
self.assertEqual(env_variables["runtimes_check_targets_needs_reconfig"], "")
|
|
||||||
|
|
||||||
def test_flang(self):
|
def test_flang(self):
|
||||||
env_variables = compute_projects.get_env_variables(
|
env_variables = compute_projects.get_env_variables(
|
||||||
@ -167,7 +144,6 @@ class TestComputeProjects(unittest.TestCase):
|
|||||||
self.assertEqual(env_variables["project_check_targets"], "check-flang")
|
self.assertEqual(env_variables["project_check_targets"], "check-flang")
|
||||||
self.assertEqual(env_variables["runtimes_to_build"], "")
|
self.assertEqual(env_variables["runtimes_to_build"], "")
|
||||||
self.assertEqual(env_variables["runtimes_check_targets"], "")
|
self.assertEqual(env_variables["runtimes_check_targets"], "")
|
||||||
self.assertEqual(env_variables["runtimes_check_targets_needs_reconfig"], "")
|
|
||||||
|
|
||||||
def test_invalid_subproject(self):
|
def test_invalid_subproject(self):
|
||||||
env_variables = compute_projects.get_env_variables(
|
env_variables = compute_projects.get_env_variables(
|
||||||
@ -177,7 +153,6 @@ class TestComputeProjects(unittest.TestCase):
|
|||||||
self.assertEqual(env_variables["project_check_targets"], "")
|
self.assertEqual(env_variables["project_check_targets"], "")
|
||||||
self.assertEqual(env_variables["runtimes_to_build"], "")
|
self.assertEqual(env_variables["runtimes_to_build"], "")
|
||||||
self.assertEqual(env_variables["runtimes_check_targets"], "")
|
self.assertEqual(env_variables["runtimes_check_targets"], "")
|
||||||
self.assertEqual(env_variables["runtimes_check_targets_needs_reconfig"], "")
|
|
||||||
|
|
||||||
def test_top_level_file(self):
|
def test_top_level_file(self):
|
||||||
env_variables = compute_projects.get_env_variables(["README.md"], "Linux")
|
env_variables = compute_projects.get_env_variables(["README.md"], "Linux")
|
||||||
@ -185,7 +160,6 @@ class TestComputeProjects(unittest.TestCase):
|
|||||||
self.assertEqual(env_variables["project_check_targets"], "")
|
self.assertEqual(env_variables["project_check_targets"], "")
|
||||||
self.assertEqual(env_variables["runtimes_to_build"], "")
|
self.assertEqual(env_variables["runtimes_to_build"], "")
|
||||||
self.assertEqual(env_variables["runtimes_check_targets"], "")
|
self.assertEqual(env_variables["runtimes_check_targets"], "")
|
||||||
self.assertEqual(env_variables["runtimes_check_targets_needs_reconfig"], "")
|
|
||||||
|
|
||||||
def test_exclude_runtiems_in_projects(self):
|
def test_exclude_runtiems_in_projects(self):
|
||||||
env_variables = compute_projects.get_env_variables(
|
env_variables = compute_projects.get_env_variables(
|
||||||
@ -195,7 +169,6 @@ class TestComputeProjects(unittest.TestCase):
|
|||||||
self.assertEqual(env_variables["project_check_targets"], "")
|
self.assertEqual(env_variables["project_check_targets"], "")
|
||||||
self.assertEqual(env_variables["runtimes_to_build"], "")
|
self.assertEqual(env_variables["runtimes_to_build"], "")
|
||||||
self.assertEqual(env_variables["runtimes_check_targets"], "")
|
self.assertEqual(env_variables["runtimes_check_targets"], "")
|
||||||
self.assertEqual(env_variables["runtimes_check_targets_needs_reconfig"], "")
|
|
||||||
|
|
||||||
def test_exclude_docs(self):
|
def test_exclude_docs(self):
|
||||||
env_variables = compute_projects.get_env_variables(
|
env_variables = compute_projects.get_env_variables(
|
||||||
@ -205,7 +178,6 @@ class TestComputeProjects(unittest.TestCase):
|
|||||||
self.assertEqual(env_variables["project_check_targets"], "")
|
self.assertEqual(env_variables["project_check_targets"], "")
|
||||||
self.assertEqual(env_variables["runtimes_to_build"], "")
|
self.assertEqual(env_variables["runtimes_to_build"], "")
|
||||||
self.assertEqual(env_variables["runtimes_check_targets"], "")
|
self.assertEqual(env_variables["runtimes_check_targets"], "")
|
||||||
self.assertEqual(env_variables["runtimes_check_targets_needs_reconfig"], "")
|
|
||||||
|
|
||||||
def test_exclude_gn(self):
|
def test_exclude_gn(self):
|
||||||
env_variables = compute_projects.get_env_variables(
|
env_variables = compute_projects.get_env_variables(
|
||||||
@ -215,7 +187,6 @@ class TestComputeProjects(unittest.TestCase):
|
|||||||
self.assertEqual(env_variables["project_check_targets"], "")
|
self.assertEqual(env_variables["project_check_targets"], "")
|
||||||
self.assertEqual(env_variables["runtimes_to_build"], "")
|
self.assertEqual(env_variables["runtimes_to_build"], "")
|
||||||
self.assertEqual(env_variables["runtimes_check_targets"], "")
|
self.assertEqual(env_variables["runtimes_check_targets"], "")
|
||||||
self.assertEqual(env_variables["runtimes_check_targets_needs_reconfig"], "")
|
|
||||||
|
|
||||||
def test_ci(self):
|
def test_ci(self):
|
||||||
env_variables = compute_projects.get_env_variables(
|
env_variables = compute_projects.get_env_variables(
|
||||||
@ -227,15 +198,10 @@ class TestComputeProjects(unittest.TestCase):
|
|||||||
"check-clang check-lld check-lldb check-llvm",
|
"check-clang check-lld check-lldb check-llvm",
|
||||||
)
|
)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
env_variables["runtimes_to_build"],
|
env_variables["runtimes_to_build"], "libcxx;libcxxabi;libunwind"
|
||||||
"libcxx;libcxxabi;libunwind",
|
|
||||||
)
|
)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
env_variables["runtimes_check_targets"],
|
env_variables["runtimes_check_targets"],
|
||||||
"",
|
|
||||||
)
|
|
||||||
self.assertEqual(
|
|
||||||
env_variables["runtimes_check_targets_needs_reconfig"],
|
|
||||||
"check-cxx check-cxxabi check-unwind",
|
"check-cxx check-cxxabi check-unwind",
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -249,19 +215,6 @@ class TestComputeProjects(unittest.TestCase):
|
|||||||
env_variables["runtimes_to_build"], "libcxx;libcxxabi;libunwind"
|
env_variables["runtimes_to_build"], "libcxx;libcxxabi;libunwind"
|
||||||
)
|
)
|
||||||
self.assertEqual(env_variables["runtimes_check_targets"], "")
|
self.assertEqual(env_variables["runtimes_check_targets"], "")
|
||||||
self.assertEqual(env_variables["runtimes_check_targets_needs_reconfig"], "")
|
|
||||||
|
|
||||||
def test_clang_tools_extra(self):
|
|
||||||
env_variables = compute_projects.get_env_variables(
|
|
||||||
["clang-tools-extra/CMakeLists.txt"], "Linux"
|
|
||||||
)
|
|
||||||
self.assertEqual(
|
|
||||||
env_variables["projects_to_build"], "clang;clang-tools-extra;lld;llvm"
|
|
||||||
)
|
|
||||||
self.assertEqual(env_variables["project_check_targets"], "check-clang-tools")
|
|
||||||
self.assertEqual(env_variables["runtimes_to_build"], "libc")
|
|
||||||
self.assertEqual(env_variables["runtimes_check_targets"], "check-libc")
|
|
||||||
self.assertEqual(env_variables["runtimes_check_targets_needs_reconfig"], "")
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
@ -57,7 +57,6 @@ projects="${1}"
|
|||||||
targets="${2}"
|
targets="${2}"
|
||||||
runtimes="${3}"
|
runtimes="${3}"
|
||||||
runtime_targets="${4}"
|
runtime_targets="${4}"
|
||||||
runtime_targets_needs_reconfig="${5}"
|
|
||||||
|
|
||||||
lit_args="-v --xunit-xml-output ${BUILD_DIR}/test-results.xml --use-unique-output-file-name --timeout=1200 --time-tests"
|
lit_args="-v --xunit-xml-output ${BUILD_DIR}/test-results.xml --use-unique-output-file-name --timeout=1200 --time-tests"
|
||||||
|
|
||||||
@ -94,15 +93,9 @@ echo "--- ninja"
|
|||||||
# Targets are not escaped as they are passed as separate arguments.
|
# Targets are not escaped as they are passed as separate arguments.
|
||||||
ninja -C "${BUILD_DIR}" -k 0 ${targets}
|
ninja -C "${BUILD_DIR}" -k 0 ${targets}
|
||||||
|
|
||||||
if [[ "${runtime_targets}" != "" ]]; then
|
|
||||||
echo "--- ninja runtimes"
|
|
||||||
|
|
||||||
ninja -C "${BUILD_DIR}" ${runtime_targets}
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Compiling runtimes with just-built Clang and running their tests
|
# Compiling runtimes with just-built Clang and running their tests
|
||||||
# as an additional testing for Clang.
|
# as an additional testing for Clang.
|
||||||
if [[ "${runtime_targets_needs_reconfig}" != "" ]]; then
|
if [[ "${runtimes_targets}" != "" ]]; then
|
||||||
echo "--- cmake runtimes C++26"
|
echo "--- cmake runtimes C++26"
|
||||||
|
|
||||||
cmake \
|
cmake \
|
||||||
@ -112,7 +105,7 @@ if [[ "${runtime_targets_needs_reconfig}" != "" ]]; then
|
|||||||
|
|
||||||
echo "--- ninja runtimes C++26"
|
echo "--- ninja runtimes C++26"
|
||||||
|
|
||||||
ninja -C "${BUILD_DIR}" ${runtime_targets_needs_reconfig}
|
ninja -C "${BUILD_DIR}" ${runtime_targets}
|
||||||
|
|
||||||
echo "--- cmake runtimes clang modules"
|
echo "--- cmake runtimes clang modules"
|
||||||
|
|
||||||
@ -123,5 +116,5 @@ if [[ "${runtime_targets_needs_reconfig}" != "" ]]; then
|
|||||||
|
|
||||||
echo "--- ninja runtimes clang modules"
|
echo "--- ninja runtimes clang modules"
|
||||||
|
|
||||||
ninja -C "${BUILD_DIR}" ${runtime_targets_needs_reconfig}
|
ninja -C "${BUILD_DIR}" ${runtime_targets}
|
||||||
fi
|
fi
|
||||||
|
3
.github/workflows/premerge.yaml
vendored
3
.github/workflows/premerge.yaml
vendored
@ -56,12 +56,11 @@ jobs:
|
|||||||
echo "Running project checks targets: ${project_check_targets}"
|
echo "Running project checks targets: ${project_check_targets}"
|
||||||
echo "Building runtimes: ${runtimes_to_build}"
|
echo "Building runtimes: ${runtimes_to_build}"
|
||||||
echo "Running runtimes checks targets: ${runtimes_check_targets}"
|
echo "Running runtimes checks targets: ${runtimes_check_targets}"
|
||||||
echo "Running runtimes checks requiring reconfiguring targets: ${runtimes_check_targets_needs_reconfig}"
|
|
||||||
|
|
||||||
export CC=/opt/llvm/bin/clang
|
export CC=/opt/llvm/bin/clang
|
||||||
export CXX=/opt/llvm/bin/clang++
|
export CXX=/opt/llvm/bin/clang++
|
||||||
|
|
||||||
./.ci/monolithic-linux.sh "${projects_to_build}" "${project_check_targets}" "${runtimes_to_build}" "${runtimes_check_targets}" "${runtimes_check_targets_needs_reconfig}"
|
./.ci/monolithic-linux.sh "${projects_to_build}" "${project_check_targets}" "${runtimes_to_build}" "${runtimes_check_targets}"
|
||||||
- name: Upload Artifacts
|
- name: Upload Artifacts
|
||||||
uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0
|
uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0
|
||||||
with:
|
with:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user