BACKLOG 11차 기록: Forgejo 자체 러너 릴리스 CI 가동 — 리허설 2차 5/5 잡 성공, ci-rehearsal draft 에 전 플랫폼 7개 자산(설치자 2·tar.gz 4·APK 1) 업로드 실증

This commit is contained in:
Yun Chan 2026-08-17 23:36:29 +09:00
parent d98c73451f
commit b536622606

View file

@ -245,3 +245,17 @@
### 검증 (10차)
- `dotnet test` — **실패 234 / 통과 180 / 전체 414** (RED 의도 상태: 신규 234전부 실패, 기존 180 전부 통과, 기존 영향 실패 0건).
- 빌드 오류 0 / 신규 경고 0.
## 11차 (2026-08-17) — Forgejo 자체 러너 릴리스 CI 가동 (전 플랫폼 빌드→배포 폐쇄루프)
> 사용자: "러너들이 생겼다 이제 우리도 빌드를 모두 다 배포할 수 있다" — 저장소를 자체 Forgejo
> (`git.chanpaca.net/Video-Downloader/client`)로 이관한 데 이어, org 러너 3대로 릴리스 CI 구축. §5-bis 참조.
- [x] **`.forgejo/workflows/release.yml`** — 태그 `v*` → test 관문(전체 xUnit) → windows(설치자 x64/arm64)·android(APK)·linux(tar.gz×2 RID)·macos(tar.gz×2 RID) 병렬 → 각 잡이 draft 릴리스에 자산 직접 업로드. 러너 3대(yunchan-win/kd-desktop/yunchan-mac) 모두 host 모드라 `uses:` 액션 전무 — 체크아웃도 `git fetch`+`FETCH_HEAD` 직접. workflow_dispatch = `ci-rehearsal` draft prerelease 리허설.
- [x] **`build/ci/upload-release-asset.{ps1,sh}`** — draft 릴리스 확보(병렬 잡 동시 생성 경합 시 재조회) + 동명 자산 교체 멱등. 실 API 검증 중 Windows Git Bash 에서 python 출력 CRLF 로 자산 id 가 `5\r` 로 오염돼 DELETE 가 조용히 실패하는 결함 발견·수정(`tr -d '\r'`).
- [x] **android MSB3030 수정** — CLI 전역 `-p:RuntimeIdentifiers=android-arm64` 가 참조 프로젝트(net8.0 Mobile.Core)까지 전파돼 RID 경로 dll 부재로 실패. 9차 GitHub 스캐폴드에 잠재하던 결함이 첫 실전 실행에서 실증 → Mobile csproj 의 `CiPackArm64Only` 게이트 조건부 `RuntimeIdentifiers` 로 이전.
- [x] **인프라** — `RELEASE_TOKEN` 시크릿(PAT `write:repository`) API 등록, ALPACA-HOME 유령 Inno Setup(레지스트리만 잔존) 재설치, `.sh` 실행 비트. Forgejo 는 `.forgejo/workflows` 만 인식 — `.github/workflows`(GitHub 공개 시 백업 채널)와 이중 실행 없음 확인.
### 검증 (11차)
- 리허설 1차(b05e8bf): test **453/453 통과**(실창 E2E 포함 — 러너가 사용자 세션이라 창 생성 가능) · windows/linux/macos 성공 · android 실패(MSB3030).
- 리허설 2차(d98c734, 수정 후): **5/5 잡 전부 성공** — `ci-rehearsal` draft prerelease 자산 7개: Setup x64 57.2MB·arm64 51.5MB / linux tar.gz x64 71.1MB·arm64 68.1MB / osx tar.gz arm64 69.6MB·x64 72.7MB / APK(arm64-v8a 단독) 23.3MB.
- 정식 배포: `git tag v1.0.0 && git push origin v1.0.0` → 동일 파이프라인이 `v1.0.0` draft 릴리스 생성 → QA 후 수동 Publish (§7.5 런북 그대로).