Files
rgb-led-strip-controller/scripts/release/package-velopack.ps1
T
fristy 9fbe46ca82
CI / build (push) Successful in 1m4s
CI / test (push) Successful in 40s
CI / release (push) Failing after 46s
ci: add Velopack packaging script and release job
- scripts/release/package-velopack.ps1: self-contained publish + vpk pack
- release job: runs package-velopack.ps1, uploads Setup.exe + Portable.zip
- Artifact names: RGBLedStripController-Setup-<tag>-win-x64, RGBLedStripController-Portable-<tag>-win-x64
2026-09-05 02:12:09 +03:00

84 lines
2.6 KiB
PowerShell
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<#
.SYNOPSIS
Velopack ile Setup.exe üretimi. Self-contained publish alıp vpk pack yapar.
.DESCRIPTION
1. Proje dosyasından sürüm okur
2. dotnet publish (self-contained, single-file, win-x64)
3. vpk pack ile Setup.exe ve Portable.zip üretir
4. Çıktı: artifacts/velopack/win-x64-stable/
.NOTES
Velopack CLI: dotnet tool restore ile yüklenen vpk kullanılır
Icon: Assets/AppIcon.ico (installer ikonu)
#>
param(
[switch]$WhatIf
)
$ErrorActionPreference = "Stop"
$scriptDir = Split-Path -Parent $MyInvocation.MyCommand.Definition
$repoRoot = Split-Path -Parent (Split-Path -Parent $scriptDir)
$projPath = Join-Path $repoRoot "src\RgbLedStripController\RgbLedStripController.csproj"
$iconPath = Join-Path $repoRoot "src\RgbLedStripController\Assets\AppIcon.ico"
$publishDir = Join-Path $repoRoot "artifacts\publish\win-x64"
$velopackDir = Join-Path $repoRoot "artifacts\velopack\win-x64-stable"
# Sürümü csproj'dan oku
$projXml = [xml](Get-Content $projPath)
$version = $projXml.Project.PropertyGroup.Version
if (-not $version) { throw "Version not found in csproj" }
Write-Host "Version: $version" -ForegroundColor Cyan
# Publish output klasörü
$stagedPublishDir = Join-Path $publishDir $version
if (-not $WhatIf) {
if (Test-Path $stagedPublishDir) { Remove-Item -Recurse -Force $stagedPublishDir }
} else {
Write-Host "[WhatIf] Would clean: $stagedPublishDir"
}
# 1. dotnet publish
$publishArgs = @(
"publish", $projPath
"-c", "Release"
"-r", "win-x64"
"--self-contained", "true"
"-p:PublishSingleFile=true"
"-p:PublishTrimmed=false"
"-p:IncludeNativeLibrariesForSelfExtract=true"
"-p:DebugType=none"
"-p:DebugSymbols=false"
"--configfile", (Join-Path $repoRoot "NuGet.Config")
"-o", $stagedPublishDir
)
Write-Host "dotnet publish..." -ForegroundColor Cyan
if (-not $WhatIf) {
& dotnet $publishArgs
} else {
Write-Host "[WhatIf] dotnet $publishArgs"
}
# 2. vpk pack
$vpkArgs = @(
"pack",
"--output-dir", $velopackDir,
"--pack-id", "Fristy.RgbLedStripController",
"--pack-title", "RGB Led Strip Controller",
"--pack-authors", "fristy",
"--pack-version", $version,
"--icon", $iconPath,
$stagedPublishDir
)
Write-Host "vpk pack..." -ForegroundColor Cyan
if (-not $WhatIf) {
& dotnet tool run vpk $vpkArgs
} else {
Write-Host "[WhatIf] dotnet tool run vpk $vpkArgs"
}
Write-Host "Done. Output: $velopackDir" -ForegroundColor Green
if (-not $WhatIf) {
Get-ChildItem $velopackDir | ForEach-Object { Write-Host " $($_.Name) - $([math]::Round($_.Length/1MB,2)) MB" }
}