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:
40 files changed
+5411
No files matched your search
@@ -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).
|
||||
Reference in new issue
Block a user