fix: Windows 러너 첫 단계 bash 의존 제거 + 필수 설치 목록 보완
Windows 호스트 러너에서 bash.exe 는 기본 PATH 에 없다 (Git for Windows 는 Git\cmd 만 PATH 에 등록하고 bash.exe 는 Git\bin 에 있다). OS 확인 단계가 첫 스텝이라 러너를 붙이자마자 "bash not found" 로 죽는다. pwsh 로 바꿨다. 같은 이유로 문서 설치 목록에 Git.Git 과 Microsoft.PowerShell 을 추가했다. 나머지 7개 스텝이 전부 pwsh(7.x) 를 쓰는데 Windows 기본 탑재는 5.1 뿐이라 pwsh 없이는 단계마다 실패한다. 트리거 설명도 실제 on: 설정(main push / workflow_dispatch)에 맞춰 고쳤다. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
# Windows 검증 — Gitea Actions
|
# Windows 검증 — Gitea Actions
|
||||||
#
|
#
|
||||||
# 이 저장소에 push 하면 Windows 러너가 자동으로
|
# main 에 push 하거나 Actions 탭에서 수동 실행하면 Windows 러너가 자동으로
|
||||||
# 1) 테스트를 돌리고
|
# 1) 테스트를 돌리고
|
||||||
# 2) 포터블 exe 를 빌드하고
|
# 2) 포터블 exe 를 빌드하고
|
||||||
# 3) 앱이 실제로 뜨는지 확인한 뒤
|
# 3) 앱이 실제로 뜨는지 확인한 뒤
|
||||||
@@ -25,15 +25,21 @@ jobs:
|
|||||||
# Gitea 는 runs-on 이 어떤 러너 라벨과도 안 맞으면 작업을 실패시키지 않고
|
# Gitea 는 runs-on 이 어떤 러너 라벨과도 안 맞으면 작업을 실패시키지 않고
|
||||||
# 기본 ubuntu 컨테이너에서 돌린다. 라벨을 잘못 등록하면 Windows 검증이
|
# 기본 ubuntu 컨테이너에서 돌린다. 라벨을 잘못 등록하면 Windows 검증이
|
||||||
# 조용히 리눅스에서 돌아가 "통과했다"는 착각을 준다. 그래서 먼저 막는다.
|
# 조용히 리눅스에서 돌아가 "통과했다"는 착각을 준다. 그래서 먼저 막는다.
|
||||||
|
#
|
||||||
|
# bash 가 아니라 pwsh 를 쓴다. Windows 에 Git Bash 가 깔려 있어도
|
||||||
|
# bash.exe 는 기본 PATH 에 없어서 (Git\cmd 만 등록된다) 첫 단계부터
|
||||||
|
# "bash not found" 로 죽는다. 라벨을 잘못 걸어 리눅스 컨테이너로
|
||||||
|
# 떨어진 경우에는 pwsh 가 없어서 역시 실패하므로, 어느 쪽이든
|
||||||
|
# 조용히 통과하는 일은 없다.
|
||||||
- name: Windows 에서 돌고 있는지 확인
|
- name: Windows 에서 돌고 있는지 확인
|
||||||
shell: bash
|
shell: pwsh
|
||||||
run: |
|
run: |
|
||||||
echo "RUNNER_OS=$RUNNER_OS"
|
Write-Host "RUNNER_OS=$env:RUNNER_OS"
|
||||||
if [ "$RUNNER_OS" != "Windows" ]; then
|
if ($env:RUNNER_OS -ne "Windows") {
|
||||||
echo "::error::Windows 러너가 아닙니다 ($RUNNER_OS)."
|
Write-Host "::error::Windows 러너가 아닙니다 ($env:RUNNER_OS)."
|
||||||
echo "::error::러너를 'windows:host' 라벨로 등록했는지 확인하세요."
|
Write-Host "::error::러너를 'windows:host' 라벨로 등록했는지 확인하세요."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
}
|
||||||
|
|
||||||
- name: 소스 받기
|
- name: 소스 받기
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|||||||
@@ -4,7 +4,8 @@
|
|||||||
오디오 캡처, 전역 단축키, 모니터 열거, exe 빌드가 전부 여기에 해당합니다.
|
오디오 캡처, 전역 단축키, 모니터 열거, exe 빌드가 전부 여기에 해당합니다.
|
||||||
그래서 "리눅스에서 다 통과했는데 윈도우에서 안 되더라"가 나올 수 있습니다.
|
그래서 "리눅스에서 다 통과했는데 윈도우에서 안 되더라"가 나올 수 있습니다.
|
||||||
|
|
||||||
Windows 러너를 하나 붙이면 push할 때마다 이 경로들이 자동으로 검증됩니다.
|
Windows 러너를 하나 붙이면 `main` 에 push할 때(또는 Actions 탭에서 수동
|
||||||
|
실행할 때) 이 경로들이 자동으로 검증됩니다.
|
||||||
|
|
||||||
## 무엇이 자동으로 확인되나
|
## 무엇이 자동으로 확인되나
|
||||||
|
|
||||||
@@ -30,11 +31,19 @@ Windows 러너를 하나 붙이면 push할 때마다 이 경로들이 자동으
|
|||||||
### 1. 필요한 것 설치
|
### 1. 필요한 것 설치
|
||||||
|
|
||||||
```powershell
|
```powershell
|
||||||
|
winget install Git.Git # 소스 받기 (checkout) 에 필요
|
||||||
|
winget install Microsoft.PowerShell # 워크플로가 pwsh 7 을 씁니다
|
||||||
winget install Python.Python.3.12
|
winget install Python.Python.3.12
|
||||||
winget install Kitware.CMake
|
winget install Kitware.CMake
|
||||||
winget install Microsoft.VisualStudio.2022.BuildTools # C++ 데스크톱 워크로드 선택
|
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 러너 내려받기
|
### 2. Gitea 러너 내려받기
|
||||||
|
|
||||||
<https://gitea.com/gitea/act_runner/releases> 에서
|
<https://gitea.com/gitea/act_runner/releases> 에서
|
||||||
|
|||||||
Reference in New Issue
Block a user