Files
arasystem/.github/workflows/ci-flutter.yml
T
ttipo 97a989be07 chore: 앱 짝 시험이 읽는 백엔드 표 두 파일이 바뀌어도 Flutter CI 를 돌린다
첨부 형식 표(attachment.policy.ts)와 검색 표본 표(search-text-samples.ts)만 고친
커밋에서는 앱 시험이 깨진 채로 남고 다음 flutter 커밋에서야 드러났다.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 12:19:45 +09:00

68 lines
2.3 KiB
YAML

name: CI (Flutter)
# Flutter 는 기본 CI 에서 분리되어 있다.
#
# 이유: SDK 다운로드로 매 실행마다 수 분이 걸리는데,
# backend/frontend 만 고친 커밋에서는 검사할 것이 없다.
#
# 언제 도는가:
# - flutter/ 아래 파일이 바뀐 푸시·PR (= 실제로 Flutter 를 쓸 때 자동으로)
# - 앱 짝 시험이 그대로 읽는 백엔드 파일이 바뀐 푸시·PR — 첨부 형식 표(attachment.policy.ts) · 검색 표본 표(search-text-samples.ts).
# 그 파일만 고친 커밋에서도 앱 시험이 깨지는지 본다 (2026-11-07)
# - Actions 탭의 "Run workflow" 버튼으로 수동 실행
#
# 모바일 앱을 아예 쓰지 않는 프로젝트라면 이 파일을 지우면 된다.
on:
push:
branches: [main]
paths:
- 'flutter/**'
- 'backend/src/modules/mail/attachment.policy.ts'
- 'backend/test/search-text-samples.ts'
- '.github/workflows/ci-flutter.yml'
pull_request:
paths:
- 'flutter/**'
- 'backend/src/modules/mail/attachment.policy.ts'
- 'backend/test/search-text-samples.ts'
- '.github/workflows/ci-flutter.yml'
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
flutter:
name: Flutter (analyze · test)
runs-on: ubuntu-latest
# 멈춘 잡이 러너를 무한 점유하지 않도록 상한을 둔다
timeout-minutes: 25
defaults:
run:
working-directory: flutter
steps:
- uses: actions/checkout@v4
# Flutter 판 고정 — 개발 PC 와 같은 판이다(.claude/skills/flutter/SKILL.md "Flutter 판").
# 떠 있는 stable 을 받으면 그날의 최신이 들어와 개발 PC 와 어긋난다. 올리는 것은 사용자가 정한다.
- uses: subosito/flutter-action@v2
with:
channel: stable
flutter-version: 3.41.9
cache: true
# .env 는 pubspec 의 asset 이라 없으면 analyze 가 경고를 낸다
- name: Prepare .env
run: cp .env.example .env
# lock 그대로 받는다 — pubspec 과 어긋나면 실패(조용히 다른 판을 받지 않게)
- run: flutter pub get --enforce-lockfile
- name: Analyze
run: flutter analyze
- name: Test
run: flutter test