Added Agent EXE Packaging Script

This commit is contained in:
Nicole Rappe 2025-04-23 23:11:06 -06:00
parent b8aa9bad0f
commit f782ab5ac9
6 changed files with 58 additions and 3 deletions

5
.gitignore vendored
View File

@ -2,5 +2,8 @@
/Server/
/Agent/
/Pyinstaller_Temp/
Borealis-Server.spec
/dist/
Borealis-Agent.exe
/Data/Agent/Packaging_Data/
Borealis-Server.exe
/Data/Server/Packaging_Data/

BIN
Data/Agent/Borealis.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

View File

@ -1 +1,53 @@
Placeholder Packaging Script
#////////// PROJECT FILE SEPARATION LINE ////////// CODE AFTER THIS LINE ARE FROM: <ProjectRoot>/Agent/Package_Borealis-Agent.ps1
# Configuration
$packagingDir = "Packaging_Data"
$venvDir = "$packagingDir\Pyinstaller_Virtual_Environment"
$distDir = "$packagingDir\dist"
$buildDir = "$packagingDir\build"
$specPath = "$packagingDir"
$agentScript = "borealis-agent.py"
$outputName = "Borealis-Agent"
$finalExeName = "$outputName.exe"
$requirementsPath = "requirements.txt"
$iconPath = "..\Borealis.ico"
# Ensure Packaging_Data directory exists
if (-Not (Test-Path $packagingDir)) {
New-Item -ItemType Directory -Path $packagingDir | Out-Null
}
# Set up virtual environment
if (-Not (Test-Path "$venvDir\Scripts\Activate.ps1")) {
Write-Host "[SETUP] Creating virtual environment at $venvDir"
python -m venv $venvDir
}
# Activate virtual environment
Write-Host "[INFO] Activating virtual environment"
. "$venvDir\Scripts\Activate.ps1"
# Install agent dependencies from requirements file
Write-Host "[INFO] Installing agent dependencies from $requirementsPath"
pip install --upgrade pip > $null
pip install -r $requirementsPath > $null
# Install PyInstaller
Write-Host "[INFO] Installing PyInstaller"
pip install pyinstaller > $null
# Clean previous build artifacts
Write-Host "[INFO] Cleaning previous build artifacts"
Remove-Item -Recurse -Force $distDir, $buildDir, "$specPath\$outputName.spec" -ErrorAction SilentlyContinue
# Run PyInstaller to create single-file executable with custom icon
Write-Host "[INFO] Running PyInstaller with icon $iconPath"
pyinstaller --onefile --icon "$iconPath" --noconfirm --name $outputName --distpath $distDir --workpath $buildDir --specpath $specPath $agentScript
# Copy resulting executable to Agent folder
if (Test-Path "$distDir\$finalExeName") {
Copy-Item "$distDir\$finalExeName" ".\$finalExeName" -Force
Write-Host "[SUCCESS] Agent packaged at .\$finalExeName"
} else {
Write-Host "[FAILURE] Packaging failed." -ForegroundColor Red
}

BIN
Data/Server/Borealis.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.