# Build All Script for Stock Bot # Builds libraries first, then apps with Turbo, then dashboard with Angular CLI param( [switch]$Clean, [switch]$Verbose ) $ErrorActionPreference = "Stop" Write-Host "๐Ÿš€ Starting complete build process..." -ForegroundColor Cyan # Store original location $originalLocation = Get-Location Set-Location "g:\repos\stock-bot" try { # Step 1: Clean if requested if ($Clean) { Write-Host "๐Ÿงน Cleaning previous builds..." -ForegroundColor Yellow & powershell ./scripts/clean.ps1 -dist if ($LASTEXITCODE -ne 0) { throw "Clean failed" } } # Step 2: Build libraries first Write-Host "๐Ÿ“š Building libraries..." -ForegroundColor Green & powershell ./scripts/build-libs.ps1 if ($LASTEXITCODE -ne 0) { throw "Library build failed" } # Step 3: Build apps with Turbo (excluding dashboard) Write-Host "๐Ÿ—๏ธ Building applications with Turbo..." -ForegroundColor Green # Get list of apps excluding dashboard $appDirs = Get-ChildItem -Path "apps" -Directory | Where-Object { $_.Name -ne "dashboard" } if ($appDirs.Count -gt 0) { # Build each app individually to avoid filter syntax issues foreach ($app in $appDirs) { $appPath = "./apps/$($app.Name)" Write-Host " Building $($app.Name)..." -ForegroundColor Cyan $turboCmd = "turbo run build --filter=$appPath" if ($Verbose) { Write-Host " Running: $turboCmd" -ForegroundColor DarkGray } Invoke-Expression $turboCmd if ($LASTEXITCODE -ne 0) { throw "Failed to build app: $($app.Name)" } } Write-Host "โœ… Apps built successfully: $($appDirs.Name -join ', ')" -ForegroundColor Green } else { Write-Host "โ„น๏ธ No non-dashboard apps found to build with Turbo" -ForegroundColor Yellow } # Step 4: Build dashboard with Angular CLI $dashboardPath = "apps/dashboard" if (Test-Path $dashboardPath) { Write-Host "๐ŸŽจ Building Angular dashboard..." -ForegroundColor Green Set-Location $dashboardPath # Check if ng is available try { ng version | Out-Null } catch { Write-Host "โŒ Angular CLI not found. Installing..." -ForegroundColor Red npm install -g @angular/cli if ($LASTEXITCODE -ne 0) { throw "Failed to install Angular CLI" } } # Build dashboard ng build --configuration production if ($LASTEXITCODE -ne 0) { throw "Dashboard build failed" } Write-Host "โœ… Dashboard built successfully" -ForegroundColor Green Set-Location $originalLocation } else { Write-Host "โš ๏ธ Dashboard not found at $dashboardPath" -ForegroundColor Yellow } Write-Host "๐ŸŽ‰ Complete build finished successfully!" -ForegroundColor Green Write-Host "" Write-Host "Build Summary:" -ForegroundColor Cyan Write-Host " โœ… Libraries built" -ForegroundColor Green if ($appFilters.Count -gt 0) { Write-Host " โœ… Apps built: $($appDirs.Name -join ', ')" -ForegroundColor Green } if (Test-Path "apps/dashboard") { Write-Host " โœ… Dashboard built" -ForegroundColor Green } } catch { Write-Host "โŒ Build failed: $($_.Exception.Message)" -ForegroundColor Red Set-Location $originalLocation exit 1 } finally { Set-Location $originalLocation }