Skip to content

feat: Raspberry Piデプロイ対応とリリースビルドワークフロー追加#17

Merged
Atsumi3 merged 3 commits intomainfrom
feature/raspberry-pi-deployment
Oct 3, 2025
Merged

feat: Raspberry Piデプロイ対応とリリースビルドワークフロー追加#17
Atsumi3 merged 3 commits intomainfrom
feature/raspberry-pi-deployment

Conversation

@Atsumi3
Copy link
Member

@Atsumi3 Atsumi3 commented Oct 3, 2025

概要

Raspberry Pi (3/4/5, Zero W) へのデプロイを可能にし、GitHub Actionsで自動的にビルド済みJARファイルを生成・配布できるようにしました。さらに、設定画面にレシートのテスト印刷機能を追加し、実際にRaspberry Pi Zero Wにデプロイして動作検証を完了しました。

変更内容

1. README.md にRaspberry Piデプロイセクションを追加

  • 対応ハードウェア: Raspberry Pi 3/4/5, Zero W/2W
  • システム要件: Java 21, メモリ512MB以上
  • デプロイ方法:
    • ビルド済みバイナリの使用(推奨)
    • ソースからビルド
  • Systemdサービス設定: 自動起動の設定手順
  • トラブルシューティング: ポート、メモリ、ファイアウォール設定
  • パフォーマンスチューニング: Raspberry Pi最適化設定

2. GitHub Actionsワークフロー追加 (.github/workflows/release-build.yml)

  • 手動実行: GitHub Actions UIから「Run workflow」で実行可能
  • 自動リリース: v* タグをプッシュすると自動的にGitHub Releaseを作成
  • アーティファクト: ビルド済みJARファイルを90日間保持
  • リリース情報: デプロイ手順を含む release-info.txt を自動生成

3. レシートテスト印刷機能の実装

API層 (SettingApiController.kt)

  • POST /api/setting/printer/{storeId}/test エンドポイントを追加
  • テスト印刷の成功/失敗レスポンスを返す

サービス層 (SettingService.kt)

  • testPrintReceipt(storeId) メソッドを実装
  • 店舗IDからプリンタ設定を取得
  • サンプルレシート(テスト商品3点)を生成して印刷

UI改善 (settings/index.html)

  • 店舗選択機能: 登録済み店舗をドロップダウンで選択
  • 店舗未登録時の対応: 警告メッセージを表示
  • ボタン制御: 店舗選択前はボタンを無効化
  • ローディング表示: 印刷中のスピナー表示

4. Raspberry Pi実デプロイドキュメント (docs/raspberry-pi-deployment.md)

実際にRaspberry Pi Zero Wにデプロイした詳細な手順を記録:

  • 検証済み環境: Raspberry Pi Zero W, Raspberry Pi OS (Debian Trixie), Java 21
  • 完全な手順: Java 21インストール、JARファイル転送、Systemdサービス設定
  • パフォーマンス情報: 起動時間約6分、メモリ使用量300-400MB
  • 運用管理: サービス管理コマンド、ログ確認方法
  • トラブルシューティング: 実際に発生した問題と解決方法
  • 自動起動検証: 再起動テストの結果

実証済みの動作環境

Raspberry Pi Zero W で動作検証完了

  • ホスト: kidspos-server.local
  • IPアドレス: 192.168.100.10
  • Java: OpenJDK 21.0.8
  • 起動時間: 約6分
  • 自動起動: 正常動作確認済み

利点

  • 教育機関が低コストでKidsPOSを展開可能
  • 技術的な知識が少ない管理者でも簡単にデプロイ可能
  • GitHub Actionsからビルド済みバイナリをダウンロードできるため、ビルド環境不要
  • プリンタ設定のテスト機能により、設置後すぐに動作確認可能
  • 実際のデプロイ手順が詳細にドキュメント化されており、再現性が高い

テスト計画

  • GitHub Actionsワークフローが正常に動作することを確認
  • 生成されたJARファイルがRaspberry Piで動作することを確認
  • Systemdサービス設定が正常に機能することを確認
  • 自動起動が正常に動作することを確認(再起動テスト実施)
  • レシートテスト印刷機能が動作することを確認

スクリーンショット

なし

関連Issue

なし

README.mdにRaspberry Pi (3/4/5, Zero W)へのデプロイ手順を追加し、
GitHub Actionsでビルド済みJARファイルを生成・配布できるようにしました。

変更内容:
- README.mdにRaspberry Piデプロイセクションを追加
  - 対応ハードウェアとシステム要件
  - Java 21インストール手順
  - デプロイ方法(ビルド済みバイナリ/ソースビルド)
  - Systemdサービス設定(自動起動)
  - トラブルシューティングガイド
  - パフォーマンスチューニング設定

- GitHub Actionsワークフロー(release-build.yml)を追加
  - 手動実行およびタグプッシュ時の自動ビルド
  - bootJarでJARファイルを生成
  - GitHub Artifactsとして90日間保持
  - タグプッシュ時にGitHub Releaseを自動作成
  - リリース情報ファイルの自動生成

これにより、教育機関が低コストでKidsPOSを展開できるようになります。
@github-actions
Copy link
Contributor

github-actions bot commented Oct 3, 2025

🎨 Visual Regression Test Results

All visual regression tests passed!

All page screenshots match the expected baselines.

📊 Test Coverage

  • Desktop (1280x720)
  • Tablet (iPad)
  • Mobile (iPhone 13)

設定画面にレシートのテスト印刷機能を実装し、実際にRaspberry Pi Zero Wに
デプロイした手順を詳細にドキュメント化しました。

変更内容:
- レシートテスト印刷機能の実装
  - 設定画面に店舗選択とテスト印刷ボタンを追加
  - 店舗が未登録の場合は警告メッセージを表示
  - POST /api/setting/printer/{storeId}/test エンドポイント追加
  - サンプルレシート(テスト商品3点)を生成して印刷

- Raspberry Pi実デプロイドキュメント作成
  - docs/raspberry-pi-deployment.md を追加
  - Raspberry Pi Zero Wへの実際のデプロイ手順を記録
  - Java 21インストール、Systemdサービス設定、自動起動設定
  - パフォーマンス情報(起動時間約6分)
  - 運用管理コマンド、トラブルシューティング

技術詳細:
- テスト印刷は選択された店舗のプリンタ設定を使用
- 店舗未登録時はボタンを無効化(UX改善)
- Raspberry Pi Zero W環境で動作検証済み
bootJarで生成されるJARファイル名が server-*.jar なので、
ワークフローのファイル検索パターンを修正しました。
@github-actions
Copy link
Contributor

github-actions bot commented Oct 3, 2025

🎨 Visual Regression Test Results

All visual regression tests passed!

All page screenshots match the expected baselines.

📊 Test Coverage

  • Desktop (1280x720)
  • Tablet (iPad)
  • Mobile (iPhone 13)

1 similar comment
@github-actions
Copy link
Contributor

github-actions bot commented Oct 3, 2025

🎨 Visual Regression Test Results

All visual regression tests passed!

All page screenshots match the expected baselines.

📊 Test Coverage

  • Desktop (1280x720)
  • Tablet (iPad)
  • Mobile (iPhone 13)

@Atsumi3 Atsumi3 merged commit dd141d8 into main Oct 3, 2025
4 checks passed
@Atsumi3 Atsumi3 deleted the feature/raspberry-pi-deployment branch October 3, 2025 18:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant