|
1 | 1 | $MD = "PES" |
2 | 2 | $VCREDIST_REF = "https://aka.ms/vs/17/release/vc_redist.x64.exe" |
3 | | -$ETCD_REF = "https://github.com/etcd-io/etcd/releases/download/v3.5.18/etcd-v3.5.18-windows-amd64.zip" |
4 | | -$PATRONI_REF = "https://github.com/patroni/patroni/archive/refs/tags/v4.0.5.zip" |
| 3 | +$ETCD_REF = "https://github.com/etcd-io/etcd/releases/download/v3.5.21/etcd-v3.5.21-windows-amd64.zip" |
| 4 | +$PATRONI_REF = "https://github.com/patroni/patroni/archive/refs/tags/v4.0.6.zip" |
5 | 5 | $MICRO_REF = "https://github.com/zyedidia/micro/releases/download/v2.0.14/micro-2.0.14-win64.zip" |
6 | 6 | $WINSW_REF = "https://github.com/winsw/winsw/releases/download/v2.12.0/WinSW.NET461.exe" |
7 | | -$VIP_REF = "https://github.com/cybertec-postgresql/vip-manager/releases/download/v3.0.0/vip-manager_3.0.0_Windows_x86_64.zip" |
8 | | -$PGSQL_REF = "https://get.enterprisedb.com/postgresql/postgresql-15.12-1-windows-x64-binaries.zip" |
9 | | -$PYTHON_REF = "https://www.python.org/ftp/python/3.13.2/python-3.13.2-amd64.exe" |
| 7 | +$VIP_REF = "https://github.com/cybertec-postgresql/vip-manager/releases/download/v4.0.0/vip-manager_4.0.0_Windows_x86_64.zip" |
| 8 | +$PGSQL_REF = "https://get.enterprisedb.com/postgresql/postgresql-17.5-1-windows-x64-binaries.zip" |
| 9 | +$PYTHON_REF = "https://www.python.org/ftp/python/3.13.5/python-3.13.5-amd64.exe" |
10 | 10 | # one should change python version in github action workflows when changed here |
11 | 11 |
|
12 | 12 | $SEVENZIP = "C:\Program Files\7-Zip\7z.exe" |
13 | 13 |
|
| 14 | +function Extract-ZipFile { |
| 15 | + param ( |
| 16 | + [string]$zipFilePath, |
| 17 | + [string]$destinationPath |
| 18 | + ) |
| 19 | + if (Test-Path $SEVENZIP) { |
| 20 | + & $SEVENZIP x "$zipFilePath" -o"$destinationPath" |
| 21 | + Start-Sleep -Seconds 5 |
| 22 | + } |
| 23 | + else { |
| 24 | + Expand-Archive -Path "$zipFilePath" -DestinationPath "$destinationPath" |
| 25 | + } |
| 26 | + Remove-Item -Force "$zipFilePath" -ErrorAction Ignore |
| 27 | +} |
| 28 | + |
| 29 | +function Compress-ToZipFile { |
| 30 | + param ( |
| 31 | + [string]$sourcePath, |
| 32 | + [string]$destinationPath |
| 33 | + ) |
| 34 | + if (Test-Path $SEVENZIP) { |
| 35 | + & $SEVENZIP a "$destinationPath" -y "$sourcePath" |
| 36 | + } |
| 37 | + else { |
| 38 | + Compress-Archive -Path "$sourcePath" -DestinationPath "$destinationPath" |
| 39 | + } |
| 40 | +} |
| 41 | + |
| 42 | +function Start-Bootstrapping { |
| 43 | + Write-Host "`n--- Start bootstrapping ---" -ForegroundColor blue |
| 44 | + & ./clean.ps1 |
| 45 | + New-Item -ItemType Directory -Path $MD |
| 46 | + Copy-Item "src\*.bat" $MD |
| 47 | + Copy-Item "src\*.ps1" $MD |
| 48 | + Copy-Item "doc" "$MD\doc" -Recurse |
| 49 | + Write-Host "`n--- End bootstrapping ---" -ForegroundColor green |
| 50 | +} |
| 51 | + |
| 52 | +function Get-VCRedist { |
| 53 | + Write-Host "`n--- Download VCREDIST ---" -ForegroundColor blue |
| 54 | + Invoke-WebRequest -Uri $VCREDIST_REF -OutFile "$MD\vc_redist.x64.exe" |
| 55 | + Write-Host "`n--- VCREDIST downloaded ---" -ForegroundColor green |
| 56 | +} |
| 57 | + |
| 58 | +function Get-ETCD { |
| 59 | + Write-Host "`n--- Download ETCD ---" -ForegroundColor blue |
| 60 | + Invoke-WebRequest -Uri $ETCD_REF -OutFile "$env:TEMP\etcd.zip" |
| 61 | + Extract-ZipFile "$env:TEMP\etcd.zip" "$MD" |
| 62 | + Rename-Item "$MD\etcd-*" "etcd" |
| 63 | + Copy-Item "src\etcd.yaml" "$MD\etcd" |
| 64 | + Write-Host "`n--- ETCD downloaded ---" -ForegroundColor green |
| 65 | +} |
| 66 | + |
| 67 | +function Get-Micro { |
| 68 | + Write-Host "`n--- Download MICRO ---" -ForegroundColor blue |
| 69 | + Invoke-WebRequest -Uri $MICRO_REF -OutFile "$env:TEMP\micro.zip" |
| 70 | + Extract-ZipFile "$env:TEMP\micro.zip" "$MD" |
| 71 | + Rename-Item "$MD\micro-*" "micro" |
| 72 | + Write-Host "`n--- MICRO downloaded ---" -ForegroundColor green |
| 73 | +} |
| 74 | + |
| 75 | +function Get-VIPManager { |
| 76 | + Write-Host "`n--- Download VIP-MANAGER ---" -ForegroundColor blue |
| 77 | + Invoke-WebRequest -Uri $VIP_REF -OutFile "$env:TEMP\vip.zip" |
| 78 | + Extract-ZipFile "$env:TEMP\vip.zip" "$MD" |
| 79 | + Rename-Item "$MD\vip-manager*" "vip-manager" |
| 80 | + Remove-Item "$MD\vip-manager\*.yml" -ErrorAction Ignore |
| 81 | + Copy-Item "src\vip.yaml" "$MD\vip-manager" |
| 82 | + Write-Host "`n--- VIP-MANAGER downloaded ---" -ForegroundColor green |
| 83 | +} |
| 84 | + |
| 85 | +function Get-PostgreSQL { |
| 86 | + Write-Host "`n--- Download POSTGRESQL ---" -ForegroundColor blue |
| 87 | + # Example: prompt for credentials if not already set |
| 88 | + if (-not $PGSQL_CREDENTIAL) { |
| 89 | + $global:PGSQL_CREDENTIAL = Get-Credential -Message "Enter credentials for PostgreSQL download" |
| 90 | + } |
| 91 | + Invoke-WebRequest -Uri $PGSQL_REF -OutFile "$env:TEMP\pgsql.zip" -Credential $PGSQL_CREDENTIAL |
| 92 | + Extract-ZipFile "$env:TEMP\pgsql.zip" "$MD" |
| 93 | + Remove-Item -Recurse -Force "$MD\pgsql\pgAdmin 4", "$MD\pgsql\symbols" -ErrorAction Ignore |
| 94 | + Write-Host "`n--- POSTGRESQL downloaded ---" -ForegroundColor green |
| 95 | +} |
| 96 | + |
| 97 | +function Get-Patroni { |
| 98 | + Write-Host "`n--- Download PATRONI ---" -ForegroundColor blue |
| 99 | + Invoke-WebRequest -Uri $PATRONI_REF -OutFile "$env:TEMP\patroni.zip" |
| 100 | + Extract-ZipFile "$env:TEMP\patroni.zip" "$MD" |
| 101 | + Rename-Item "$MD\patroni-*" "patroni" |
| 102 | + Remove-Item "$MD\patroni\postgres?.yml" -ErrorAction Ignore |
| 103 | + Copy-Item "src\patroni.yaml" "$MD\patroni" |
| 104 | + Write-Host "`n--- PATRONI downloaded ---" -ForegroundColor green |
| 105 | +} |
| 106 | + |
| 107 | +function Update-PythonAndPIP { |
| 108 | + Write-Host "`n--- Update Python and PIP installation ---" -ForegroundColor blue |
| 109 | + & "./install-python.ps1" |
| 110 | + Move-Item "python-install.exe" "$MD" |
| 111 | + Write-Host "`n--- Python and PIP installation updated ---" -ForegroundColor green |
| 112 | +} |
| 113 | + |
| 114 | +function Get-PatroniPackages { |
| 115 | + Write-Host "`n--- Download PATRONI packages ---" -ForegroundColor blue |
| 116 | + Set-Location "$MD\patroni" |
| 117 | + & $PIP download -r requirements.txt -d .patroni-packages |
| 118 | + & $PIP download pip pip_install setuptools wheel cdiff psycopg psycopg-binary -d .patroni-packages |
| 119 | + Set-Location -Path "..\.." |
| 120 | + Write-Host "`n--- PATRONI packages downloaded ---" -ForegroundColor green |
| 121 | +} |
| 122 | + |
| 123 | +function Get-WinSW { |
| 124 | + Write-Host "`n--- Download WINSW ---" -ForegroundColor blue |
| 125 | + Invoke-WebRequest -Uri $WINSW_REF -OutFile "$MD\patroni\patroni_service.exe" |
| 126 | + Copy-Item "src\patroni_service.xml" "$MD\patroni" |
| 127 | + Copy-Item "$MD\patroni\patroni_service.exe" "$MD\etcd\etcd_service.exe" -Force |
| 128 | + Copy-Item "src\etcd_service.xml" "$MD\etcd" |
| 129 | + Copy-Item "$MD\patroni\patroni_service.exe" "$MD\vip-manager\vip_service.exe" -Force |
| 130 | + Copy-Item "src\vip_service.xml" "$MD\vip-manager" |
| 131 | + Write-Host "`n--- WINSW downloaded ---" -ForegroundColor green |
| 132 | +} |
| 133 | + |
| 134 | +function Export-Assets { |
| 135 | + Write-Host "`n--- Prepare archive ---" -ForegroundColor blue |
| 136 | + Compress-ToZipFile "$MD" "$MD.zip" |
| 137 | + Write-Host "`n--- Archive compressed ---" -ForegroundColor green |
| 138 | +} |
0 commit comments