[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