name: Build

on:
 push:
  branches:
  - 'master'
  - 'develop'
  - 'github-action'

jobs:
 Build:
  runs-on: windows-2019
  steps:

#  - name: Install Windows XP Support for Visual Studio 2022 # windows-2022 # v141_xp # Installation takes more than 5 minutes
#    run: |
#         Set-Location "C:\Program Files (x86)\Microsoft Visual Studio\Installer\"
#         $InstallPath = "C:\Program Files\Microsoft Visual Studio\2022\Enterprise"
#         $componentsToAdd = @(
#           "Microsoft.VisualStudio.Component.WinXP"
#         )
#         [string]$workloadArgs = $componentsToAdd | ForEach-Object {" --add " +  $_}
#         $Arguments = ('/c', "vs_installer.exe", 'modify', '--installPath', "`"$InstallPath`"",$workloadArgs, '--quiet', '--norestart', '--nocache')
#         $process = Start-Process -FilePath cmd.exe -ArgumentList $Arguments -Wait -PassThru -WindowStyle Hidden
#         if ($process.ExitCode -eq 0)
#         {
#           Write-Host "components have been successfully added"
#           Get-ChildItem C:\ProgramData\Microsoft\VisualStudio\Packages\Microsoft.Windows.XPSupport.*
#         }
#         else
#         {
#           Write-Host "components were not installed"
#           exit 1
#         }

  - name: Clone cnc-ddraw
    uses: actions/checkout@v4

  - name: Release build
    id: build-release
    uses: ./
    with:
     release: true

  - name: ReleaseXP build
    id: build-releasexp
    uses: ./
    with:
     releasexp: true

  - name: Debug build
    id: build-debug
    uses: ./
    with:
     debug: true

  - name: DebugLogXP build
    id: build-debuglogxp
    uses: ./
    with:
     debuglogxp: true

  - name: DebugLogMiniXP build
    id: build-debuglogminixp
    uses: ./
    with:
     debuglogminixp: true

  - name:  Prepare artifact
    run:   |
           :

           mkdir -p cnc-ddraw-release
           mkdir -p cnc-ddraw-releasexp
           mkdir -p cnc-ddraw-debug
           mkdir -p cnc-ddraw-debuglogxp
           mkdir -p cnc-ddraw-debuglogminixp

           cp "${{ steps.build-release.outputs.release }}" cnc-ddraw-release

           cp "${{ steps.build-releasexp.outputs.releasexp }}" cnc-ddraw-releasexp

           cp "${{ steps.build-debug.outputs.debug }}" cnc-ddraw-debug
           cp "${{ steps.build-debug.outputs.debug-pdb }}" cnc-ddraw-debug

           cp "${{ steps.build-debuglogxp.outputs.debuglogxp }}" cnc-ddraw-debuglogxp
           cp "${{ steps.build-debuglogxp.outputs.debuglogxp-pdb }}" cnc-ddraw-debuglogxp

           cp "${{ steps.build-debuglogminixp.outputs.debuglogminixp }}" cnc-ddraw-debuglogminixp
           cp "${{ steps.build-debuglogminixp.outputs.debuglogminixp-pdb }}" cnc-ddraw-debuglogminixp
           
    shell: bash

  - name: Upload artifacts cnc-ddraw-release
    uses: actions/upload-artifact@v4
    with:
     name: cnc-ddraw-release
     path: cnc-ddraw-release
     retention-days: 14

  - name: Upload artifacts cnc-ddraw-releasexp
    uses: actions/upload-artifact@v4
    with:
     name: cnc-ddraw-releasexp
     path: cnc-ddraw-releasexp
     retention-days: 14

  - name: Upload artifacts cnc-ddraw-debug
    uses: actions/upload-artifact@v4
    with:
     name: cnc-ddraw-debug
     path: cnc-ddraw-debug
     retention-days: 14

  - name: Upload artifacts cnc-ddraw-debuglogxp
    uses: actions/upload-artifact@v4
    with:
     name: cnc-ddraw-debuglogxp
     path: cnc-ddraw-debuglogxp
     retention-days: 14

  - name: Upload artifacts cnc-ddraw-debuglogminixp
    uses: actions/upload-artifact@v4
    with:
     name: cnc-ddraw-debuglogminixp
     path: cnc-ddraw-debuglogminixp
     retention-days: 14