[llvm] [GitHub] Add basic CI for libclang Python binding unit tests (PR #76784)

via llvm-commits llvm-commits at lists.llvm.org
Tue Jan 2 22:56:08 PST 2024


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-github-workflow

Author: Craig Hesling (linux4life798)

<details>
<summary>Changes</summary>

This is important to aid development on Python Type Annotations - https://github.com/llvm/llvm-project/issues/76664.

* Run on all pull requests and direct pushes.
* This makes use of the existing llvm-project-tests.yml recipe, which will preload ccache from previous runs.
* Building libclang currently takes about 9mins when ccache is warm and about an 1hr 20mins if it is cold using the standard GitHub ubuntu runner.
* In the future, this could be broken into the following
   discrete steps for clarity:
   1. Build libclang dependency.
       ninja -C build libclang
   2. Run Python unit tests.
       ninja -C build check-clang-python
* Additional changes will bring testing on older python versions and static type checkers.

Issue https://github.com/llvm/llvm-project/issues/76601.

---
Full diff: https://github.com/llvm/llvm-project/pull/76784.diff


1 Files Affected:

- (added) .github/workflows/libclang-python-tests.yml (+41) 


``````````diff
diff --git a/.github/workflows/libclang-python-tests.yml b/.github/workflows/libclang-python-tests.yml
new file mode 100644
index 00000000000000..da5bd696063c24
--- /dev/null
+++ b/.github/workflows/libclang-python-tests.yml
@@ -0,0 +1,41 @@
+name: Libclang Python Binding Tests
+
+permissions:
+  contents: read
+
+on:
+  workflow_dispatch:
+  push:
+    paths:
+      - 'clang/bindings/python/**'
+      - 'clang/tools/libclang/**'
+      - 'clang/CMakeList.txt'
+      - 'cmake/**'
+      - '.github/workflows/libclang-python-tests.yml'
+      - '.github/workflows/llvm-project-tests.yml'
+  pull_request:
+    paths:
+      - 'clang/bindings/python/**'
+      - 'clang/tools/libclang/**'
+      - 'clang/CMakeList.txt'
+      - 'cmake/**'
+      - '.github/workflows/libclang-python-tests.yml'
+      - '.github/workflows/llvm-project-tests.yml'
+
+concurrency:
+  # Skip intermediate builds: always.
+  # Cancel intermediate builds: only if it is a pull request build.
+  group: ${{ github.workflow }}-${{ github.ref }}
+  cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}
+
+jobs:
+  check-clang-python:
+    # Build libclang and then run the libclang Python binding's unit tests.
+    name: Build and run Python unit tests
+    uses: ./.github/workflows/llvm-project-tests.yml
+    with:
+      build_target: check-clang-python
+      projects: clang
+      # There is an issue running on "windows-2019".
+      # See https://github.com/llvm/llvm-project/issues/76601#issuecomment-1873049082.
+      os_list: '["ubuntu-latest", "macOS-11"]'

``````````

</details>


https://github.com/llvm/llvm-project/pull/76784


More information about the llvm-commits mailing list