# Windows에서 자동 검증 붙이기 개발은 리눅스에서 하고 있어서 **Windows 전용 경로는 테스트가 불가능**합니다. 오디오 캡처, 전역 단축키, 모니터 열거, exe 빌드가 전부 여기에 해당합니다. 그래서 "리눅스에서 다 통과했는데 윈도우에서 안 되더라"가 나올 수 있습니다. Windows 러너를 하나 붙이면 push할 때마다 이 경로들이 자동으로 검증됩니다. ## 무엇이 자동으로 확인되나 | 항목 | 리눅스에서 | Windows 러너에서 | |---|---|---| | 단위 테스트 189개 | ✅ | ✅ | | WASAPI 루프백 장치 열거 | ❌ | ✅ | | 소리 내는 프로그램 열거 | ❌ | ✅ | | 전역 단축키 등록/해제 | ❌ | ✅ | | 모니터 열거·자막 배치 | 가상 화면만 | ✅ 실제 모니터 | | 포터블 exe 빌드 | ❌ | ✅ | | exe가 실제로 뜨는지 | ❌ | ✅ | | GPU 인식 (CUDA) | 이 서버 GPU | ✅ 실제 게임 PC GPU | | 실제 화면 스크린샷 | offscreen | ✅ 진짜 화면 | 결과물(exe, 스크린샷, 로그)은 Gitea Actions의 artifact로 올라오므로 원격에서도 눈으로 확인할 수 있습니다. --- ## 설치 (약 10분, 한 번만) ### 1. 필요한 것 설치 ```powershell winget install Python.Python.3.12 winget install Kitware.CMake winget install Microsoft.VisualStudio.2022.BuildTools # C++ 데스크톱 워크로드 선택 ``` ### 2. Gitea 러너 내려받기 에서 `act_runner-<버전>-windows-amd64.exe` 를 받아 `C:\gitea-runner\act_runner.exe` 로 둡니다. ### 3. 등록 토큰 받기 Gitea 웹에서 저장소 → **설정 → Actions → 러너 → 등록 토큰 생성** (주소: `https://git.tkrmagid.kr/tkrmagid/live-app-translator/settings/actions/runners`) ### 4. 등록하고 실행 ```powershell cd C:\gitea-runner .\act_runner.exe register --no-interactive ` --instance https://git.tkrmagid.kr ` --token <위에서 받은 토큰> ` --name windows-gaming-pc ` --labels windows .\act_runner.exe daemon ``` `--labels windows` 가 중요합니다. 워크플로의 `runs-on: windows` 와 맞아야 합니다. ### 5. 확인 아무거나 push 하면 저장소 **Actions** 탭에 `Windows` 워크플로가 돌기 시작합니다. --- ## 항상 켜두고 싶다면 (선택) 부팅할 때 자동으로 뜨게 하려면 서비스로 등록합니다. ```powershell # 관리자 PowerShell sc.exe create gitea-runner binPath= "C:\gitea-runner\act_runner.exe daemon --config C:\gitea-runner\config.yaml" start= auto sc.exe start gitea-runner ``` 게임할 때 방해되면 그냥 꺼두고, 확인이 필요할 때만 `daemon` 을 켜도 됩니다. 러너가 꺼져 있으면 워크플로는 대기만 하고 아무 일도 하지 않습니다. --- ## 안전에 대해 - 러너는 **저장소에 커밋된 워크플로 파일만** 실행합니다. 대화로 임의 명령을 넣을 수 없고, 무엇이 실행됐는지는 git 기록에 그대로 남습니다. - 실행되는 내용은 `.gitea/workflows/windows.yml` 한 파일이며 언제든 읽고 고칠 수 있습니다. 테스트·빌드·스크린샷 외의 일은 하지 않습니다. - 개인 PC가 부담스러우면 Proxmox에 Windows 11 VM을 만들어 거기에 러너를 붙여도 됩니다. GPU와 실제 게임 소리 확인은 안 되지만, 빌드·단축키· 모니터·UI는 전부 검증됩니다. --- ## 러너 없이 직접 돌려보기 러너를 안 붙이고 그때그때 확인만 하고 싶다면 이것만 실행하고 결과를 보내주셔도 됩니다. ```powershell git clone https://git.tkrmagid.kr/tkrmagid/live-app-translator cd live-app-translator py -3.12 -m venv .venv .\.venv\Scripts\python -m pip install -r packaging\requirements-portable.txt pytest $env:PYTHONPATH="src" .\.venv\Scripts\python -m pytest tests -q .\.venv\Scripts\python packaging\windows_smoke.py ``` `artifacts\windows-smoke.txt` 와 `artifacts\*.png` 를 보내주시면 됩니다.