--- name: check description: Installer Studio 저장소의 전체 검사(fmt, clippy, Rust 테스트, 프런트엔드 테스트·빌드, 데스크톱 빌드)를 scripts/Check.ps1과 같은 순서로 실행하고 결과를 보고한다. 커밋 전, PR 전, "검사해", "테스트 돌려", "빌드 확인"에 사용한다. --- # 전체 검사 `src/scripts/Check.ps1`과 같은 순서를 따른다. 스크립트를 그대로 실행해도 되지만, 어느 단계에서 실패했는지 보고하려면 단계별로 실행한다. 모든 명령은 `D:\networkSetup\src`에서 실행한다. ## 사전 조건 1. 실행 중인 `vite`/`tauri dev`/`InstallerStudio.exe` 프로세스가 있으면 먼저 종료한다. `npm ci`가 esbuild 파일을 교체하지 못하고, debug 빌드가 실행 파일을 덮어쓰지 못한다. 2. 변경 범위를 보고 빠른 모드와 전체 모드를 정한다. - Rust만 바뀜: 1단계, 3~5단계. - 프런트엔드만 바뀜: 2단계. - `src-tauri`, `apps/prerequisite-setup`, 공용 DTO, IPC 계약이 바뀜: 전체. ## 단계 ```powershell # 1. 포맷 cargo fmt --all --check # 2. 프런트엔드 (데스크톱) cd apps/desktop npm.cmd ci --no-audit --no-fund npm.cmd test npm.cmd run build cd ../.. # 3. 린트 (경고도 실패) cargo clippy --locked --workspace --all-targets -- -D warnings # 4. Rust 단위·통합 테스트 (SDK·네트워크·레지스트리 읽기 테스트는 ignored) cargo test --locked --workspace # 5. 데스크톱 실행 파일과 선행 설치기 원본 cargo build --locked -p msix-studio -p prerequisite-setup --features msix-studio/custom-protocol ``` MakeAppx 통합 시험까지 요청받았으면 `msix-integration-test` 스킬을 따른다. ## 실패 처리 - `cargo fmt --check` 실패: `cargo fmt --all`을 실행해 고치고 다시 검사한다. 포맷 변경만 커밋 범위에 들어가게 한다. - clippy 경고: `#[allow]`로 덮지 않는다. 코드를 고친다. 정말 의도된 패턴이면 이유를 주석으로 적고 `allow`를 가장 좁은 범위에 붙인다. - 테스트 실패: 테스트를 약화시키지 않는다. 실패 출력 전문을 보고에 포함한다. - `--locked` 실패: `Cargo.lock`/`package-lock.json`이 변경돼야 한다는 뜻이다. 의존성을 의도적으로 바꾼 경우에만 잠금 파일 갱신을 커밋한다. ## 보고 형식 단계별로 통과/실패를 표로 적고, 실행하지 않은 단계는 "실행 안 함"으로 적는다. 실패한 단계는 오류 출력을 코드 블록으로 붙인다. "모두 통과"는 다섯 단계를 실제로 모두 실행했을 때만 쓴다. | 단계 | 결과 | | --- | --- | | fmt | 통과 | | npm test / build | 통과 (N개) | | clippy | 통과 | | cargo test | 통과 (N개) | | msix-studio · prerequisite-setup build | 실행 안 함 (프런트엔드만 변경) |