name: Windows

on:
    push:
        paths-ignore:
            - 'doc/**'
    pull_request:
        paths-ignore:
            - 'doc/**'


concurrency:
  group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
  cancel-in-progress: true


jobs:
  build:
    name: MSVC

    runs-on: 'windows-latest'
    if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')"

    strategy:
      fail-fast: true
      matrix:
        type: ['current','fixed']
    defaults:
      run:
        shell: bash -l {0}
    env:
      BUILD_TYPE: ${{ matrix.type }}

    steps:
    - uses: actions/checkout@v4
    - uses: ilammy/msvc-dev-cmd@v1
    - uses: mamba-org/setup-micromamba@v2
      with:
        init-shell: bash
        environment-file: "scripts/ci/${{ matrix.type }}-environment.yml"
        environment-name: "pdal-build"
        cache-environment: true
        cache-downloads: true


    - name: Setup
      run: |
          source ./scripts/ci/win/setup.sh

    - name: CMake
      working-directory: ./build
      run: |
          source ../scripts/ci/win/cmake.sh

    - name: Compile
      working-directory: ./build
      run: |
          source ../scripts/ci/win/compile.sh

    - name: Test
      working-directory: ./build
      run: |
          source ../scripts/ci/win/test.sh

    - name: Examples
      run: |
          source ./scripts/ci/win/examples.sh


