Release v1.4.5 #74
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: Create Release | |
| on: | |
| push: | |
| tags: | |
| - 'v*.*.*' # Triggers on version tags like v1.0.0 | |
| jobs: | |
| build-and-release: | |
| runs-on: windows-latest | |
| permissions: | |
| contents: write | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup .NET 8 | |
| uses: actions/setup-dotnet@v4 | |
| with: | |
| dotnet-version: 8.0.x | |
| - name: Restore dependencies | |
| run: dotnet restore BlueMeter.sln | |
| - name: Build solution | |
| run: dotnet build BlueMeter.sln --configuration Release --no-restore | |
| - name: Publish application | |
| run: dotnet publish BlueMeter.WPF/BlueMeter.WPF.csproj --configuration Release --output publish --no-build | |
| - name: Install Inno Setup | |
| run: | | |
| choco install innosetup -y --no-progress | |
| # Wait for installation to complete | |
| Start-Sleep -Seconds 5 | |
| shell: pwsh | |
| - name: Build Inno Setup Installer (BEFORE reorganizing publish folder) | |
| run: | | |
| $isccPath = "C:\Program Files (x86)\Inno Setup 6\ISCC.exe" | |
| if (-not (Test-Path $isccPath)) { | |
| Write-Host "ISCC not found at $isccPath, checking alternative paths..." | |
| $isccPath = Get-ChildItem -Path "C:\Program Files*" -Filter "ISCC.exe" -Recurse -ErrorAction SilentlyContinue | Select-Object -First 1 -ExpandProperty FullName | |
| if (-not $isccPath) { | |
| throw "Inno Setup ISCC.exe not found!" | |
| } | |
| } | |
| Write-Host "Using ISCC at: $isccPath" | |
| & $isccPath setup\Installer.iss /DSourcePath="${{ github.workspace }}" /O+ | |
| shell: pwsh | |
| - name: Organize publish folder | |
| run: | | |
| # Create lib folder for DLLs | |
| New-Item -ItemType Directory -Path publish/lib -Force | Out-Null | |
| # Move DLLs to lib folder | |
| Get-ChildItem publish/*.dll | Move-Item -Destination publish/lib/ | |
| # Move other runtime files to lib | |
| Get-ChildItem publish/*.pdb | Move-Item -Destination publish/lib/ | |
| # Keep only essential files in root | |
| Copy-Item setup.bat publish/ | |
| Copy-Item launcher.bat publish/ | |
| Copy-Item BlueMeter.WPF publish/ -Recurse | |
| Copy-Item BlueMeter.Core publish/ -Recurse | |
| Copy-Item BlueMeter.Assets publish/ -Recurse | |
| Copy-Item BlueMeter.sln publish/ | |
| Copy-Item Directory.Packages.props publish/ | |
| shell: pwsh | |
| - name: Create ZIP archive | |
| run: | | |
| $publishPath = Resolve-Path publish | |
| Compress-Archive -Path $publishPath\* -DestinationPath BlueMeter-${{ github.ref_name }}-windows-x64.zip -Force | |
| shell: pwsh | |
| - name: Create Release | |
| uses: softprops/action-gh-release@v1 | |
| with: | |
| files: | | |
| BlueMeter-${{ github.ref_name }}-windows-x64.zip | |
| setup/Output/BlueMeterSetup.exe | |
| body: | | |
| ## BlueMeter ${{ github.ref_name }} | |
| ### 🚀 Installation Options | |
| #### Option 1: Professional Installer (Recommended for most users) | |
| 1. Download `BlueMeterSetup.exe` | |
| 2. Double-click to run the installer | |
| 3. Follow the setup wizard | |
| 4. .NET 8.0 will be automatically installed if needed | |
| 5. BlueMeter will launch automatically after installation | |
| #### Option 2: Portable Build (For developers/advanced users) | |
| 1. Download `BlueMeter-${{ github.ref_name }}-windows-x64.zip` | |
| 2. Extract the ZIP file | |
| 3. Double-click `setup.bat` | |
| 4. The script will build and launch BlueMeter | |
| ### Requirements | |
| - Windows 10 or later (x64) | |
| - .NET 8.0 (auto-installed by both installation methods) | |
| ### Troubleshooting | |
| See `INSTALL.md` for detailed instructions and troubleshooting. | |
| ### Changelog | |
| See commits since last release for changes. | |
| draft: false | |
| prerelease: false | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |