ci: Flutter 검사를 별도 워크플로로 분리 — 기본 비활성
CI (Flutter) / Flutter (analyze · test) (push) Failing after 21m26s
CI / Backend (lint · test · e2e · build) (push) Successful in 10m31s
CI / Frontend (lint · type-check · test) (push) Successful in 10m18s
CI / 에러 코드 SSOT 동기화 검사 (push) Successful in 8m21s

Flutter 잡은 SDK 다운로드로 매 실행 수 분이 걸리는데,
backend/frontend 만 고친 커밋에서는 검사할 것이 없다.
러너가 잡을 하나씩 처리하므로 다른 검사까지 같이 느려졌다.

ci-flutter.yml 로 분리하고 flutter/ 경로가 바뀐 푸시·PR 에서만 실행되게 한다.
실제로 모바일 앱을 쓰기 시작하면 별도 설정 없이 자동으로 동작하고,
그 전까지는 CI 시간을 차지하지 않는다. workflow_dispatch 로 수동 실행도 가능하다.

Redis 를 compose profile 로 기본 비활성화한 것과 같은 방향이다 —
기반은 갖춰두되 쓰지 않을 때는 자원을 차지하지 않게 한다.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-17 23:11:06 +09:00
parent 1c0176640e
commit 962e060236
4 changed files with 72 additions and 30 deletions
+15 -4
View File
@@ -59,15 +59,26 @@ GitHub Actions 는 잡이 VM 위에서 직접 돌기 때문에 관례가 다르
## 리소스 참고
`ci.yml` 은 네 개의 잡을 실행합니다.
워크플로는 두 개로 나뉘어 있습니다.
**`ci.yml`** — 모든 푸시·PR 에서 실행
- `backend` — postgres 서비스 컨테이너를 띄워 단위 테스트와 e2e 를 실행
- `frontend` — lint·type-check·테스트
- `flutter` — **매 실행마다 Flutter SDK 를 내려받아 수 분 소요**
- `error-codes-sync` — 에러 코드 생성 파일 드리프트 검사
서버 사양이 넉넉하지 않다면 처음에는 `flutter` 잡을 빼고 시작해도 됩니다.
나머지 세 개만으로도 대부분의 회귀는 걸립니다.
**`ci-flutter.yml`** — **기본적으로 돌지 않는다**
Flutter 는 SDK 다운로드로 매 실행 수 분이 걸리는데, backend/frontend 만 고친 커밋에서는
검사할 것이 없다. 그래서 다음 경우에만 실행된다.
- `flutter/` 아래 파일이 바뀐 푸시·PR — **실제로 Flutter 를 쓰기 시작하면 자동으로 동작한다**
- Actions 탭의 **Run workflow** 버튼으로 수동 실행
모바일 앱을 쓰지 않는 프로젝트라면 `ci-flutter.yml` 을 지우면 된다.
> 러너는 기본적으로 잡을 **하나씩** 처리한다. 전체 시간을 줄이려면 러너를 여러 개 띄우거나
> `act_runner` 설정에서 동시 실행 수를 늘린다.
## 주의