generated from dopt-python/py311
first version of build script
This commit is contained in:
@@ -1 +1,200 @@
|
||||
pdm build -d build/
|
||||
[CmdletBinding()]
|
||||
Param(
|
||||
[switch]$NoPackaging
|
||||
)
|
||||
|
||||
$DEPLOYMENT_PATH = 'B:\deployments\Wattana'
|
||||
$ENV_PATH = 'B:\deployments\Wattana\dopt_wattana_data-analytics'
|
||||
$PY_PATH = Join-Path -Path $ENV_PATH -ChildPath 'python'
|
||||
$SRC_PATH = (Get-Location).Path
|
||||
|
||||
function create_folder {
|
||||
param (
|
||||
[string]$base_path,
|
||||
[string]$folder_name
|
||||
)
|
||||
$target_path = Join-Path -Path $base_path -ChildPath $folder_name
|
||||
|
||||
if (-not (Test-Path -Path $target_path)){
|
||||
Write-Output "[PWSH] Folder >$folder_name< not existing. Create..."
|
||||
New-Item -Path $target_path -ItemType Directory
|
||||
}
|
||||
else {
|
||||
Write-Output "Folder >$folder_name< already exists."
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Write-Output "Build Pipeline for d-opt Wattana (wattanalyse) project"
|
||||
|
||||
Write-Output "Delete existing artifacts..."
|
||||
$pattern = "dopt_wattana_data-analytics_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 "Create folders..."
|
||||
create_folder -base_path $ENV_PATH -folder_name 'data'
|
||||
create_folder -base_path $ENV_PATH -folder_name 'data/logs'
|
||||
create_folder -base_path $ENV_PATH -folder_name 'config'
|
||||
|
||||
|
||||
# $data_folder = Join-Path -Path $ENV_PATH -ChildPath 'data'
|
||||
|
||||
# if (-not (Test-Path -Path $data_folder)){
|
||||
# Write-Output "[PWSH] Data path not existing. Create..."
|
||||
# New-Item -Path $data_folder -ItemType Directory
|
||||
# }
|
||||
# else {
|
||||
# Write-Output "Data path already exists."
|
||||
# }
|
||||
|
||||
|
||||
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"
|
||||
|
||||
# TODO documentation
|
||||
# Write-Output "Generate docs..."
|
||||
# .\scripts\cvt_docs.ps1
|
||||
# if ($? -eq $false){
|
||||
# Write-Output "[PWSH] Exiting script because there errors while generating the doc files"
|
||||
# Exit
|
||||
# }
|
||||
# Write-Output "Generated doc files successfully"
|
||||
# Write-Output "Copying doc files..."
|
||||
# $docs_src_path = Join-Path -Path $SRC_PATH -ChildPath 'docs\*.pdf'
|
||||
# Copy-Item -Path $docs_src_path -Destination $ENV_PATH -Force
|
||||
# if ($? -eq $false){
|
||||
# Write-Output "[PWSH] Exiting script because there were errors while copying the doc files"
|
||||
# Exit
|
||||
# }
|
||||
# Write-Output "Copied doc files 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/ wattanalyse
|
||||
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 database file
|
||||
# Write-Output "Copying database files..."
|
||||
# $copy_file = Join-Path -Path $SRC_PATH -ChildPath 'data/db/wce_grunderfassung.db'
|
||||
# $dest_file = Join-Path -Path $ENV_PATH -ChildPath 'data'
|
||||
# Copy-Item -Path $copy_file -Destination $dest_file -Force
|
||||
# if ($? -eq $false){
|
||||
# Write-Output "[PWSH] Exiting script because there were errors while copying database 'Grunderfassung'"
|
||||
# Exit
|
||||
# }
|
||||
# $copy_file = Join-Path -Path $SRC_PATH -ChildPath 'data/db/wce_crm.db'
|
||||
# Copy-Item -Path $copy_file -Destination $dest_file -Force
|
||||
# if ($? -eq $false){
|
||||
# Write-Output "[PWSH] Exiting script because there were errors while copying database 'CRM'"
|
||||
# Exit
|
||||
# }
|
||||
# Write-Output "Copied database files successfully"
|
||||
|
||||
# copy .env file
|
||||
Write-Output "Copying ENV file..."
|
||||
$env_file = Join-Path -Path $SRC_PATH -ChildPath 'deployment/.env'
|
||||
$env_dest_path = Join-Path -Path $PY_PATH -ChildPath '.env'
|
||||
Copy-Item -Path $env_file -Destination $env_dest_path -Force
|
||||
if ($? -eq $false){
|
||||
Write-Output "[PWSH] Exiting script because there were errors while copying ENV file"
|
||||
Exit
|
||||
}
|
||||
Write-Output "Copied ENV file successfully"
|
||||
|
||||
# copy config file
|
||||
Write-Output "Copying ENV file..."
|
||||
$env_file = Join-Path -Path $SRC_PATH -ChildPath 'config/wattana.toml'
|
||||
$env_dest_path = Join-Path -Path $ENV_PATH -ChildPath 'config'
|
||||
Copy-Item -Path $env_file -Destination $env_dest_path -Force
|
||||
if ($? -eq $false){
|
||||
Write-Output "[PWSH] Exiting script because there were errors while copying config file"
|
||||
Exit
|
||||
}
|
||||
Write-Output "Copied config file successfully"
|
||||
|
||||
# TODO check needed?
|
||||
# copy startup script files
|
||||
# Write-Output "Copying startup scripts..."
|
||||
# $copy_file = Join-Path -Path $SRC_PATH -ChildPath 'scripts/start.bat'
|
||||
# Copy-Item -Path $copy_file -Destination $ENV_PATH -Force
|
||||
# if ($? -eq $false){
|
||||
# Write-Output "[PWSH] Exiting script because there were errors while copying startup scripts"
|
||||
# Exit
|
||||
# }
|
||||
# Write-Output "Copied startup scripts 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"
|
||||
|
||||
if ($NoPackaging) {
|
||||
Write-Output "[PWSH] No packaging selected. Exit..."
|
||||
Set-Location $SRC_PATH
|
||||
Exit
|
||||
}
|
||||
|
||||
|
||||
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_nafka_wce-crm_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
|
||||
|
||||
1
scripts/build_pdm.ps1
Normal file
1
scripts/build_pdm.ps1
Normal file
@@ -0,0 +1 @@
|
||||
pdm build -d build/
|
||||
Reference in New Issue
Block a user