frindlymap/wiki/05 빌드 · 시험 · 저장소.md

2.2 KiB

빌드 · 시험 · 저장소

Mac Pro 2013. Flutter 는 직접 설치하지 않고 podman 컨테이너로 쓴다(프로젝트는 홈 폴더 안에 있어야 podman machine 이 공유). 먼저 podman machine start.

podman run --rm -v "$PWD":/app -v fm-gradle:/root/.gradle -v fm-pub:/root/.pub-cache -w /app ghcr.io/cirruslabs/flutter:stable bash
python3 tool/android_patch.py
flutter pub get && flutter analyze && flutter test
flutter build apk --debug   # build/app/outputs/flutter-apk/app-debug.apk
flutter test test_ux/shots_test.dart --update-goldens   # 화면 캡처 test_ux/shots/
  • 빌드할 때 시험을 같이 돌리지 않는다(podman 머신 8GB, Gradle 데몬이 꺼진 적 있음).
  • 푸시: git push origin main 단독 명령(샌드박스 제외 설정). Gitea 토큰은 키체인.
  • VS Code 터미널의 git 은 아이디를 창 맨 위 입력칸으로 묻는다.

처음 준비 (android/ 가 없을 때)

flutter create --platforms=android --org com.friendlymap --project-name friendly_map .
python3 tool/android_patch.py      # 권한·수신기·desugaring·minSdk 23 (여러 번 돌려도 같음)

시험

tool/test_module.sh            # 모듈 목록
tool/test_module.sh groups     # 모듈 하나만
flutter test                   # 전체
python3 tool/check_modules.py  # 줄 수·import 방향
cd server && python3 -m unittest test_mailbox test_verify   # 보관함 서버
  • 보관함 서버(선택): 보관함 서버. 서버 주소를 설정 mailbox_url 에 넣으면 같은 네트워크 밖에서도 주고받는다.

저장소 규칙

  • build/, .dart_tool/, .claude/settings.local.json, wiki/.obsidian/workspace*.json 은 올리지 않는다(.gitignore). android/ 는 Gitea 에 올라가 있다.
  • pubspec.lock 은 이 컨테이너(Flutter stable)에서 풀린 판 기준.
  • 빌드 캐시 -v fm-gradle:/root/.gradle -v fm-pub:/root/.pub-cache. 컨테이너마다 SDK 34·35·CMake 를 다시 받아 15분 넘게 걸린다.
  • 저장소: http://192.168.88.15:3180/diadmin/frindlymap (Gitea, remote origin).
  • 화면 캡처: flutter test test_ux/shots_test.dart --update-goldens → test_ux/shots/*.png (한글 글꼴 build/ux/kr.ttf 필요: 맥의 /Library/Fonts/Arial Unicode.ttf 복사).