Wydania i podpisywanie kodu
Oficjalne wydania aplikacji Desktop oraz plików binarnych CLI Speedwave są publikowane w serwisie GitHub Releases. Cały proces wersjonowania semantycznego, kompilacji oraz podpisywania kodu jest zautomatyzowany za pomocą GitHub Actions.
Cykl wydań na gałęziach
Dział zatytułowany „Cykl wydań na gałęziach”Bieżące prace programistyczne prowadzone są na gałęzi dev. Zmiany trafiają na gałąź main za pośrednictwem pull requestów z tytułami zgodnymi ze standardem Conventional Commits (feat:, fix: itp.):
flowchart TD Feature["Gałąź feat/fix"] --> Dev["Gałąź dev"] Dev --> Main["Gałąź main"] Main --> RP["Pull Request Release Please (Podbicie wersji i changelog)"] RP --> Merge["Scalenie do main"] Merge --> GH["Wydanie GitHub Release + Tag + Podpisane binaria"]
- Każde scalenie do
mainanalizuje historię commitów i wyzwala automat Release Please. - Release Please generuje lub aktualizuje roboczy Pull Request wydania, wyliczając kolejny numer wersji semantycznej (
major,minor,patch) oraz aktualizującCHANGELOG.md. - Scalenie tego pull requesta tworzy oznaczony tagiem szkic (draft) wydania w GitHub Releases.
Procedura poprawek pilnych (Hotfix)
Dział zatytułowany „Procedura poprawek pilnych (Hotfix)”W przypadku wydań awaryjnych:
- Utwórz gałąź
hotfix/<opis>bezpośrednio z gałęzimain. - Wprowadź zmiany i zatwierdź je commitem
fix(scope): .... - Scal gałąź hotfix do
main, co umożliwi automatowi wygenerowanie wydania typu patch. - Wykonaj cherry-pick wprowadzonych zmian z powrotem na gałąź
dev.
Kompilacja i podpisywanie cyfrowe
Dział zatytułowany „Kompilacja i podpisywanie cyfrowe”Scalenie pull requesta wydania uruchamia potok desktop-release.yml:
- Paczki aplikacji macOS: Kompiluje uniwersalne pliki wykonywalne (ARM64 i x86_64). Wszystkie dołączone binaria Mach-O (CLI, środowisko Node.js, moduły w języku Swift) są podpisywane certyfikatem Apple Developer ID Application z flagami Hardened Runtime, po czym następuje automatyczna notaryzacja w systemie Apple.
- Instalatory Windows: Kompilacja 64-bitowych pakietów instalacyjnych z podpisami Authenticode.
- Manifesty aktualizatora Tauri: Podpisywanie manifestów aktualizacji przy użyciu odrębnego klucza prywatnego Ed25519.
- Archiwa CLI: Kompilacja skrośna samodzielnych binarek CLI dla systemów macOS (ARM64/x86_64) oraz Windows (x86_64).
Przed opublikowaniem wydania zautomatyzowany skrypt weryfikuje obecność wszystkich oczekiwanych plików binarnych, sum kontrolnych SHA-256 oraz podpisów cyfrowych. Szczegóły bezpieczeństwa opisano w rozdziale Autentyczność plików binarnych.