name: nbstripout

on: [push, pull_request, workflow_dispatch]

jobs:
  test:
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [ubuntu-latest, macos-latest, windows-latest]
        python-version: ['3.8', '3.9', '3.10', '3.11', '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: Install dependencies
      run: |
        python -m pip install wheel
        python -m pip install -r tests/requirements.txt
        python -m pip install .
    - name: Configure Git
      run: git config --global init.defaultBranch main
    - name: Run tests (Linux)
      if: matrix.os == 'ubuntu-latest'
      shell: bash
      run: |
        pytest
    - name: Run tests (MacOS)
      if: matrix.os == 'macos-latest'
      shell: bash
      run: |
        pytest
    - name: Run tests (Windows)
      if: matrix.os == 'windows-latest'
      shell: bash
      env:
        NBSTRIPOUT_EXE: ${{ env.pythonLocation }}\Scripts\nbstripout.exe
      run: |
        git config --global core.autocrlf true
        pytest
