126 lines
4.3 KiB
PowerShell

$DEPLOYMENT_PATH = 'B:\deployments\EKF-Diagnostics'
$ENV_PATH = 'B:\deployments\EKF-Diagnostics\dopt_ekf_sensor-anomalies'
$PY_PATH = Join-Path -Path $ENV_PATH -ChildPath 'python'
$SRC_PATH = (Get-Location).Path
Write-Output "Build Pipeline for d-opt EKF-Diagnostics sensor anomaly detection"
Write-Output "Delete existing artifacts..."
$pattern = "dopt_ekf_sensor-anomalies_v*"
Get-ChildItem -Path $DEPLOYMENT_PATH -Filter $pattern | Remove-Item -Recurse -Force
if ($? -eq $false){
Write-Output "[PWSH] Exiting script because there were errors in the deletion procedure"
Exit
}
Write-Output "Deleted outstanding artifacts successfully"
Write-Output "Building package..."
.\scripts\publish.ps1
if ($? -eq $false){
Write-Output "[PWSH] Exiting script because there were build errors"
Exit
}
Write-Output "Built package successfully"
# manual
Write-Output "Generate manual..."
.\scripts\cvt_manual.ps1
if ($? -eq $false){
Write-Output "[PWSH] Exiting script because there errors while generating the README file"
Exit
}
Write-Output "Generated manual file successfully"
Write-Output "Copying manual file..."
$readme_src_path = Join-Path -Path $SRC_PATH -ChildPath 'docs\manual.pdf'
$readme_dest_path = Join-Path -Path $ENV_PATH -ChildPath 'manual'
Copy-Item -Path $readme_src_path -Destination $readme_dest_path -Force
if ($? -eq $false){
Write-Output "[PWSH] Exiting script because there were errors while copying the manual file"
Exit
}
Write-Output "Copied manual file successfully"
Write-Output "Go into env directory..."
Set-Location $ENV_PATH
Write-Output "Install package into environment..."
pycage venv add -p -i http://localhost:8001/simple/ dopt-sensor-anomalies
if ($? -eq $false){
Write-Output "[PWSH] Exiting script because there were errors while installing the package into the environment"
Exit
}
Write-Output "Successfully installed package"
# copy CLI file
Write-Output "Copying CLI script file..."
$cli_path = Join-Path -Path $SRC_PATH -ChildPath 'cli.py'
Copy-Item -Path $cli_path -Destination $PY_PATH -Force
if ($? -eq $false){
Write-Output "[PWSH] Exiting script because there were errors while copying the CLI script file"
Exit
}
Write-Output "Copied CLI script file successfully"
# copy model files
Write-Output "Copying model weight files..."
$model_src_path = Join-Path -Path $SRC_PATH -ChildPath 'tests\_models\'
$model_dest_path = Join-Path -Path $ENV_PATH -ChildPath 'models'
Copy-Item -Path "$model_src_path\*.pth" -Destination $model_dest_path -Force
if ($? -eq $false){
Write-Output "[PWSH] Exiting script because there were errors while copying the model weight files"
Exit
}
Write-Output "Copied model weight files successfully"
# env preparation
Write-Output "Preparing environment with cleanup and pre-compilation..."
pycage clean dist-info
if ($? -eq $false){
Write-Output "[PWSH] Exiting script because there were errors while deleting the distribution info files"
Exit
}
pycage compile -q -d -f
if ($? -eq $false){
Write-Output "[PWSH] Exiting script because there were errors during the pre-compilation process"
Exit
}
Write-Output "Successfully prepared environment with cleanup and pre-compilation"
Write-Output "Get version string..."
$pyproject = Get-Content $SRC_PATH\pyproject.toml -Raw
if ($pyproject -match '\[project\].*?\n[\s\w\n=""-_{}]*\[[\w-]*\]') {
$projectBlock = $matches[0]
if ($projectBlock -match 'version\s*=\s*"([^"]+)"') {
$version = $matches[1]
Write-Output "The version string is: $version"
}
else {
Write-Output "[PWSH] Exiting script because the version string was not found"
Exit
}
}
else {
Write-Output "[PWSH] Exiting script because the version string was not found"
Exit
}
Write-Output "Packaging whole standalone environment in a ZIP file"
$dest_path = Join-Path -Path $DEPLOYMENT_PATH -ChildPath "dopt_ekf_sensor-anomalies_v$version.zip"
$compress = @{
Path = "$ENV_PATH\**"
CompressionLevel = "Optimal"
DestinationPath = $dest_path
}
Compress-Archive @compress -Force
if ($? -eq $false){
Write-Output "[PWSH] Exiting script because there were errors during the archive compression operation"
Exit
}
Write-Output "Successfully compressed archive. Saved under: >$dest_path<"
Write-Output "Go back to source directory..."
Set-Location $SRC_PATH