Something went wrong. Try again.
Monorepo for Aesthetic.Computer aesthetic.computer
Something went wrong. Try again.
8.3 kB · 177 lines
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178# Windows VM Bootstrap Script for UE5 Builder# This script installs all dependencies automatically on first boot# Run as Administrator in PowerShell
$ErrorActionPreference = "Stop"
Write-Host "=== false.work UE5 Builder - Automated Setup ===" -ForegroundColor CyanWrite-Host ""
# Create log file$LogFile = "C:\bootstrap-log.txt"Start-Transcript -Path $LogFile
# Install Chocolatey (package manager for Windows)Write-Host "[1/6] Installing Chocolatey package manager..." -ForegroundColor Yellowif (!(Get-Command choco -ErrorAction SilentlyContinue)) { Set-ExecutionPolicy Bypass -Scope Process -Force [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072 Invoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1')) $env:PATH = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User") Write-Host "✓ Chocolatey installed" -ForegroundColor Green} else { Write-Host "✓ Chocolatey already installed" -ForegroundColor Green}
# Install GitWrite-Host ""Write-Host "[2/6] Installing Git for Windows..." -ForegroundColor Yellowif (!(Get-Command git -ErrorAction SilentlyContinue)) { choco install git -y --no-progress $env:PATH = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User") Write-Host "✓ Git installed" -ForegroundColor Green} else { Write-Host "✓ Git already installed" -ForegroundColor Green}
# Install Perforce CLI (P4)Write-Host ""Write-Host "[3/6] Installing Perforce CLI (P4)..." -ForegroundColor Yellow$P4Url = "https://cdist2.perforce.com/perforce/r24.1/bin.ntx64/p4.exe"$P4Path = "C:\Windows\System32\p4.exe"if (!(Test-Path $P4Path)) { Invoke-WebRequest -Uri $P4Url -OutFile $P4Path Write-Host "✓ Perforce CLI installed" -ForegroundColor Green} else { Write-Host "✓ Perforce CLI already installed" -ForegroundColor Green}
# Download Visual Studio Build Tools installer (doesn't auto-install due to size)Write-Host ""Write-Host "[4/6] Downloading Visual Studio 2022 installer..." -ForegroundColor Yellow$VSUrl = "https://aka.ms/vs/17/release/vs_BuildTools.exe"$VSInstaller = "C:\vs_buildtools.exe"if (!(Test-Path $VSInstaller)) { Invoke-WebRequest -Uri $VSUrl -OutFile $VSInstaller Write-Host "✓ Visual Studio installer downloaded to: $VSInstaller" -ForegroundColor Green Write-Host " Run this to install (takes 30-60 min):" -ForegroundColor Yellow Write-Host " $VSInstaller --quiet --wait --norestart --nocache \\" -ForegroundColor Gray Write-Host " --installPath C:\BuildTools \\" -ForegroundColor Gray Write-Host " --add Microsoft.VisualStudio.Workload.VCTools \\" -ForegroundColor Gray Write-Host " --add Microsoft.VisualStudio.Workload.ManagedDesktopBuildTools" -ForegroundColor Gray} else { Write-Host "✓ Visual Studio installer already downloaded" -ForegroundColor Green}
# Download Epic Games Launcher installerWrite-Host ""Write-Host "[5/6] Downloading Epic Games Launcher..." -ForegroundColor Yellow$EpicUrl = "https://launcher-public-service-prod06.ol.epicgames.com/launcher/api/installer/download/EpicGamesLauncherInstaller.msi"$EpicInstaller = "C:\EpicGamesLauncherInstaller.msi"if (!(Test-Path $EpicInstaller)) { Invoke-WebRequest -Uri $EpicUrl -OutFile $EpicInstaller Write-Host "✓ Epic Games Launcher downloaded to: $EpicInstaller" -ForegroundColor Green Write-Host " Install manually: msiexec /i $EpicInstaller /quiet" -ForegroundColor Yellow Write-Host " Then sign in and install UE5 from the Launcher" -ForegroundColor Yellow} else { Write-Host "✓ Epic Games Launcher installer already downloaded" -ForegroundColor Green}
# Configure Windows for build performanceWrite-Host ""Write-Host "[6/6] Configuring Windows for build performance..." -ForegroundColor Yellow
# Disable Windows Search indexingtry { Stop-Service WSearch -Force -ErrorAction SilentlyContinue Set-Service WSearch -StartupType Disabled -ErrorAction SilentlyContinue Write-Host "✓ Disabled Windows Search indexing" -ForegroundColor Green} catch { Write-Host " Could not disable Windows Search" -ForegroundColor Yellow}
# Set high performance power plantry { powercfg /setactive 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c Write-Host "✓ Set High Performance power plan" -ForegroundColor Green} catch { Write-Host " Could not set power plan" -ForegroundColor Yellow}
# Create build directoriesWrite-Host ""Write-Host "Creating build directories..." -ForegroundColor Yellow$Dirs = @("D:\Perforce", "D:\Builds", "D:\Builds\Logs")foreach ($Dir in $Dirs) { if (!(Test-Path $Dir)) { New-Item -ItemType Directory -Path $Dir -Force | Out-Null Write-Host "✓ Created: $Dir" -ForegroundColor Green }}
# Download GitHub Actions runner setup scriptWrite-Host ""Write-Host "Downloading GitHub Actions runner setup..." -ForegroundColor Yellow$RunnerUrl = "https://github.com/actions/runner/releases/download/v2.311.0/actions-runner-win-x64-2.311.0.zip"$RunnerZip = "C:\actions-runner.zip"if (!(Test-Path "C:\actions-runner")) { New-Item -ItemType Directory -Path "C:\actions-runner" -Force | Out-Null Invoke-WebRequest -Uri $RunnerUrl -OutFile $RunnerZip Expand-Archive -Path $RunnerZip -DestinationPath "C:\actions-runner" -Force Remove-Item $RunnerZip Write-Host "✓ GitHub Actions runner downloaded to: C:\actions-runner" -ForegroundColor Green}
Stop-Transcript
Write-Host ""Write-Host "=== Bootstrap Complete! ===" -ForegroundColor GreenWrite-Host ""Write-Host "✅ Installed:"Write-Host " - Chocolatey package manager"Write-Host " - Git for Windows"Write-Host " - Perforce CLI (P4)"Write-Host " - GitHub Actions runner (extracted)"Write-Host ""Write-Host "📥 Downloaded (manual install needed):"Write-Host " - Visual Studio Build Tools: C:\vs_buildtools.exe"Write-Host " - Epic Games Launcher: C:\EpicGamesLauncherInstaller.msi"Write-Host ""Write-Host "⏭️ Next Steps:" -ForegroundColor CyanWrite-Host ""Write-Host "1. Install Visual Studio Build Tools (~30-60 min):" -ForegroundColor YellowWrite-Host " C:\vs_buildtools.exe --quiet --wait --norestart --nocache \"Write-Host " --installPath C:\BuildTools \"Write-Host " --add Microsoft.VisualStudio.Workload.VCTools \"Write-Host " --add Microsoft.VisualStudio.Workload.ManagedDesktopBuildTools"Write-Host ""Write-Host "2. Install Epic Games Launcher:" -ForegroundColor YellowWrite-Host " msiexec /i C:\EpicGamesLauncherInstaller.msi /quiet"Write-Host " Then sign in and install UE5"Write-Host ""Write-Host "3. Clone aesthetic-computer-vault for credentials:" -ForegroundColor YellowWrite-Host " git clone https://github.com/whistlegraph/aesthetic-computer-vault.git C:\aesthetic-computer-vault"Write-Host ""Write-Host "4. Configure Perforce (using vault):" -ForegroundColor YellowWrite-Host " `$vaultEnv = 'C:\aesthetic-computer-vault\false.work\ue5-builder.env'"Write-Host " Get-Content `$vaultEnv | ForEach-Object { if (`$_ -match '^([^=]+)=(.*)$') { Set-Item -Path `"env:`$(`$matches[1])`" -Value `$matches[2] } }"Write-Host " p4 set P4PORT=`$env:P4_SERVER"Write-Host " p4 set P4USER=`$env:P4_USER"Write-Host " p4 set P4PASSWD=`$env:P4_PASSWORD"Write-Host " p4 login"Write-Host ""Write-Host "5. Clone aesthetic-computer repo:" -ForegroundColor YellowWrite-Host " cd C:\"Write-Host " git clone https://github.com/whistlegraph/aesthetic-computer.git"Write-Host ""Write-Host "6. Run setup script:" -ForegroundColor YellowWrite-Host " cd C:\aesthetic-computer\false.work\unreal-builder"Write-Host " .\scripts\setup-build-machine.ps1"Write-Host ""Write-Host "6. Configure GitHub Actions runner:" -ForegroundColor YellowWrite-Host " cd C:\actions-runner"Write-Host " .\config.cmd --url https://github.com/whistlegraph/aesthetic-computer --token YOUR_TOKEN"Write-Host " .\svc.sh install"Write-Host " .\svc.sh start"Write-Host ""Write-Host "Log saved to: $LogFile" -ForegroundColor Gray