- WPF + WinRT BLE controller for ELK-BLEDOM compatible LED strips - Multi-device control, effects, grayscale and temperature modes - Velopack updates via Gitea Releases, Gitea Actions CI
2.9 KiB
2.9 KiB
Scripts
Structure
release/package-velopack.ps1: Gitea version guard + build + package release assets + optional Authenticode signing + installer iconupload-feed.ps1:vpk upload giteaile Gitea Releases'e hedefli upload
version/bump-version.ps1: bumpmajor.minor.patchversion fields in the app project
Prerequisites
- .NET 8 SDK (
actions/setup-dotnetCI'da kurar, localde PATH'tedotnetolmali) - Repo-local
vpktool:dotnet tool restore(manifest:.config/dotnet-tools.json, vpk 0.0.1298)
Common Commands
powershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts/version/bump-version.ps1 -Patchpowershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts/version/bump-version.ps1 -Minorpowershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts/version/bump-version.ps1 -Majorpowershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts/release/package-velopack.ps1 -SkipSigningpowershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts/release/package-velopack.ps1 -PfxPath <cert.pfx>$env:VPK_TOKEN = "<gitea-token>"; powershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts/release/upload-feed.ps1
Signing
- Authenticode signing varsayilan olarak pasif:
-PfxPathverilmezse uyariyla atlanir. - Acmak icin
-PfxPath <cert.pfx>ver; PFX sifresi interaktif sorulur, script icinde saklanmaz. - Timestamp (TSA) kullanilmiyor; gerekirse global bir TSA servisiyle
-SignToolPathakisina eklenebilir. - v0.3.0 stratejisi: GPG imzali git tag + Gitea release hash'leri yeterli.
Packaging Guard
scripts/release/package-velopack.ps1Gitea Releases API uzerinden cloud surumu kontrol eder.- Gitea'da ayni surum (tag
v<version>) varsa paketleme durdurulur. - Gitea'daki surum daha yuksekse paketleme durdurulur.
- API'ye erisilemiyorsa fail-fast durur; offline paketleme icin
-SkipCloudCheckkullanilabilir. - Varsayilan installer ikonu
src/RgbLedStripController/Assets/AppIcon.icodosyasindanvpk pack --iconile verilir.
Upload Guard
scripts/release/upload-feed.ps1yerel release manifest'ini okur,full/delta .nupkg+Setup.exe/Portable.zipvarligini preflight olarak dogrular.-TokenverilmezseVPK_TOKENenv kullanilir; ikisi de yoksa durur.- Hedef tag (
v<version>) Gitea'da varsa upload durdurulur (-Mergeile mevcut release'e birlestirilebilir). -ExpectedTagverilirse turetilen tag ile karsilastirilir (CI'da tag/csproj tutarliligi icin).-WhatIfile dry-run yapilabilir.- Basarili oldugunda Gitea release linkini ekrana yazar.
CI (Gitea Actions)
- Workflow:
.gitea/workflows/ci.yml—build,test,releasejob'lari. windowsetiketli runner gerekir (WPF sadece Windows'ta derlenir).- NuGet cache adimi
continue-on-error: true— cache servisi yoksa build kirilmaz. releasejob'u sadecev*tag'lerinde calisir,-SkipSigningile paketler.- Gerekli repo secret:
VPK_TOKEN(Gitea API token, release yazma yetkili).