name: Flutter 테스트 on: push: branches: [ main, develop ] pull_request: branches: [ main, develop ] workflow_dispatch: # 수동 실행 옵션 jobs: test: name: 테스트 실행 runs-on: ubuntu-latest timeout-minutes: 15 # CI 전체 타임아웃 설정 steps: - name: 코드 체크아웃 uses: actions/checkout@v3 - name: Flutter 설정 uses: subosito/flutter-action@v2 with: flutter-version: '3.10.0' channel: 'stable' cache: true - name: 의존성 설치 run: flutter pub get - name: 테스트 디렉토리 생성 run: mkdir -p test_diagnostics - name: 테스트 실행 권한 설정 run: | chmod +x ./scripts/run_tests.sh chmod +x ./scripts/reproduce_test.sh - name: Flutter 테스트 실행 run: ./scripts/run_tests.sh ci --verbose env: FLUTTER_TEST_IS_CI: true - name: 테스트 진단 정보 수집 if: failure() run: | echo "테스트 실패 - 진단 정보 수집 중..." ls -la test_diagnostics/ cat test_diagnostics/*.log || echo "로그 파일 없음" cat test_diagnostics/*.txt || echo "분석 파일 없음" - name: 테스트 진단 정보 업로드 if: always() uses: actions/upload-artifact@v3 with: name: test-diagnostics path: test_diagnostics/ retention-days: 7 if-no-files-found: ignore