Initial commit: RGB LED Strip Controller v0.3.0

- 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
This commit is contained in:
fristy committed 2026-09-04 23:31:11 +03:00
commit c9e643d617
40 files changed
+5411

No files matched your search

+48
View File
@@ -0,0 +1,48 @@
# Scripts
## Structure
- `release/`
- `package-velopack.ps1`: Gitea version guard + build + package release assets + optional Authenticode signing + installer icon
- `upload-feed.ps1`: `vpk upload gitea` ile Gitea Releases'e hedefli upload
- `version/`
- `bump-version.ps1`: bump `major.minor.patch` version fields in the app project
## Prerequisites
- .NET 8 SDK (`actions/setup-dotnet` CI'da kurar, localde PATH'te `dotnet` olmali)
- Repo-local `vpk` tool: `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 -Patch`
- `powershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts/version/bump-version.ps1 -Minor`
- `powershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts/version/bump-version.ps1 -Major`
- `powershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts/release/package-velopack.ps1 -SkipSigning`
- `powershell.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**: `-PfxPath` verilmezse uyariyla atlanir.
- Acmak icin `-PfxPath <cert.pfx>` ver; PFX sifresi interaktif sorulur, script icinde saklanmaz.
- Timestamp (TSA) kullanilmiyor; gerekirse global bir TSA servisiyle `-SignToolPath` akisina eklenebilir.
- v0.3.0 stratejisi: GPG imzali git tag + Gitea release hash'leri yeterli.
## Packaging Guard
- `scripts/release/package-velopack.ps1` Gitea 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 `-SkipCloudCheck` kullanilabilir.
- Varsayilan installer ikonu `src/RgbLedStripController/Assets/AppIcon.ico` dosyasindan `vpk pack --icon` ile verilir.
## Upload Guard
- `scripts/release/upload-feed.ps1` yerel release manifest'ini okur, `full/delta .nupkg` + `Setup.exe` / `Portable.zip` varligini preflight olarak dogrular.
- `-Token` verilmezse `VPK_TOKEN` env kullanilir; ikisi de yoksa durur.
- Hedef tag (`v<version>`) Gitea'da varsa upload durdurulur (`-Merge` ile mevcut release'e birlestirilebilir).
- `-ExpectedTag` verilirse turetilen tag ile karsilastirilir (CI'da tag/csproj tutarliligi icin).
- `-WhatIf` ile dry-run yapilabilir.
- Basarili oldugunda Gitea release linkini ekrana yazar.
## CI (Gitea Actions)
- Workflow: `.gitea/workflows/ci.yml` — `build`, `test`, `release` job'lari.
- `windows` etiketli runner gerekir (WPF sadece Windows'ta derlenir).
- NuGet cache adimi `continue-on-error: true` — cache servisi yoksa build kirilmaz.
- `release` job'u sadece `v*` tag'lerinde calisir, `-SkipSigning` ile paketler.
- Gerekli repo secret: `VPK_TOKEN` (Gitea API token, release yazma yetkili).