# This file is a part of the UMSKT Project # # Copyleft (C) 2019-2023 UMSKT Contributors (et.al.) # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # # @FileCreated by TheTank20 on 06/13/2023 # @Maintainer Neo name: C/C++ CI (Windows) on: push: branches: [ "*" ] paths-ignore: [ '**.md', 'doc/**', '.idea/**'] # If only these files are edited, skip workflow_dispatch: jobs: build-32bit: runs-on: windows-latest steps: # https://github.com/actions/runner-images/issues/6067#issuecomment-1213069040 - name: Install Windows XP Support for Visual Studio 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: Download And Install 32-bit OpenSSL 3.1.5 run: | $installDir = "$Env:ProgramFiles\OpenSSL" $installerURL = "https://slproweb.com/download/Win32OpenSSL-3_1_5.exe" $installerName = "Win32OpenSSL-3_1_5.exe" $installerPath = Join-Path -Path "${env:Temp}" -ChildPath "$installerName" (New-Object System.Net.WebClient).DownloadFile($installerURL, $installerPath) Remove-Item "$installDir" -Force -Recurse $installerArgs = '/silent', '/sp-', '/suppressmsgboxes', "/DIR=`"$installDir`"" Start-Process -FilePath $installerPath -ArgumentList $installerArgs -Wait -PassThru - name: Checkout Source Tree uses: actions/checkout@v3 - name: Setup MSBuild uses: microsoft/setup-msbuild@v1 - name: Configure UMSKT uses: threeal/cmake-action@v1.2.0 with: generator: "Visual Studio 17 2022" options: CMAKE_SYSTEM_VERSION="5.1.2600" args: -A "Win32" -T v141_xp - name: Build UMSKT working-directory: build run: msbuild ALL_BUILD.vcxproj /P:Configuration=Release - name: Upload build artifact uses: actions/upload-artifact@v3.1.2 with: name: UMSKT-Win32 path: build/Release build-64bit: runs-on: windows-latest steps: - name: Install Windows XP Support for Visual Studio 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: Download And Install 64-bit OpenSSL 3.1.5 run: | $installDir = "$Env:ProgramFiles\OpenSSL" $installerURL = "https://slproweb.com/download/Win64OpenSSL-3_1_5.exe" $installerName = "Win64OpenSSL-3_1_5.exe" $installerPath = Join-Path -Path "${env:Temp}" -ChildPath "$installerName" (New-Object System.Net.WebClient).DownloadFile($installerURL, $installerPath) Remove-Item "$installDir" -Force -Recurse $installerArgs = '/silent', '/sp-', '/suppressmsgboxes', "/DIR=`"$installDir`"" Start-Process -FilePath $installerPath -ArgumentList $installerArgs -Wait -PassThru - name: Checkout Source Tree uses: actions/checkout@v3 - name: Setup MSBuild uses: microsoft/setup-msbuild@v1 - name: Configure UMSKT uses: threeal/cmake-action@v1.2.0 with: generator: "Visual Studio 17 2022" args: -A "x64" -T "v141_xp" - name: Build UMSKT working-directory: build run: msbuild ALL_BUILD.vcxproj /P:Configuration=Release - name: Upload build artifact uses: actions/upload-artifact@v3.1.2 with: name: UMSKT-Win64 path: build/Release