diff --git a/.gitea/workflows/windows.yml b/.gitea/workflows/windows.yml index ea30d6f..466e46b 100644 --- a/.gitea/workflows/windows.yml +++ b/.gitea/workflows/windows.yml @@ -1,6 +1,6 @@ # Windows 검증 — Gitea Actions # -# 이 저장소에 push 하면 Windows 러너가 자동으로 +# main 에 push 하거나 Actions 탭에서 수동 실행하면 Windows 러너가 자동으로 # 1) 테스트를 돌리고 # 2) 포터블 exe 를 빌드하고 # 3) 앱이 실제로 뜨는지 확인한 뒤 @@ -25,15 +25,21 @@ jobs: # Gitea 는 runs-on 이 어떤 러너 라벨과도 안 맞으면 작업을 실패시키지 않고 # 기본 ubuntu 컨테이너에서 돌린다. 라벨을 잘못 등록하면 Windows 검증이 # 조용히 리눅스에서 돌아가 "통과했다"는 착각을 준다. 그래서 먼저 막는다. + # + # bash 가 아니라 pwsh 를 쓴다. Windows 에 Git Bash 가 깔려 있어도 + # bash.exe 는 기본 PATH 에 없어서 (Git\cmd 만 등록된다) 첫 단계부터 + # "bash not found" 로 죽는다. 라벨을 잘못 걸어 리눅스 컨테이너로 + # 떨어진 경우에는 pwsh 가 없어서 역시 실패하므로, 어느 쪽이든 + # 조용히 통과하는 일은 없다. - name: Windows 에서 돌고 있는지 확인 - shell: bash + shell: pwsh run: | - echo "RUNNER_OS=$RUNNER_OS" - if [ "$RUNNER_OS" != "Windows" ]; then - echo "::error::Windows 러너가 아닙니다 ($RUNNER_OS)." - echo "::error::러너를 'windows:host' 라벨로 등록했는지 확인하세요." + Write-Host "RUNNER_OS=$env:RUNNER_OS" + if ($env:RUNNER_OS -ne "Windows") { + Write-Host "::error::Windows 러너가 아닙니다 ($env:RUNNER_OS)." + Write-Host "::error::러너를 'windows:host' 라벨로 등록했는지 확인하세요." exit 1 - fi + } - name: 소스 받기 uses: actions/checkout@v4 diff --git a/docs/WINDOWS-TESTING.md b/docs/WINDOWS-TESTING.md index 2b5fb72..245d0e4 100644 --- a/docs/WINDOWS-TESTING.md +++ b/docs/WINDOWS-TESTING.md @@ -4,7 +4,8 @@ 오디오 캡처, 전역 단축키, 모니터 열거, exe 빌드가 전부 여기에 해당합니다. 그래서 "리눅스에서 다 통과했는데 윈도우에서 안 되더라"가 나올 수 있습니다. -Windows 러너를 하나 붙이면 push할 때마다 이 경로들이 자동으로 검증됩니다. +Windows 러너를 하나 붙이면 `main` 에 push할 때(또는 Actions 탭에서 수동 +실행할 때) 이 경로들이 자동으로 검증됩니다. ## 무엇이 자동으로 확인되나 @@ -30,11 +31,19 @@ Windows 러너를 하나 붙이면 push할 때마다 이 경로들이 자동으 ### 1. 필요한 것 설치 ```powershell +winget install Git.Git # 소스 받기 (checkout) 에 필요 +winget install Microsoft.PowerShell # 워크플로가 pwsh 7 을 씁니다 winget install Python.Python.3.12 winget install Kitware.CMake winget install Microsoft.VisualStudio.2022.BuildTools # C++ 데스크톱 워크로드 선택 ``` +`Git.Git` 과 `Microsoft.PowerShell` 은 빠뜨리기 쉬운데 둘 다 필수입니다. +Git 이 없으면 소스를 못 받고, Windows 에 기본으로 깔린 PowerShell 은 5.1 이라 +워크플로가 쓰는 `pwsh`(7.x) 가 없으면 단계마다 실패합니다. +설치 후 새 PowerShell 창을 열어 `git --version`, `pwsh --version` 이 +나오는지 확인하세요. + ### 2. Gitea 러너 내려받기 에서