319 lines
9.7 KiB
YAML
319 lines
9.7 KiB
YAML
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
|