name: Build on: push 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: Release build config id: build-releaseconfig uses: ./ with: releaseconfig: true - name: Debug build config id: build-debugconfig uses: ./ with: debugconfig: true - name: Prepare artifact run: | : if [[ -f "${{ steps.build-release.outputs.release }}" ]]; then mkdir -p cnc-ddraw-release cp "${{ steps.build-release.outputs.release }}" cnc-ddraw-release cp LICENSE cnc-ddraw-release/LICENSE.txt cp README.md cnc-ddraw-release/README.txt if [[ -f "${{ steps.build-release.outputs.release-pdb }}" ]]; then mkdir -p cnc-ddraw-release-pdb cp "${{ steps.build-release.outputs.release-pdb }}" cnc-ddraw-release-pdb fi fi if [[ -f "${{ steps.build-releasewin2000.outputs.releasewin2000 }}" ]]; then mkdir -p cnc-ddraw-releasewin2000 cp "${{ steps.build-releasewin2000.outputs.releasewin2000 }}" cnc-ddraw-releasewin2000 cp LICENSE cnc-ddraw-releasewin2000/LICENSE.txt cp README.md cnc-ddraw-releasewin2000/README.txt if [[ -f "${{ steps.build-releasewin2000.outputs.releasewin2000-pdb }}" ]]; then mkdir -p cnc-ddraw-releasewin2000-pdb cp "${{ steps.build-releasewin2000.outputs.releasewin2000-pdb }}" cnc-ddraw-releasewin2000-pdb fi fi if [[ -f "${{ steps.build-debug.outputs.debug }}" ]]; then mkdir -p cnc-ddraw-debug cp "${{ steps.build-debug.outputs.debug }}" cnc-ddraw-debug if [[ -f "${{ steps.build-debug.outputs.debug-pdb }}" ]]; then cp "${{ steps.build-debug.outputs.debug-pdb }}" cnc-ddraw-debug fi fi if [[ -f "${{ steps.build-debuglog.outputs.debuglog }}" ]]; then mkdir -p cnc-ddraw-debuglog cp "${{ steps.build-debuglog.outputs.debuglog }}" cnc-ddraw-debuglog if [[ -f "${{ steps.build-debuglog.outputs.debuglog-pdb }}" ]]; then cp "${{ steps.build-debuglog.outputs.debuglog-pdb }}" cnc-ddraw-debuglog fi fi if [[ -f "${{ steps.build-debuglogmini.outputs.debuglogmini }}" ]]; then mkdir -p cnc-ddraw-debuglogmini cp "${{ steps.build-debuglogmini.outputs.debuglogmini }}" cnc-ddraw-debuglogmini if [[ -f "${{ steps.build-debuglogmini.outputs.debuglogmini-pdb }}" ]]; then cp "${{ steps.build-debuglogmini.outputs.debuglogmini-pdb }}" cnc-ddraw-debuglogmini fi fi if [[ -f "${{ steps.build-releaseconfig.outputs.releaseconfig }}" ]]; then if [[ -f "${{ steps.build-release.outputs.release }}" ]]; then cp "${{ steps.build-releaseconfig.outputs.releaseconfig }}" cnc-ddraw-release "./cnc-ddraw-release/cnc-ddraw config.exe" -restart & fi if [[ -f "${{ steps.build-releasewin2000.outputs.releasewin2000 }}" ]]; then cp "${{ steps.build-releaseconfig.outputs.releaseconfig }}" cnc-ddraw-releasewin2000 "./cnc-ddraw-releasewin2000/cnc-ddraw config.exe" -restart & fi if [[ ! -f "${{ steps.build-release.outputs.release }}" ]] && [[ ! -f "${{ steps.build-releasewin2000.outputs.releasewin2000 }}" ]]; then mkdir -p cnc-ddraw-releaseconfig cp "${{ steps.build-releaseconfig.outputs.releaseconfig }}" cnc-ddraw-releaseconfig fi if [[ -f "${{ steps.build-releaseconfig.outputs.releaseconfig-pdb }}" ]]; then mkdir -p cnc-ddraw-releaseconfig-pdb cp "${{ steps.build-releaseconfig.outputs.releaseconfig-pdb }}" cnc-ddraw-releaseconfig-pdb fi fi if [[ -f "${{ steps.build-debugconfig.outputs.debugconfig }}" ]]; then mkdir -p cnc-ddraw-debugconfig cp "${{ steps.build-debugconfig.outputs.debugconfig }}" cnc-ddraw-debugconfig if [[ -f "${{ steps.build-debugconfig.outputs.debugconfig-pdb }}" ]]; then cp "${{ steps.build-debugconfig.outputs.debugconfig-pdb }}" cnc-ddraw-debugconfig fi fi if [[ "${{ startsWith(github.ref, 'refs/tags/') }}" == "true" ]]; then curl -o "glsl-shaders-master.zip" "https://codeload.github.com/libretro/glsl-shaders/zip/refs/heads/master" 7z x "glsl-shaders-master.zip" if [[ -f "${{ steps.build-release.outputs.release }}" ]]; then cp -r glsl-shaders-master cnc-ddraw-release/Shaders 7z a -tzip -mm=Deflate -mfb=258 -mpass=15 "cnc-ddraw-release.zip" ".\cnc-ddraw-release\*" if [[ -f "${{ steps.build-release.outputs.release-pdb }}" ]]; then 7z a -tzip -mm=Deflate -mfb=258 -mpass=15 "cnc-ddraw-release-pdb.zip" ".\cnc-ddraw-release-pdb\*" fi fi if [[ -f "${{ steps.build-releasewin2000.outputs.releasewin2000 }}" ]]; then cp -r glsl-shaders-master cnc-ddraw-releasewin2000/Shaders 7z a -tzip -mm=Deflate -mfb=258 -mpass=15 "cnc-ddraw-releasewin2000.zip" ".\cnc-ddraw-releasewin2000\*" if [[ -f "${{ steps.build-releasewin2000.outputs.releasewin2000-pdb }}" ]]; then 7z a -tzip -mm=Deflate -mfb=258 -mpass=15 "cnc-ddraw-releasewin2000-pdb.zip" ".\cnc-ddraw-releasewin2000-pdb\*" fi fi fi shell: bash - name: Upload artifacts cnc-ddraw-release uses: actions/upload-artifact@v4 with: name: cnc-ddraw-release path: cnc-ddraw-release if-no-files-found: ignore retention-days: 14 - name: Upload artifacts cnc-ddraw-release-pdb uses: actions/upload-artifact@v4 with: name: cnc-ddraw-release-pdb path: cnc-ddraw-release-pdb if-no-files-found: ignore retention-days: 14 - name: Upload artifacts cnc-ddraw-releasewin2000 uses: actions/upload-artifact@v4 with: name: cnc-ddraw-releasewin2000 path: cnc-ddraw-releasewin2000 if-no-files-found: ignore retention-days: 14 - name: Upload artifacts cnc-ddraw-releasewin2000-pdb uses: actions/upload-artifact@v4 with: name: cnc-ddraw-releasewin2000-pdb path: cnc-ddraw-releasewin2000-pdb if-no-files-found: ignore retention-days: 14 - name: Upload artifacts cnc-ddraw-debug uses: actions/upload-artifact@v4 with: name: cnc-ddraw-debug path: cnc-ddraw-debug if-no-files-found: ignore retention-days: 14 - name: Upload artifacts cnc-ddraw-debuglog uses: actions/upload-artifact@v4 with: name: cnc-ddraw-debuglog path: cnc-ddraw-debuglog if-no-files-found: ignore retention-days: 14 - name: Upload artifacts cnc-ddraw-debuglogmini uses: actions/upload-artifact@v4 with: name: cnc-ddraw-debuglogmini path: cnc-ddraw-debuglogmini if-no-files-found: ignore retention-days: 14 - name: Upload artifacts cnc-ddraw-releaseconfig uses: actions/upload-artifact@v4 with: name: cnc-ddraw-releaseconfig path: cnc-ddraw-releaseconfig if-no-files-found: ignore retention-days: 14 - name: Upload artifacts cnc-ddraw-releaseconfig-pdb uses: actions/upload-artifact@v4 with: name: cnc-ddraw-releaseconfig-pdb path: cnc-ddraw-releaseconfig-pdb if-no-files-found: ignore retention-days: 14 - name: Upload artifacts cnc-ddraw-debugconfig uses: actions/upload-artifact@v4 with: name: cnc-ddraw-debugconfig path: cnc-ddraw-debugconfig if-no-files-found: ignore retention-days: 14 - name: Release uses: softprops/action-gh-release@v1 if: startsWith(github.ref, 'refs/tags/') with: files: | cnc-ddraw-release.zip cnc-ddraw-releasewin2000.zip cnc-ddraw-release-pdb.zip cnc-ddraw-releasewin2000-pdb.zip