name: Test Windows

on:  [push, pull_request]

jobs:
  build:
    runs-on: windows-latest
    strategy:
      fail-fast: false
      matrix:
        python-version: [3.7]

    steps:
    - uses: actions/checkout@v5
    - uses: actions/setup-python@v6
      with:
        python-version: ${{ matrix.python-version }}
    - uses: microsoft/setup-msbuild@v2
    - name: setup boost prerequisites
      uses: lukka/run-vcpkg@v6
      with:
        vcpkgGitCommitId: '88b1071e39f13b632644d9d953738d345a4ac055'
        vcpkgDirectory: '${{ runner.workspace }}/vcpkg'
        vcpkgTriplet: x64-windows
        vcpkgArguments: >
          boost-config
          boost-core
          boost-function
          boost-graph
          boost-iterator
          boost-lexical-cast
          boost-mpl
          boost-preprocessor
          boost-smart-ptr
          boost-static-assert
          boost-align
    - name: setup faber
      run: |
        python -m pip install --upgrade pip
        python -m pip install setuptools faber numpy
        faber --info=tools cxx
    - name: build
      shell: cmd
      run: |
        faber --builddir=build cxx.name=msvc --log=commands --log=output --with-boost-include=${{ runner.workspace }}\vcpkg\installed\x64-windows\include -j4
    - name: test
      shell: cmd
      run: |
        faber --builddir=build cxx.name=msvc --with-boost-include=${{ runner.workspace }}\vcpkg\installed\x64-windows\include -j4 test.report
