name: CI
on:
push:
branches: [master]
pull_request:
branches: [master]
jobs:
build-and-test:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: recursive
- name: Set up Rust toolchain
uses: dtolnay/rust-toolchain@stable
- name: Set up GraalVM JDK
uses: graalvm/setup-graalvm@v1
with:
java-version: '25'
distribution: 'graalvm'
native-image-job-reports: 'true'
- name: Set GRAALVM_HOME
run: echo "GRAALVM_HOME=$JAVA_HOME" >> "$GITHUB_ENV"
- name: Install Maven
run: |
sudo apt-get update
sudo apt-get install -y maven
- name: Install LLVM and Clang
run: |
sudo apt-get install -y llvm-dev libclang-dev clang
- name: Set LIBCLANG_PATH
run: |
LLVM_DIR="$(llvm-config --libdir)"
echo "LIBCLANG_PATH=$LLVM_DIR" >> "$GITHUB_ENV"
- name: Set RUST_BACKTRACE
run: echo "RUST_BACKTRACE=1" >> "$GITHUB_ENV"
- name: Build DLL (native shared library)
run: cargo xtask build-dll
- name: Generate Rust bindings
run: cargo xtask generate-bindings
- name: Run all tests
run: cargo xtask test-all