choco-solver 0.1.0

Safe interface for the Choco Solver library DLL generated by GraalVM Native Image.
Documentation
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