name: Build and test

on:
- workflow_dispatch
# - push
# - pull_request

env:
  BUILD_TYPE: RelWithDebInfo

jobs:
  Ubuntu:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v6

    - name: Add OpenMW PPA Dependencies
      run: sudo add-apt-repository ppa:openmw/openmw; sudo apt-get update

    - name: Install Building Dependencies
      run: sudo CI/install_debian_deps.sh gcc openmw-deps openmw-deps-dynamic

    - name: Prime ccache
      uses: hendrikmuhs/ccache-action@v1
      with:
        key: ${{ matrix.os }}-${{ env.BUILD_TYPE }}
        max-size: 1000M

    - name: Configure
      run: >
        cmake .
        -D CMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
        -D OPENMW_USE_SYSTEM_RECASTNAVIGATION=ON
        -D USE_SYSTEM_TINYXML=ON
        -D BUILD_COMPONENTS_TESTS=ON
        -D BUILD_OPENMW_TESTS=ON
        -D BUILD_OPENCS_TESTS=ON
        -D CMAKE_INSTALL_PREFIX=install

    - name: Build
      run: cmake --build . -- -j$(nproc)

    - name: Run components tests
      run: ./components-tests

    - name: Run OpenMW tests
      run: ./openmw-tests

    - name: Run OpenMW-CS tests
      run: ./openmw-cs-tests

    # - name: Install
    #   shell: bash
    #   run: cmake --install .

    # - name: Create Artifact
    #   shell: bash
    #   working-directory: install
    #   run: |
    #     ls -laR
    #     7z a ../build_artifact.7z .

    # - name: Upload Artifact
    #   uses: actions/upload-artifact@v1
    #   with:
    #     path: ./build_artifact.7z
    #     name: build_artifact.7z

  MacOS:
    strategy:
      fail-fast: true
      matrix:
        args:
          - image: macos-15
          - image: macos-15-intel
    uses: ./.github/workflows/macos.yml
    with:
      image: ${{ matrix.args.image }}

  Windows:
    strategy:
      fail-fast: true
      matrix:
        image:
        - "2022"

    uses: ./.github/workflows/windows.yml
    with:
      image: ${{ matrix.image }}
