cocco-ddraw/.github/workflows/build.yml
2024-03-13 16:59:35 +05:00

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