Reorganize project structure and update build process

This commit is contained in:
Alphaeus Mote
2025-04-28 19:38:38 -04:00
parent 7dddca927c
commit c2397d3f05
21 changed files with 32 additions and 27 deletions
+2 -1
View File
@@ -1,6 +1,6 @@
@{ @{
RootModule = 'PSProxmox.dll' RootModule = 'PSProxmox.dll'
ModuleVersion = '2025.04.28.1934' ModuleVersion = '2025.04.28.1937'
GUID = 'd24f0894-3d0c-4ef1-a41e-b273c3db86ad' GUID = 'd24f0894-3d0c-4ef1-a41e-b273c3db86ad'
Author = 'PSProxmox Team' Author = 'PSProxmox Team'
CompanyName = 'PSProxmox' CompanyName = 'PSProxmox'
@@ -88,3 +88,4 @@
} }
} }
-4
View File
@@ -95,8 +95,4 @@
<None Include="..\Module\PSProxmox.psd1" CopyToOutputDirectory="Always" /> <None Include="..\Module\PSProxmox.psd1" CopyToOutputDirectory="Always" />
</ItemGroup> </ItemGroup>
<Target Name="PostBuild" AfterTargets="PostBuildEvent">
<Copy SourceFiles="$(TargetDir)$(TargetFileName)" DestinationFolder="..\Module\bin" />
</Target>
</Project> </Project>
+4
View File
@@ -188,6 +188,10 @@ Clear-ProxmoxIPPool -Name "Production"
Disconnect-ProxmoxServer -Connection $connection Disconnect-ProxmoxServer -Connection $connection
``` ```
## Documentation
For detailed documentation, see the [Documentation](Documentation) directory.
## License ## License
This project is licensed under the MIT License - see the LICENSE file for details. This project is licensed under the MIT License - see the LICENSE file for details.
+26 -22
View File
@@ -11,37 +11,41 @@ $psd1Content = Get-Content -Path $psd1Path -Raw
$psd1Content = $psd1Content -replace "ModuleVersion = '.*'", "ModuleVersion = '$version'" $psd1Content = $psd1Content -replace "ModuleVersion = '.*'", "ModuleVersion = '$version'"
Set-Content -Path $psd1Path -Value $psd1Content Set-Content -Path $psd1Path -Value $psd1Content
# Build the solution # Create the release directory structure
Write-Host "Building solution..." $releaseBaseDir = ".\Release"
dotnet build .\PSProxmox\PSProxmox.Main.csproj -c Release $releaseVersionDir = "$releaseBaseDir\$version"
$releaseBinDir = "$releaseVersionDir\bin"
# Create the release directory # Create directories if they don't exist
$releaseDir = ".\Release\$version" if (-not (Test-Path -Path $releaseBaseDir)) {
if (-not (Test-Path -Path $releaseDir)) { New-Item -Path $releaseBaseDir -ItemType Directory -Force | Out-Null
New-Item -Path $releaseDir -ItemType Directory -Force | Out-Null }
Write-Host "Created release directory: $releaseDir" if (-not (Test-Path -Path $releaseVersionDir)) {
New-Item -Path $releaseVersionDir -ItemType Directory -Force | Out-Null
Write-Host "Created release directory: $releaseVersionDir"
} }
# Copy the module files to the release directory
Copy-Item -Path .\Module\PSProxmox.psd1 -Destination $releaseDir -Force
Copy-Item -Path .\Module\bin\PSProxmox.dll -Destination $releaseDir -Force
Copy-Item -Path .\Module\LICENSE -Destination $releaseDir -Force
Copy-Item -Path .\Module\README.md -Destination $releaseDir -Force
Copy-Item -Path .\Module\Install-PSProxmox.ps1 -Destination $releaseDir -Force
# Create a bin directory in the release directory
$releaseBinDir = "$releaseDir\bin"
if (-not (Test-Path -Path $releaseBinDir)) { if (-not (Test-Path -Path $releaseBinDir)) {
New-Item -Path $releaseBinDir -ItemType Directory -Force | Out-Null New-Item -Path $releaseBinDir -ItemType Directory -Force | Out-Null
Write-Host "Created bin directory: $releaseBinDir" Write-Host "Created bin directory: $releaseBinDir"
} }
# Copy the DLL to the bin directory # Build the solution directly to the release bin directory
Copy-Item -Path .\Module\bin\PSProxmox.dll -Destination $releaseBinDir -Force Write-Host "Building solution..."
dotnet build .\PSProxmox\PSProxmox.Main.csproj -c Release -o $releaseBinDir
# Copy the module files to the release directory
Copy-Item -Path .\Module\PSProxmox.psd1 -Destination $releaseVersionDir -Force
Copy-Item -Path .\LICENSE -Destination $releaseVersionDir -Force
Copy-Item -Path .\README.md -Destination $releaseVersionDir -Force
Copy-Item -Path .\Module\Install-PSProxmox.ps1 -Destination $releaseVersionDir -Force
# Copy the fully prepared module back to the Module directory
Write-Host "Updating Module directory with built files..."
Copy-Item -Path $releaseBinDir\PSProxmox.dll -Destination .\Module\bin -Force
# Create a ZIP file of the release # Create a ZIP file of the release
$zipPath = ".\Release\PSProxmox-$version.zip" $zipPath = "$releaseBaseDir\PSProxmox-$version.zip"
Compress-Archive -Path $releaseDir\* -DestinationPath $zipPath -Force Compress-Archive -Path $releaseVersionDir\* -DestinationPath $zipPath -Force
Write-Host "Created release package: $zipPath" Write-Host "Created release package: $zipPath"
Write-Host "Build completed successfully!" Write-Host "Build completed successfully!"