Hoppa till innehåll

Releaser

Varje artefakt som byggs från det här repot har en motsvarande post på GitHubs Releases-sida. Den sidan är den auktoritativa källan för vad som har släppts, när, och vad som ändrats.

Alla releaser — webbappar, API:et och nativa appar — listas på github.com/jonot-io/jonot/releases.

Nativa appar — semantiska versionstaggar, som skjuts manuellt av ingenjören som skapar releasen:

  • apps/host (skrivbord): host-v<semver> — t.ex. host-v1.2.3
  • apps/native-kiosk: android-kiosk-v<semver> — t.ex. android-kiosk-v1.4.0
  • apps/native-desk: android-desk-v<semver> — t.ex. android-desk-v1.4.0

Webbappar och API — tidsstämplade löpande markörer som skapas automatiskt efter varje lyckad produktionsdeploy:

  • apps/api (Worker): api-r<YYYYMMDD-HHMM>-<sha7> — t.ex. api-r20260523-1542-abc1234
  • Webb-SPA:er (9 appar): web-<app>-r<YYYYMMDD-HHMM>-<sha7> — t.ex. web-admin-r20260523-1542-abc1234

Nativa appar (host, android-kiosk, android-desk)

Section titled “Nativa appar (host, android-kiosk, android-desk)”

Releaser för nativa artefakter utlöses genom att skjuta en tagg som matchar artefaktens prefix. CI-arbetsflödet bygger, signerar och publicerar till rätt butik, och skapar sedan en GitHub Release med bifogade binärer.

Så här skapar du en release:

Terminal window
git tag host-v1.0.0
git push origin host-v1.0.0

Ersätt host med android-kiosk eller android-desk efter behov, och uppdatera versionen så att den matchar posten versionName / libs.versions.toml i appen.

Varje GitHub Release för en nativ app innehåller:

  • android-kiosk / android-desk — signerad AAB, ProGuard-mappning och Play Store-ändringsloggen (whatsnew-en-US.txt).
  • host.deb, .rpm, SHA256SUMS och SHA256SUMS.asc (GPG-signerad).

Pushar till main driftsätts automatiskt till development-miljön. Produktion promoveras genom att tvinga en flyttbar release-tagg till önskad commit och pusha den:

Terminal window
# Skicka allt (alla nio SPA:er + API):
git tag -f release <sha> && git push -f origin release
# Skicka bara API:et:
git tag -f release-api <sha> && git push -f origin release-api
# Skicka en enskild SPA (t.ex. admin):
git tag -f release-admin <sha> && git push -f origin release-admin

Paraplytaggen release skickar alla nio SPA:er och API:et i en enda push, vilket kringgår GitHubs begränsning som undertrycker CI när fler än tre taggar pushas samtidigt. Okända taggnamn får resolve-steget att misslyckas i stället för att driftsättas i det tysta.

En release-markör web-<app>-r… eller api-r… skapas efter varje lyckad produktionsdeploy och taggas --prerelease så att den inte förskjuter den nativa semver-”Latest release”-märkningen. De här markörerna är den auktoritativa ändringsloggen — poster över vad som skickats, inte grindar.

API-releasen bifogar också en tillgång migrations.txt som listar varje D1-migreringsfil som finns i den commiten, så du kan svara på “skickades migrering N?” direkt från Releases-gränssnittet.

Versionsanteckningar genereras automatiskt av GitHub från de sammanslagna pull request-titlarna mellan föregående release-tagg och den aktuella. Conventional Commit-prefix (feat:, fix:, perf:, …) i PR-titlar grupperar ändringarna visuellt i anteckningarnas innehåll.