generated from ttipo/project-base
dc0fb81387
같은 마이너의 최신 패치 3.41.9(Dart 3.11.5 · 2026-04-30)로 개발 PC 와 CI 를 함께 올린다 (2026-11-06 사용자 확인 — 개발 PC 의 Flutter 는 다른 프로젝트도 함께 쓴다). CI 는 `flutter pub get --enforce-lockfile` 로 lock 과 어긋나면 실패한다. docker 스킬의 이미지 버전 표에 Flutter SDK 줄과 함께 고치는 곳을 둔다. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
62 lines
1.8 KiB
YAML
62 lines
1.8 KiB
YAML
name: CI (Flutter)
|
|
|
|
# Flutter 는 기본 CI 에서 분리되어 있다.
|
|
#
|
|
# 이유: SDK 다운로드로 매 실행마다 수 분이 걸리는데,
|
|
# backend/frontend 만 고친 커밋에서는 검사할 것이 없다.
|
|
#
|
|
# 언제 도는가:
|
|
# - flutter/ 아래 파일이 바뀐 푸시·PR (= 실제로 Flutter 를 쓸 때 자동으로)
|
|
# - Actions 탭의 "Run workflow" 버튼으로 수동 실행
|
|
#
|
|
# 모바일 앱을 아예 쓰지 않는 프로젝트라면 이 파일을 지우면 된다.
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
paths:
|
|
- 'flutter/**'
|
|
- '.github/workflows/ci-flutter.yml'
|
|
pull_request:
|
|
paths:
|
|
- 'flutter/**'
|
|
- '.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
|