name: Build for Windows
on: [pull_request, push]

jobs:
  build:
    runs-on: windows-latest
    steps:
      - uses: msys2/setup-msys2@v2
        with:
          msystem: MINGW64
          update: true
          install: git
      - run: git config --global core.autocrlf input
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
      - name: Install build-dependencies
        run: |
          msys2 -c './build-win64.sh --prepare'
      - name: Build Dino+ (Meson, without saving)
        run: |
          msys2 -c './build-win64.sh -s meson -c -b -t -w'
      - name: Build Dino+ (CMake)
        run: |
          msys2 -c './build-win64.sh -s cmake -c -b -t -i'
      - name: Build Dino+ installer
        run: |
          msys2 -c './build-win64.sh --build-installer'
      - name: Upload Dino+ installer
        uses: actions/upload-artifact@v4
        with:
          name: dino-plus-installer
          path: windows-installer/dino-installer.exe
      - name: Release Dino+ installer
        if: ${{ github.ref_type == 'tag' }}
        uses: svenstaro/upload-release-action@2.9.0
        with:
          repo_token: ${{ secrets.GITHUB_TOKEN }}
          file: windows-installer/dino-installer.exe
          asset_name: dino-plus-installer.exe
          tag: ${{ github.ref }}
          release_name: Dino+ ${{ github.ref_name }}