Files
rgb-led-strip-controller/scripts
fristy c9e643d617 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
2026-09-04 23:31:11 +03:00
..

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).