name: Python Package CI

on:
  push:
  pull_request:

jobs:
  build:
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu-24.04, windows-2022, macOS-14]
        python-version: ["3.8", "3.12"]

    steps:
    - uses: actions/checkout@v4

    - name: Set up Python ${{ matrix.python-version }}
      uses: actions/setup-python@v5
      with:
        python-version: ${{ matrix.python-version }}

    - name: Setup MSVC
      if: runner.os == 'Windows'
      uses: ilammy/msvc-dev-cmd@v1

    - name: Build and install capstone
      run: pip install ./bindings/python

    - name: Run tests
      run: python ./bindings/python/tests/test_all.py
