name: Build and test
on:
  pull_request:
  push:
    paths-ignore:
      - '**.md'
      - 'LICENSE'

jobs:
  build:
    name: Build
    strategy:
      fail-fast: false
      matrix:
        os: [windows-latest, ubuntu-latest]
        type: [debug, release]
    runs-on: ${{ matrix.os }}
    steps:

    - name: checkout code
      uses: actions/checkout@v4
      with:
        submodules: recursive
        fetch-depth: 0

    - name: Check Format
      run: |
        pip install black
        python3 scripts/format.py --path src --check

    - name: install xmake
      uses: xmake-io/github-action-setup-xmake@v1
      with:
        xmake-version: latest

    - name: Build & Install
      run: python scripts/install.py --omp=y -y

    - name: install python packages
      run: |
        pip install numpy
        pip install torch

    - name: Python Test
      run: python scripts/python_test.py --cpu

    - name: run infinirt-test --cpu on Linux
      if: matrix.os == 'ubuntu-latest'
      run: |
        ./build/linux/x86_64/release/infinirt-test --cpu

    - name: run infinirt-test --cpu on Windows
      if: matrix.os == 'windows-latest'
      run: |
        .\build\windows\x64\release\infinirt-test.exe --cpu
