name: Build

on:
 push:
  branches:
  - 'master'
  - 'develop'
  - 'github-action'
  paths:
  - '.github/workflows/build.yml'
  - 'action.yml'

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: ReleaseWin2000 build
    id: build-releasewin2000
    uses: ./
    with:
     releasewin2000: true

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

  - name: DebugLog build
    id: build-debuglog
    uses: ./
    with:
     debuglog: true

  - name: DebugLogMini build
    id: build-debuglogmini
    uses: ./
    with:
     debuglogmini: true

  - name:  Prepare artifact
    run:   |
           :

           mkdir -p cnc-ddraw-release
           mkdir -p cnc-ddraw-releasewin2000
           mkdir -p cnc-ddraw-debug
           mkdir -p cnc-ddraw-debuglog
           mkdir -p cnc-ddraw-debuglogmini

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

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

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

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

           cp "${{ steps.build-debuglogmini.outputs.debuglogmini }}" cnc-ddraw-debuglogmini
           cp "${{ steps.build-debuglogmini.outputs.debuglogmini-pdb }}" cnc-ddraw-debuglogmini
           
    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-releasewin2000
    uses: actions/upload-artifact@v4
    with:
     name: cnc-ddraw-releasewin2000
     path: cnc-ddraw-releasewin2000
     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-debuglog
    uses: actions/upload-artifact@v4
    with:
     name: cnc-ddraw-debuglog
     path: cnc-ddraw-debuglog
     retention-days: 14

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