コンテンツにスキップ

リリース

このリポジトリからビルドされるすべての成果物は、GitHub Releasesページに対応するエントリを持ちます。このページが、何がいつ出荷され、何が変わったかを示す公式のフィードです。

Webアプリ・API・ネイティブアプリを含むすべてのリリースは、github.com/jonot-io/jonot/releasesに一覧表示されます。

ネイティブアプリ — リリースを担当するエンジニアが手動でプッシュするセマンティックバージョンタグです。

  • apps/host(デスクトップ): host-v<semver> — 例: host-v1.2.3
  • apps/native-kiosk: android-kiosk-v<semver> — 例: android-kiosk-v1.4.0
  • apps/native-desk: android-desk-v<semver> — 例: android-desk-v1.4.0

Webアプリ・API — 本番デプロイが成功するたびに自動生成されるタイムスタンプ付きのローリングマーカーです。

  • apps/api(Worker): api-r<YYYYMMDD-HHMM>-<sha7> — 例: api-r20260523-1542-abc1234
  • Web SPA(9アプリ): web-<app>-r<YYYYMMDD-HHMM>-<sha7> — 例: web-admin-r20260523-1542-abc1234

ネイティブアプリ(host、android-kiosk、android-desk)

Section titled “ネイティブアプリ(host、android-kiosk、android-desk)”

ネイティブ成果物のリリースは、成果物のプレフィックスに一致するタグをプッシュすることでトリガーされます。CIワークフローがビルド・署名を行い、対応するストアに公開した後、バイナリを添付したGitHub Releaseを作成します。

リリースを作成する手順:

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

hostの部分は必要に応じてandroid-kioskまたはandroid-deskに置き換え、バージョン番号はアプリ内のversionName / libs.versions.tomlのエントリに合わせて更新してください。

ネイティブアプリの各GitHub Releaseには、次の内容が含まれます。

  • android-kiosk / android-desk — 署名済みAAB、ProGuardマッピング、Playストアの変更履歴(whatsnew-en-US.txt)。
  • host.deb.rpmSHA256SUMS、および(GPG署名済みの)SHA256SUMS.asc

mainへのプッシュは**開発(development)**環境に自動デプロイされます。**本番(production)**への昇格は、可動式のリリースタグを目的のコミットへ強制移動してプッシュすることで行います。

Terminal window
# すべてを出荷(9つのSPA + API):
git tag -f release <sha> && git push -f origin release
# APIのみを出荷:
git tag -f release-api <sha> && git push -f origin release-api
# 単一のSPAを出荷(例: admin):
git tag -f release-admin <sha> && git push -f origin release-admin

包括的なreleaseタグは、9つのSPAとAPIすべてを1回のプッシュで出荷し、一度に3つを超えるタグをプッシュするとCIが抑制されるGitHubの制限を回避します。認識されないタグ名は、サイレントにデプロイされるのではなく、解決ステップで失敗します。

本番デプロイが成功するたびにweb-<app>-r…またはapi-r…のリリースマーカーが作成され、--prereleaseとしてタグ付けされます。これはネイティブのセマンティックバージョンによる「Latest release」バッジを置き換えないようにするためです。これらのマーカーは公式の変更履歴であり、何が出荷されたかの記録であって、ゲートではありません。

APIのリリースには、そのコミット時点に存在するすべてのD1マイグレーションファイルを一覧化したmigrations.txtアセットも添付されます。これにより、「マイグレーションNは出荷済みか」をReleases画面から確認できます。

リリースノートは、前回のリリースタグから今回のリリースタグまでにマージされたプルリクエストのタイトルから、GitHubによって自動生成されます。PRタイトル内のConventional Commitsのプレフィックス(feat:fix:perf:など)によって、ノート本文内で変更内容が視覚的にグループ化されます。