refactor(architecture): decompose Program.cs and MainViewModel into m… #21
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Release Pipeline | |
| on: | |
| push: | |
| tags: | |
| - 'v*' | |
| workflow_dispatch: | |
| permissions: | |
| contents: write | |
| jobs: | |
| build-and-release: | |
| runs-on: windows-latest | |
| steps: | |
| - name: Checkout Code | |
| uses: actions/checkout@v4 | |
| - name: Setup .NET 10 SDK | |
| uses: actions/setup-dotnet@v4 | |
| with: | |
| dotnet-version: '10.0.x' | |
| - name: Run Test Suite | |
| run: dotnet test LocalLLMServerManager.sln --nologo -c Release | |
| - name: Build & Publish Avalonia WebAssembly UI | |
| shell: powershell | |
| run: | | |
| dotnet publish LocalLLMServerManager.Web/LocalLLMServerManager.Web.csproj -c Release -o wwwroot_wasm --nologo | |
| Remove-Item -Path "wwwroot\app.js" -ErrorAction SilentlyContinue | |
| Remove-Item -Path "wwwroot\index.css" -ErrorAction SilentlyContinue | |
| Remove-Item -Path "wwwroot\index.html" -ErrorAction SilentlyContinue | |
| Remove-Item -Path "wwwroot\wwwroot" -Recurse -Force -ErrorAction SilentlyContinue | |
| Copy-Item -Path "wwwroot_wasm\wwwroot\*" -Destination "wwwroot" -Recurse -Force | |
| Remove-Item -Path "wwwroot_wasm" -Recurse -Force | |
| - name: Publish Self-Contained Release (win-x64) | |
| run: | | |
| dotnet publish LocalLLMServerManager.csproj -c Release -r win-x64 --self-contained -o publish --nologo /p:PublishSingleFile=false | |
| - name: Create Release Zip Archive | |
| shell: powershell | |
| run: | | |
| New-Item -ItemType Directory -Path dist -Force | |
| Compress-Archive -Path "publish\*" -DestinationPath "dist\LocalLLMServerManager-${{ github.ref_name }}-win-x64.zip" -Force | |
| - name: Install Inno Setup | |
| run: choco install innosetup -y | |
| - name: Compile Inno Setup Installer | |
| shell: powershell | |
| run: | | |
| $iscc = "C:\Program Files (x86)\Inno Setup 6\ISCC.exe" | |
| if (-not (Test-Path $iscc)) { $iscc = "C:\Program Files\Inno Setup 6\ISCC.exe" } | |
| & "$iscc" scripts/installer.iss | |
| - name: Package Installer Executable | |
| shell: powershell | |
| run: | | |
| $setupExe = Get-ChildItem -Path . -Filter "LocalLLMServerManager-*-Setup.exe" | Select-Object -First 1 | |
| if ($setupExe) { | |
| Move-Item -Path $setupExe.FullName -Destination "dist\LocalLLMServerManager-${{ github.ref_name }}-Setup.exe" -Force | |
| } | |
| - name: Create GitHub Release | |
| uses: softprops/action-gh-release@v2 | |
| if: startsWith(github.ref, 'refs/tags/') | |
| with: | |
| files: | | |
| dist/*.zip | |
| dist/*.exe | |
| generate_release_notes: true | |
| draft: false | |
| prerelease: false | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |