29 lines
1.1 KiB
PowerShell
29 lines
1.1 KiB
PowerShell
$ErrorActionPreference = "Stop"
|
|
Set-Location -LiteralPath $PSScriptRoot
|
|
|
|
Write-Host "[1/4] Installing build dependencies..."
|
|
python -m pip install -r requirements-build.txt
|
|
if ($LASTEXITCODE -ne 0) { throw "Dependency installation failed." }
|
|
|
|
Write-Host "[2/4] Generating application icon..."
|
|
python tools\generate_icon.py
|
|
if ($LASTEXITCODE -ne 0) { throw "Icon generation failed." }
|
|
|
|
Write-Host "[3/4] Running tests..."
|
|
python -m unittest discover -s tests -v
|
|
if ($LASTEXITCODE -ne 0) { throw "Tests failed." }
|
|
|
|
Write-Host "[4/4] Building single-file executable..."
|
|
python -m PyInstaller --noconfirm --clean ProcessDock.spec
|
|
if ($LASTEXITCODE -ne 0) { throw "PyInstaller build failed." }
|
|
|
|
$exe = Join-Path $PSScriptRoot "dist\ProcessDock.exe"
|
|
if (-not (Test-Path -LiteralPath $exe)) { throw "Build completed without an executable." }
|
|
$file = Get-Item -LiteralPath $exe
|
|
$hash = Get-FileHash -LiteralPath $exe -Algorithm SHA256
|
|
|
|
Write-Host ""
|
|
Write-Host "Build succeeded: $($file.FullName)"
|
|
Write-Host "Size: $([math]::Round($file.Length / 1MB, 1)) MB"
|
|
Write-Host "SHA256: $($hash.Hash)"
|