name: UnrealEngine Build and Archive on: workflow_dispatch: jobs: build: runs-on: windows-2019 steps: # Step 1: Checkout repository with submodules and depth 1 - name: Checkout repository uses: actions/checkout@v4 with: submodules: recursive fetch-depth: 1 # Step 2: Remove Visual Studio 2019 - name: Remove Visual Studio 2019 shell: cmd run: | echo "Running InstallCleanup.exe to remove Visual Studio 2019..." "C:\Program Files (x86)\Microsoft Visual Studio\Installer\InstallCleanup.exe" -f # Step 3: Install required components for Visual Studio 2017 - name: Install Visual Studio 2017 Components shell: powershell run: | $components = @( "--add Microsoft.VisualStudio.Workload.NativeDesktop", # Desktop development with C++ "--add Microsoft.VisualStudio.Component.Windows81SDK", # Windows 8.1 SDK "--add Microsoft.VisualStudio.Workload.ManagedDesktop", # .NET desktop development "--add Microsoft.VisualStudio.Workload.Universal", # Universal Windows Platform Development "--add Microsoft.VisualStudio.Component.Windows10SDK.17763", # Win10 SDK 17763 "--add Microsoft.VisualStudio.ComponentGroup.UCRT", # UCRT SDK "--add Microsoft.VisualStudio.Workload.NativeGame", # Game development with C++ "--add Microsoft.Component.MSBuild", # MSBuild "--add Microsoft.VisualStudio.Component.NuGet", # NuGet Package Manager "--add Microsoft.VisualStudio.Workload.CoreEditor", # Visual Studio core editor "--add Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions", # Web development "--add Microsoft.VisualStudio.Component.CMake" # CMake tools for Windows ) Start-Process -FilePath "C:\\Program Files (x86)\\Microsoft Visual Studio\\Installer\\vs_installer.exe" -ArgumentList ($components -join " "), "--quiet", "--wait" # Step 4: Run Setup.bat - name: Run Setup.bat shell: cmd run: | cmd /c ".\Setup.bat" timeout-minutes: 20 continue-on-error: true # Step 5: Run GenerateProjectFiles.bat - name: Run GenerateProjectFiles.bat shell: cmd run: | cd ${{ github.workspace }} .\GenerateProjectFiles.bat -2019 # Step 6: Run Unreal Build with BuildGraph for Shipping and UWP64 - name: Run Unreal Build shell: cmd run: | Engine\Build\BatchFiles\RunUAT.bat BuildGraph -target="Make Installed Build Win64" -script=Engine/Build/InstalledEngineBuild.xml -set:WithDDC=false -set:WithLinux=false -set:WithUWP64=true -set:WithLinuxArm64=false -set:WithWin64=true -set:WithMac=false -set:WithAndroid=false -set:WithIOS=false -set:WithHTML5=false -set:WithPS4=false -set:WithXboxOne=false -set:WithSwitch=false -set:WithLumin=false -set:WithWin32=false -set:WithWinRT=false -set:WithHoloLens=false -set:WithDingo=false -set:WithPython=false -set:GameConfigurations=Development;Shipping;DebugGame -exclude=Samples -exclude=FeaturePacks -exclude=Engine/Saved # Step 7: Compress the installed engine into a .7z file - name: Compress Installed Engine shell: cmd run: 7z a InstalledEngine.7z LocalBuilds\Engine # Step 8: Upload the .7z file as an artifact - name: Upload Installed Engine Archive uses: actions/upload-artifact@v3 with: name: InstalledEngine path: InstalledEngine.7z