https://github.com/mizvekov updated https://github.com/llvm/llvm-project/pull/201677
>From 2aa5210631cd27e049b205d2303795cd247507b2 Mon Sep 17 00:00:00 2001 From: Matheus Izvekov <[email protected]> Date: Thu, 4 Jun 2026 17:05:18 -0300 Subject: [PATCH] CI: move libclang python byindings tests to main CI This removes the separate python bindings CI, which run on the GitHub free runners and take more than one hour to build libclang. The tests are executed instead in the monolithic pipelines, whenever clang would be tested. This is fine in terms of resources because all the dependencies are built anyway, and the tests themselves take less than one second to run on the free runners. --- .ci/compute_projects.py | 2 +- .ci/compute_projects_test.py | 25 ++++---- .github/workflows/libclang-python-tests.yml | 60 ------------------- .../python/tests/cindex/test_source_range.py | 2 + .../tests/cindex/test_translation_unit.py | 1 + 5 files changed, 17 insertions(+), 73 deletions(-) delete mode 100644 .github/workflows/libclang-python-tests.yml diff --git a/.ci/compute_projects.py b/.ci/compute_projects.py index ff69479fff711..80ab70d7205d8 100644 --- a/.ci/compute_projects.py +++ b/.ci/compute_projects.py @@ -150,7 +150,7 @@ "libunwind": "check-unwind", "lldb": "check-lldb", "llvm": "check-llvm", - "clang": "check-clang", + "clang": "check-clang check-clang-python", "CIR": "check-clang-cir", "bolt": "check-bolt", "lld": "check-lld", diff --git a/.ci/compute_projects_test.py b/.ci/compute_projects_test.py index c00be376ad7d6..4bdfb3210b2ff 100644 --- a/.ci/compute_projects_test.py +++ b/.ci/compute_projects_test.py @@ -19,7 +19,7 @@ def test_llvm(self): ) self.assertEqual( env_variables["project_check_targets"], - "check-bolt check-clang check-clang-tools check-cross-project check-flang check-lld check-lldb check-llvm check-mlir check-polly", + "check-bolt check-clang check-clang-python check-clang-tools check-cross-project check-flang check-lld check-lldb check-llvm check-mlir check-polly", ) self.assertEqual( env_variables["runtimes_to_build"], "libcxx;libcxxabi;libunwind" @@ -43,7 +43,7 @@ def test_llvm_windows(self): ) self.assertEqual( env_variables["project_check_targets"], - "check-clang check-clang-tools check-lld check-llvm check-mlir check-polly", + "check-clang check-clang-python check-clang-tools check-lld check-llvm check-mlir check-polly", ) self.assertEqual(env_variables["runtimes_to_build"], "") self.assertEqual( @@ -65,7 +65,7 @@ def test_llvm_mac(self): ) self.assertEqual( env_variables["project_check_targets"], - "check-clang check-clang-tools check-lld check-llvm check-mlir", + "check-clang check-clang-python check-clang-tools check-lld check-llvm check-mlir", ) self.assertEqual(env_variables["runtimes_to_build"], "") self.assertEqual( @@ -87,7 +87,7 @@ def test_clang(self): ) self.assertEqual( env_variables["project_check_targets"], - "check-clang check-clang-tools check-cross-project check-lldb", + "check-clang check-clang-python check-clang-tools check-cross-project check-lldb", ) self.assertEqual( env_variables["runtimes_to_build"], @@ -116,7 +116,7 @@ def test_clang_windows(self): ) self.assertEqual( env_variables["project_check_targets"], - "check-clang check-clang-tools", + "check-clang check-clang-python check-clang-tools", ) self.assertEqual(env_variables["runtimes_to_build"], "compiler-rt") self.assertEqual( @@ -165,7 +165,7 @@ def test_cir(self): ) self.assertEqual( env_variables["project_check_targets"], - "check-clang check-clang-cir check-clang-tools check-cross-project check-lldb", + "check-clang check-clang-python check-clang-cir check-clang-tools check-cross-project check-lldb", ) self.assertEqual( env_variables["runtimes_to_build"], @@ -306,7 +306,7 @@ def test_ci(self): ) self.assertEqual( env_variables["project_check_targets"], - "check-bolt check-clang check-clang-cir check-clang-tools check-flang check-lld check-lldb check-llvm check-mlir check-polly", + "check-bolt check-clang check-clang-python check-clang-cir check-clang-tools check-flang check-lld check-lldb check-llvm check-mlir check-polly", ) self.assertEqual( env_variables["runtimes_to_build"], @@ -331,7 +331,7 @@ def test_windows_ci(self): ) self.assertEqual( env_variables["project_check_targets"], - "check-clang check-clang-cir check-clang-tools check-lld check-llvm check-mlir check-polly", + "check-clang check-clang-python check-clang-cir check-clang-tools check-lld check-llvm check-mlir check-polly", ) self.assertEqual( env_variables["runtimes_to_build"], @@ -380,7 +380,7 @@ def test_premerge_workflow(self): ) self.assertEqual( env_variables["project_check_targets"], - "check-bolt check-clang check-clang-cir check-clang-tools check-flang check-lld check-lldb check-llvm check-mlir check-polly", + "check-bolt check-clang check-clang-python check-clang-cir check-clang-tools check-flang check-lld check-lldb check-llvm check-mlir check-polly", ) self.assertEqual( env_variables["runtimes_to_build"], @@ -415,7 +415,7 @@ def test_third_party_benchmark(self): ) self.assertEqual( env_variables["project_check_targets"], - "check-bolt check-clang check-clang-cir check-clang-tools check-flang check-lld check-lldb check-llvm check-mlir check-polly", + "check-bolt check-clang check-clang-python check-clang-cir check-clang-tools check-flang check-lld check-lldb check-llvm check-mlir check-polly", ) self.assertEqual( env_variables["runtimes_to_build"], @@ -440,7 +440,7 @@ def test_lit(self): ) self.assertEqual( env_variables["project_check_targets"], - "check-bolt check-clang check-clang-tools check-cross-project check-flang check-lit check-lld check-lldb check-llvm check-mlir check-polly", + "check-bolt check-clang check-clang-python check-clang-tools check-cross-project check-flang check-lit check-lld check-lldb check-llvm check-mlir check-polly", ) self.assertEqual( env_variables["runtimes_to_build"], "libcxx;libcxxabi;libunwind" @@ -483,7 +483,8 @@ def test_libc_shared(self): ) self.assertEqual(env_variables["projects_to_build"], "clang;lld;llvm") self.assertEqual( - env_variables["project_check_targets"], "check-clang check-llvm" + env_variables["project_check_targets"], + "check-clang check-clang-python check-llvm", ) self.assertEqual( env_variables["runtimes_to_build"], "libc;libcxx;libcxxabi;libunwind" diff --git a/.github/workflows/libclang-python-tests.yml b/.github/workflows/libclang-python-tests.yml deleted file mode 100644 index b417cd74c61a9..0000000000000 --- a/.github/workflows/libclang-python-tests.yml +++ /dev/null @@ -1,60 +0,0 @@ -name: Libclang Python Binding Tests - -permissions: - contents: read - -on: - push: - branches: - - 'main' - paths: - - 'clang/bindings/python/**' - - 'clang/tools/libclang/**' - - 'clang/CMakeList.txt' - - '.github/workflows/libclang-python-tests.yml' - pull_request: - paths: - - 'clang/bindings/python/**' - - 'clang/tools/libclang/**' - - 'clang/CMakeList.txt' - - '.github/workflows/libclang-python-tests.yml' - -jobs: - check-clang-python: - # Build libclang and then run the libclang Python binding's unit tests. - # There is an issue running on "windows-2019". - # See https://github.com/llvm/llvm-project/issues/76601#issuecomment-1873049082. - name: Build and run Python unit tests - if: github.repository == 'llvm/llvm-project' - runs-on: ubuntu-24.04 - strategy: - fail-fast: false - matrix: - python-version: ["3.8", "3.13"] - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - with: - persist-credentials: false - - name: Setup Python - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 - with: - persist-credentials: false - python-version: ${{ matrix.python-version }} - - name: Setup ccache - uses: hendrikmuhs/ccache-action@33522472633dbd32578e909b315f5ee43ba878ce # v1.2.22 - with: - max-size: 2G - key: spirv-ubuntu-24.04 - variant: sccache - - name: Build and Test - run: | - mkdir build - cmake -GNinja \ - -S llvm \ - -B build \ - -DCMAKE_BUILD_TYPE=Release \ - -DLLVM_ENABLE_ASSERTIONS=ON \ - -DCMAKE_C_COMPILER_LAUNCHER=sccache \ - -DCMAKE_CXX_COMPILER_LAUNCHER=sccache \ - -DLLVM_ENABLE_PROJECTS=clang - ninja -C build check-clang-python diff --git a/clang/bindings/python/tests/cindex/test_source_range.py b/clang/bindings/python/tests/cindex/test_source_range.py index 23589453d79d0..fbb2dd2d11029 100644 --- a/clang/bindings/python/tests/cindex/test_source_range.py +++ b/clang/bindings/python/tests/cindex/test_source_range.py @@ -1,4 +1,5 @@ from pathlib import Path +import os from clang.cindex import SourceLocation, SourceRange, TranslationUnit @@ -18,6 +19,7 @@ def create_range(tu, line1, column1, line2, column2): class TestSourceRange(unittest.TestCase): + @pytest.mark.xfail(os.name == "nt", reason="bug in the test") def test_contains(self): tu = get_tu( """aaaaa diff --git a/clang/bindings/python/tests/cindex/test_translation_unit.py b/clang/bindings/python/tests/cindex/test_translation_unit.py index d43cebcef3310..1497fef6d0c2e 100644 --- a/clang/bindings/python/tests/cindex/test_translation_unit.py +++ b/clang/bindings/python/tests/cindex/test_translation_unit.py @@ -74,6 +74,7 @@ def test_reparse_arguments(self): self.assertEqual(spellings[-2], "hello") self.assertEqual(spellings[-1], "hi") + @pytest.mark.xfail(os.name == "nt", reason="bug in the test") def test_unsaved_files(self): tu = TranslationUnit.from_source( "fake.c", _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
