stock-bot/scripts/build-all.ps1

106 lines
3.4 KiB
PowerShell
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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" }
$appFilters = $appDirs | ForEach-Object { "./apps/$($_.Name)" }
if ($appFilters.Count -gt 0) {
$filterArg = $appFilters -join " "
$turboCmd = "turbo run build --filter=`"$filterArg`""
if ($Verbose) {
Write-Host "Running: $turboCmd" -ForegroundColor DarkGray
}
Invoke-Expression $turboCmd
if ($LASTEXITCODE -ne 0) {
throw "Turbo app build failed"
}
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
}